jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorHandlerTest.java
changeset 28697 fae50549d70d
child 40223 64662417aa2d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorHandlerTest.java	Wed Jan 28 22:49:58 2015 -0800
@@ -0,0 +1,144 @@
+/*
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package javax.xml.validation.ptests;
+
+import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
+import static javax.xml.validation.ptests.ValidationTestConst.XML_DIR;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertSame;
+import static org.testng.Assert.assertTrue;
+
+import java.io.File;
+
+import javax.xml.validation.Schema;
+import javax.xml.validation.SchemaFactory;
+import javax.xml.validation.ValidatorHandler;
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.SAXNotSupportedException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/*
+ * @summary Class containing the test cases for ValidatorHandler API
+ */
+public class ValidatorHandlerTest {
+    @BeforeClass
+    public void setup() throws SAXException {
+        schema = SchemaFactory.newInstance(W3C_XML_SCHEMA_NS_URI).newSchema(new File(XML_DIR + "test.xsd"));
+
+        assertNotNull(schema);
+    }
+
+    @Test
+    public void testErrorHandler() {
+        ValidatorHandler validatorHandler = getValidatorHandler();
+        assertNull(validatorHandler.getErrorHandler(), "When ValidatorHandler is created, initially ErrorHandler should not be set.");
+
+        ErrorHandler handler = new MyErrorHandler();
+        validatorHandler.setErrorHandler(handler);
+        assertSame(validatorHandler.getErrorHandler(), handler);
+
+    }
+
+    @Test(expectedExceptions = SAXNotRecognizedException.class)
+    public void testGetUnrecognizedProperty() throws SAXNotRecognizedException, SAXNotSupportedException {
+        ValidatorHandler validatorHandler = getValidatorHandler();
+        validatorHandler.getProperty(FEATURE_NAME);
+
+    }
+
+    @Test(expectedExceptions = SAXNotRecognizedException.class)
+    public void testSetUnrecognizedProperty() throws SAXNotRecognizedException, SAXNotSupportedException {
+        ValidatorHandler validatorHandler = getValidatorHandler();
+        validatorHandler.setProperty(FEATURE_NAME, "test");
+    }
+
+    @Test(expectedExceptions = NullPointerException.class)
+    public void testGetNullProperty() throws SAXNotRecognizedException, SAXNotSupportedException {
+        ValidatorHandler validatorHandler = getValidatorHandler();
+        assertNotNull(validatorHandler);
+        validatorHandler.getProperty(null);
+
+    }
+
+    @Test(expectedExceptions = NullPointerException.class)
+    public void testSetNullProperty() throws SAXNotRecognizedException, SAXNotSupportedException {
+        ValidatorHandler validatorHandler = getValidatorHandler();
+        assertNotNull(validatorHandler);
+        validatorHandler.setProperty(null, "test");
+    }
+
+    public void testFeature() throws SAXNotRecognizedException, SAXNotSupportedException {
+        ValidatorHandler validatorHandler = getValidatorHandler();
+        assertFalse(validatorHandler.getFeature(FEATURE_NAME), "The feature should be false by default.");
+
+        validatorHandler.setFeature(FEATURE_NAME, true);
+        assertTrue(validatorHandler.getFeature(FEATURE_NAME), "The feature should be false by default.");
+
+    }
+
+    @Test(expectedExceptions = NullPointerException.class)
+    public void testGetNullFeature() throws SAXNotRecognizedException, SAXNotSupportedException {
+        ValidatorHandler validatorHandler = getValidatorHandler();
+        assertNotNull(validatorHandler);
+        validatorHandler.getFeature(null);
+
+    }
+
+    @Test(expectedExceptions = NullPointerException.class)
+    public void testSetNullFeature() throws SAXNotRecognizedException, SAXNotSupportedException {
+        ValidatorHandler validatorHandler = getValidatorHandler();
+        assertNotNull(validatorHandler);
+        validatorHandler.setFeature(null, true);
+    }
+
+    @Test
+    public void testContentHandler() {
+        ValidatorHandler validatorHandler = getValidatorHandler();
+        assertNull(validatorHandler.getContentHandler(), "When ValidatorHandler is created, initially ContentHandler should not be set.");
+
+        ContentHandler handler = new DefaultHandler();
+        validatorHandler.setContentHandler(handler);
+        assertSame(validatorHandler.getContentHandler(), handler);
+
+        validatorHandler.setContentHandler(null);
+        assertNull(validatorHandler.getContentHandler());
+
+    }
+
+    private ValidatorHandler getValidatorHandler() {
+        return schema.newValidatorHandler();
+    }
+
+    private static final String FEATURE_NAME = "http://xml.org/sax/features/namespace-prefixes";
+
+    private Schema schema;
+
+}