--- old/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DBFNamespaceTest.java 2015-01-09 15:41:17.437086945 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DBFNamespaceTest.java 2015-01-09 15:41:17.358086822 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -23,64 +23,59 @@
package javax.xml.parsers.ptests;
-import static jaxp.library.JAXPTestUtilities.FILE_SEP;
import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
-
import java.io.File;
-import java.io.IOException;
-
import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
+import static javax.xml.parsers.ptests.ParserTestConst.GOLDEN_DIR;
+import static javax.xml.parsers.ptests.ParserTestConst.XML_DIR;
import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXResult;
-
+import jaxp.library.JAXPFileBaseTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.w3c.dom.Document;
-import org.xml.sax.SAXException;
/**
* This tests DocumentBuilderFactory for namespace processing and no-namespace
* processing.
*/
-public class DBFNamespaceTest {
+public class DBFNamespaceTest extends JAXPFileBaseTest {
/**
* Provide input for the cases that supporting namespace or not.
+ * @return a two-dimensional array contains factory, output file name and
+ * golden validate file name.
*/
@DataProvider(name = "input-provider")
public Object[][] getInput() {
DocumentBuilderFactory dbf1 = DocumentBuilderFactory.newInstance();
- String outputfile1 = USER_DIR + FILE_SEP + "dbfnstest01.out";
- String goldfile1 = TestUtils.GOLDEN_DIR + FILE_SEP + "dbfnstest01GF.out";
+ String outputfile1 = USER_DIR + "dbfnstest01.out";
+ String goldfile1 = GOLDEN_DIR + "dbfnstest01GF.out";
DocumentBuilderFactory dbf2 = DocumentBuilderFactory.newInstance();
dbf2.setNamespaceAware(true);
- String outputfile2 = USER_DIR + FILE_SEP + "dbfnstest02.out";
- String goldfile2 = TestUtils.GOLDEN_DIR + FILE_SEP + "dbfnstest02GF.out";
+ String outputfile2 = USER_DIR + "dbfnstest02.out";
+ String goldfile2 = GOLDEN_DIR + "dbfnstest02GF.out";
return new Object[][] { { dbf1, outputfile1, goldfile1 }, { dbf2, outputfile2, goldfile2 } };
}
/**
* Test to parse and transform a document without supporting namespace and
* with supporting namespace.
+ * @param dbf a Document Builder factory for creating document object.
+ * @param outputfile output file name.
+ * @param goldfile golden validate file name.
+ * @throws Exception If any errors occur.
*/
@Test(dataProvider = "input-provider")
- public void testNamespaceTest(DocumentBuilderFactory dbf, String outputfile, String goldfile) {
- try {
- Document doc = dbf.newDocumentBuilder().parse(new File(TestUtils.XML_DIR, "namespace1.xml"));
- dummyTransform(doc, outputfile);
- assertTrue(compareWithGold(goldfile, outputfile));
- } catch (SAXException | IOException | ParserConfigurationException | TransformerFactoryConfigurationError | TransformerException e) {
- failUnexpected(e);
- }
+ public void testNamespaceTest(DocumentBuilderFactory dbf, String outputfile,
+ String goldfile) throws Exception {
+ Document doc = dbf.newDocumentBuilder().parse(new File(XML_DIR, "namespace1.xml"));
+ dummyTransform(doc, outputfile);
+ assertTrue(compareWithGold(goldfile, outputfile));
}
/**
@@ -89,16 +84,14 @@
* not chosen, namespaceURI in callbacks should be an empty string otherwise
* it should be namespaceURI.
*
- * @throws TransformerFactoryConfigurationError
- * @throws TransformerException
- * @throws IOException
+ * @throws Exception If any errors occur.
*/
- private void dummyTransform(Document document, String fileName) throws TransformerFactoryConfigurationError, TransformerException, IOException {
+ private void dummyTransform(Document document, String fileName)
+ throws Exception {
DOMSource domSource = new DOMSource(document);
- Transformer transformer = TransformerFactory.newInstance().newTransformer();
- File file = new File(fileName);
- System.out.println("The fileName is " + file.getAbsolutePath());
- transformer.transform(domSource, new SAXResult(MyCHandler.newInstance(file)));
+ try(MyCHandler chandler = MyCHandler.newInstance(new File(fileName))) {
+ TransformerFactory.newInstance().newTransformer().
+ transform(domSource, new SAXResult(chandler));
+ }
}
-
}
--- old/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderImpl01.java 2015-01-09 15:41:17.790087495 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderImpl01.java 2015-01-09 15:41:17.712087373 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -24,33 +24,32 @@
package javax.xml.parsers.ptests;
import static jaxp.library.JAXPTestUtilities.FILE_SEP;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertFalse;
-
import java.io.File;
import java.io.FileInputStream;
-import java.io.IOException;
-
+import java.io.FilePermission;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-
+import static javax.xml.parsers.ptests.ParserTestConst.XML_DIR;
+import jaxp.library.JAXPFileReadOnlyBaseTest;
+import static org.testng.Assert.assertNotNull;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
-import org.w3c.dom.Document;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
/**
* This checks for the methods of DocumentBuilder
*/
-public class DocumentBuilderImpl01 implements EntityResolver {
-
+public class DocumentBuilderImpl01 extends JAXPFileReadOnlyBaseTest
+ implements EntityResolver {
/**
* Provide DocumentBuilder.
*
- * @throws ParserConfigurationException
+ * @return data provider has single DocumentBuilder.
+ * @throws ParserConfigurationException if a DocumentBuilder cannot be
+ * created which satisfies the configuration requested.
*/
@DataProvider(name = "builder-provider")
public Object[][] getBuilder() throws ParserConfigurationException {
@@ -60,17 +59,18 @@
}
/**
- * Testcase to test the default functionality of isValidation method. Expect
+ * Test the default functionality of isValidation method. Expect
* to return false because not setting the validation.
+ * @param docBuilder document builder instance.
*/
@Test(dataProvider = "builder-provider")
public void testCheckDocumentBuilderImpl01(DocumentBuilder docBuilder) {
assertFalse(docBuilder.isValidating());
-
}
/**
- * Testcase to test the default functionality of isNamespaceAware method.
+ * Test the default functionality of isNamespaceAware method.
+ * @param docBuilder document builder instance.
*/
@Test(dataProvider = "builder-provider")
public void testCheckDocumentBuilderImpl02(DocumentBuilder docBuilder) {
@@ -78,51 +78,71 @@
}
/**
- * Testcase to test the parse(InputStream).
- */
- @Test(dataProvider = "builder-provider")
- public void testCheckDocumentBuilderImpl04(DocumentBuilder docBuilder) {
- try {
- Document doc = docBuilder.parse(new FileInputStream(new File(TestUtils.XML_DIR, "DocumentBuilderImpl01.xml")));
- } catch (SAXException | IOException e) {
- failUnexpected(e);
+ * Test the parse(InputStream).
+ * @param docBuilder document builder instance.
+ * @throws Exception If any errors occur.
+ */
+ @Test(groups = {"readLocalFiles"}, dataProvider = "builder-provider")
+ public void testCheckDocumentBuilderImpl04(DocumentBuilder docBuilder)
+ throws Exception {
+ try (FileInputStream fis = new FileInputStream(new File(XML_DIR,
+ "DocumentBuilderImpl01.xml"))) {
+ assertNotNull(docBuilder.parse(fis));
}
}
/**
- * Testcase to test the parse(File).
- */
- @Test(dataProvider = "builder-provider")
- public void testCheckDocumentBuilderImpl05(DocumentBuilder docBuilder) {
- try {
- Document doc = docBuilder.parse(new File(TestUtils.XML_DIR, "DocumentBuilderImpl01.xml"));
- } catch (SAXException | IOException e) {
- failUnexpected(e);
- }
+ * Test the parse(File).
+ *
+ * @param docBuilder document builder instance.
+ * @throws Exception If any errors occur.
+ */
+ @Test(groups = {"readLocalFiles"}, dataProvider = "builder-provider")
+ public void testCheckDocumentBuilderImpl05(DocumentBuilder docBuilder)
+ throws Exception {
+ assertNotNull(docBuilder.parse(new File(XML_DIR,
+ "DocumentBuilderImpl01.xml")));
}
/**
- * Testcase to test the parse(InputStream,systemId).
- */
- @Test(dataProvider = "builder-provider")
- public void testCheckDocumentBuilderImpl06(DocumentBuilder docBuilder) {
- try {
- Document doc = docBuilder.parse(new FileInputStream(new File(TestUtils.XML_DIR, "DocumentBuilderImpl02.xml")), new File(TestUtils.XML_DIR).toURI()
- .toASCIIString() + FILE_SEP);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
+ * Test the parse(InputStream,systemId).
+ * @param docBuilder document builder instance.
+ * @throws Exception If any errors occur.
+ */
+ @Test(groups = {"readLocalFiles"}, dataProvider = "builder-provider")
+ public void testCheckDocumentBuilderImpl06(DocumentBuilder docBuilder)
+ throws Exception {
+ setPermissions(new FilePermission(XML_DIR + "../-",
+ "read"));
+ try (FileInputStream fis = new FileInputStream(new File(XML_DIR,
+ "DocumentBuilderImpl02.xml"))) {
+ assertNotNull(docBuilder.parse(fis, new File(XML_DIR).toURI()
+ .toASCIIString() + FILE_SEP));
}
}
/**
- * Testcase to test the setEntityResolver.
+ * Test the setEntityResolver.
+ * @param docBuilder document builder instance.
*/
@Test(dataProvider = "builder-provider")
public void testCheckDocumentBuilderImpl07(DocumentBuilder docBuilder) {
docBuilder.setEntityResolver(this);
- resolveEntity("publicId", "http://www.myhost.com/today");
+ assertNotNull(resolveEntity("publicId", "http://www.myhost.com/today"));
}
+ /**
+ * Allow the application to resolve external entities.
+ *
+ * @param publicId The public identifier of the external entity
+ * being referenced, or null if none was supplied.
+ * @param systemId The system identifier of the external entity
+ * being referenced.
+ * @return An InputSource object describing the new input source,
+ * or null to request that the parser open a regular
+ * URI connection to the system identifier.
+ */
+ @Override
public InputSource resolveEntity(String publicId, String systemId) {
if (systemId.equals("http://www.myhost.com/today"))
return new InputSource(systemId);
--- old/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java 2015-01-09 15:41:18.243088201 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java 2015-01-09 15:41:18.166088081 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,6 +26,7 @@
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.SAXParserFactory;
+import jaxp.library.JAXPBaseTest;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
@@ -35,7 +36,7 @@
* Class containing the test cases for SAXParserFactory/DocumentBuilderFactory
* newInstance methods.
*/
-public class FactoryConfErrorTest {
+public class FactoryConfErrorTest extends JAXPBaseTest {
/**
* Set properties DocumentBuilderFactory and SAXParserFactory to invalid
@@ -43,8 +44,8 @@
*/
@BeforeTest
public void setup() {
- System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "xx");
- System.setProperty("javax.xml.parsers.SAXParserFactory", "xx");
+ setSystemProperty("javax.xml.parsers.DocumentBuilderFactory", "xx");
+ setSystemProperty("javax.xml.parsers.SAXParserFactory", "xx");
}
/**
@@ -53,8 +54,8 @@
*/
@AfterTest
public void cleanup() {
- System.clearProperty("javax.xml.parsers.DocumentBuilderFactory");
- System.clearProperty("javax.xml.parsers.SAXParserFactory");
+ setSystemProperty("javax.xml.parsers.DocumentBuilderFactory", null);
+ setSystemProperty("javax.xml.parsers.SAXParserFactory", null);
}
/**
@@ -67,7 +68,7 @@
}
/**
- * To test exeception thrown if javax.xml.parsers.DocumentBuilderFactory is
+ * To test exception thrown if javax.xml.parsers.DocumentBuilderFactory is
* invalid.
*/
@Test(expectedExceptions = FactoryConfigurationError.class)
--- old/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java 2015-01-09 15:41:18.605088765 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java 2015-01-09 15:41:18.528088645 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,24 +22,16 @@
*/
package javax.xml.parsers.ptests;
-
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
-
+import jaxp.library.JAXPBaseTest;
import org.testng.annotations.Test;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.SAXNotSupportedException;
/**
- * Class containing the test cases for SAXParserFactory API
+ * Class containing the test cases for SAXParserFactory API.
*/
-public class SAXParserFactTest {
+public class SAXParserFactTest extends JAXPBaseTest {
private static final String NAMESPACES = "http://xml.org/sax/features/namespaces";
private static final String NAMESPACE_PREFIXES = "http://xml.org/sax/features/namespace-prefixes";
@@ -49,20 +41,17 @@
private static final String EXTERNAL_P_ENTITIES = "http://xml.org/sax/features/external-parameter-entities";
/**
- * Testcase to test if newSAXParser() method returns SAXParser.
+ * Test if newSAXParser() method returns SAXParser.
+ * @throws Exception If any errors occur.
*/
@Test
- public void testParser01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- SAXParser saxparser = spf.newSAXParser();
- } catch (ParserConfigurationException | SAXException e) {
- failUnexpected(e);
- }
+ public void testParser01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.newSAXParser();
}
/**
- * Testcase to test the default functionality (No validation) of the parser.
+ * Test the default functionality (No validation) of the parser.
*/
@Test
public void testValidate01() {
@@ -71,7 +60,7 @@
}
/**
- * Testcase to test the functionality of setValidating and isvalidating
+ * Test the functionality of setValidating and isvalidating
* methods.
*/
@Test
@@ -82,7 +71,7 @@
}
/**
- * Parser should not be namespaceaware by default.
+ * Parser should not be namespace-aware by default.
*/
@Test
public void testNamespace01() {
@@ -91,7 +80,7 @@
}
/**
- * Testcase to test the functionality of setNamespaceAware and
+ * Test the functionality of setNamespaceAware and
* isNamespaceAware methods.
*/
@Test
@@ -102,167 +91,132 @@
}
/**
- * Testcase to test the functionality of setNamespaceAware and getFeature()
+ * Test the functionality of setNamespaceAware and getFeature()
* methods for namespaces property.
+ * @throws Exception If any errors occur.
*/
@Test
- public void testFeature01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- assertFalse(spf.getFeature(NAMESPACES));
+ public void testFeature01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ assertFalse(spf.getFeature(NAMESPACES));
- spf.setNamespaceAware(true);
- assertTrue(spf.getFeature(NAMESPACES));
- } catch (ParserConfigurationException | SAXNotRecognizedException | SAXNotSupportedException e) {
- failUnexpected(e);
- }
+ spf.setNamespaceAware(true);
+ assertTrue(spf.getFeature(NAMESPACES));
}
/**
- * Testcase to test the functionality of setFeature and getFeature methods
+ * Test the functionality of setFeature and getFeature methods
* for namespaces property.
+ * @throws Exception If any errors occur.
*/
@Test
- public void testFeature02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
+ public void testFeature02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setFeature(NAMESPACES, true);
- assertTrue(spf.getFeature(NAMESPACES));
+ spf.setFeature(NAMESPACES, true);
+ assertTrue(spf.getFeature(NAMESPACES));
- spf.setFeature(NAMESPACES, false);
- assertFalse(spf.getFeature(NAMESPACES));
- } catch (ParserConfigurationException | SAXNotRecognizedException | SAXNotSupportedException e) {
- failUnexpected(e);
- }
+ spf.setFeature(NAMESPACES, false);
+ assertFalse(spf.getFeature(NAMESPACES));
}
/**
- * Testcase to test the functionality of setFeature and getFeature methods
+ * Test the functionality of setFeature and getFeature methods
* for namespace-prefixes property.
+ * @throws Exception If any errors occur.
*/
@Test
- public void testFeature03() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
+ public void testFeature03() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setFeature(NAMESPACE_PREFIXES, true);
- assertTrue(spf.getFeature(NAMESPACE_PREFIXES));
+ spf.setFeature(NAMESPACE_PREFIXES, true);
+ assertTrue(spf.getFeature(NAMESPACE_PREFIXES));
- spf.setFeature(NAMESPACE_PREFIXES, false);
- assertFalse(spf.getFeature(NAMESPACE_PREFIXES));
- } catch (ParserConfigurationException | SAXNotRecognizedException | SAXNotSupportedException e) {
- failUnexpected(e);
- }
+ spf.setFeature(NAMESPACE_PREFIXES, false);
+ assertFalse(spf.getFeature(NAMESPACE_PREFIXES));
}
/**
- * Testcase to test the functionality of getFeature method for
+ * Test the functionality of getFeature method for
* string-interning property.
+ * @throws Exception If any errors occur.
*/
@Test
- public void testFeature04() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- assertTrue(spf.getFeature(STRING_INTERNING));
- } catch (ParserConfigurationException | SAXNotRecognizedException | SAXNotSupportedException e) {
- failUnexpected(e);
- }
+ public void testFeature04() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ assertTrue(spf.getFeature(STRING_INTERNING));
}
/**
- * Testcase to test the functionality of getFeature and setValidating
+ * Test the functionality of getFeature and setValidating
* methods for validation property.
+ * @throws Exception If any errors occur.
*/
@Test
- public void testFeature05() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- assertFalse(spf.getFeature(VALIDATION));
- spf.setValidating(true);
- assertTrue(spf.getFeature(VALIDATION));
- } catch (ParserConfigurationException | SAXNotRecognizedException | SAXNotSupportedException e) {
- failUnexpected(e);
- }
-
+ public void testFeature05() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ assertFalse(spf.getFeature(VALIDATION));
+ spf.setValidating(true);
+ assertTrue(spf.getFeature(VALIDATION));
}
/**
- * Testcase to test the functionality of setFeature and getFeature methods
+ * Test the functionality of setFeature and getFeature methods
* for validation property.
+ * @throws Exception If any errors occur.
*/
@Test
- public void testFeature06() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
-
- spf.setFeature(VALIDATION, true);
- assertTrue(spf.getFeature(VALIDATION));
-
- spf.setFeature(VALIDATION, false);
- assertFalse(spf.getFeature(VALIDATION));
- } catch (ParserConfigurationException | SAXNotRecognizedException | SAXNotSupportedException e) {
- failUnexpected(e);
- }
-
+ public void testFeature06() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setFeature(VALIDATION, true);
+ assertTrue(spf.getFeature(VALIDATION));
+ spf.setFeature(VALIDATION, false);
+ assertFalse(spf.getFeature(VALIDATION));
}
/**
- * Testcase to test the functionality of getFeature method for
+ * Test the functionality of getFeature method for
* external-general-entities property.
+ * @throws Exception If any errors occur.
*/
@Test
- public void testFeature07() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- assertTrue(spf.getFeature(EXTERNAL_G_ENTITIES));
- } catch (ParserConfigurationException | SAXNotRecognizedException | SAXNotSupportedException e) {
- failUnexpected(e);
- }
-
+ public void testFeature07() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ assertTrue(spf.getFeature(EXTERNAL_G_ENTITIES));
}
/**
- * Testcase to test the functionality of setFeature and getFeature methods
+ * Test the functionality of setFeature and getFeature methods
* for external-general-entities property.
+ * @throws Exception If any errors occur.
*/
@Test
- public void testFeature08() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setFeature(EXTERNAL_G_ENTITIES, false);
- assertFalse(spf.getFeature(EXTERNAL_G_ENTITIES));
- } catch (ParserConfigurationException | SAXNotRecognizedException | SAXNotSupportedException e) {
- failUnexpected(e);
- }
+ public void testFeature08() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setFeature(EXTERNAL_G_ENTITIES, false);
+ assertFalse(spf.getFeature(EXTERNAL_G_ENTITIES));
}
/**
- * Testcase to test the functionality of getFeature method for
+ * Test the functionality of getFeature method for
* external-parameter-entities property.
+ * @throws Exception If any errors occur.
*/
@Test
- public void testFeature09() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- assertTrue(spf.getFeature(EXTERNAL_P_ENTITIES));
- } catch (ParserConfigurationException | SAXNotRecognizedException | SAXNotSupportedException e) {
- failUnexpected(e);
- }
+ public void testFeature09() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ assertTrue(spf.getFeature(EXTERNAL_P_ENTITIES));
}
/**
- * Testcase to test the functionality of setFeature method for
+ * Test the functionality of setFeature method for
* external-parameter-entitie property.
+ * @throws Exception If any errors occur.
*/
@Test
- public void testFeature10() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setFeature(EXTERNAL_P_ENTITIES, false);
- } catch (ParserConfigurationException | SAXNotRecognizedException | SAXNotSupportedException e) {
- failUnexpected(e);
- }
-
+ public void testFeature10() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setFeature(EXTERNAL_P_ENTITIES, false);
+ assertFalse(spf.getFeature(EXTERNAL_P_ENTITIES));
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest.java 2015-01-09 15:41:19.068089487 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest.java 2015-01-09 15:41:18.993089370 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -23,16 +23,14 @@
package javax.xml.parsers.ptests;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
-
import java.io.File;
import java.io.FileInputStream;
+import java.io.FilePermission;
import java.io.IOException;
-
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
-
+import static javax.xml.parsers.ptests.ParserTestConst.XML_DIR;
+import jaxp.library.JAXPFileReadOnlyBaseTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.xml.sax.HandlerBase;
@@ -43,16 +41,15 @@
/**
* Class contains the test cases for SAXParser API
*/
-public class SAXParserTest {
-
+public class SAXParserTest extends JAXPFileReadOnlyBaseTest {
/**
* Provide SAXParser.
*
- * @throws SAXException
- * @throws ParserConfigurationException
+ * @return a data provider contains a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
@DataProvider(name = "parser-provider")
- public Object[][] getParser() throws ParserConfigurationException, SAXException {
+ public Object[][] getParser() throws Exception {
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser saxparser = spf.newSAXParser();
return new Object[][] { { saxparser } };
@@ -62,498 +59,454 @@
* Test case with FileInputStream null, parsing should fail and throw
* IllegalArgumentException.
*
- * @throws IllegalArgumentException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = IllegalArgumentException.class, dataProvider = "parser-provider")
- public void testParse01(SAXParser saxparser) throws IllegalArgumentException {
- try {
- FileInputStream instream = null;
- HandlerBase handler = new HandlerBase();
- saxparser.parse(instream, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
- }
+ @Test(expectedExceptions = IllegalArgumentException.class,
+ dataProvider = "parser-provider")
+ public void testParse01(SAXParser saxparser) throws Exception {
+ FileInputStream instream = null;
+ saxparser.parse(instream, new HandlerBase());
}
/**
- * Testcase with an error in xml file, parsing should fail and throw
- * SAXException.
+ * Test with by setting URI as null, parsing should fail and throw
+ * IllegalArgumentException.
*
- * @throws SAXException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = SAXException.class, dataProvider = "parser-provider")
- public void testParse02(SAXParser saxparser) throws SAXException {
- try {
- HandlerBase handler = new HandlerBase();
- FileInputStream instream = new FileInputStream(new File(TestUtils.XML_DIR, "invalid.xml"));
- saxparser.parse(instream, handler);
- } catch (IOException e) {
- failUnexpected(e);
- }
+ @Test(expectedExceptions = IllegalArgumentException.class,
+ dataProvider = "parser-provider")
+ public void testParse02(SAXParser saxparser) throws Exception {
+ String uri = null;
+ saxparser.parse(uri, new HandlerBase());
}
/**
- * Testcase with a valid in xml file, parser should parse the xml document.
+ * Test with non-existence URI, parsing should fail and throw IOException.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "parser-provider")
- public void testParse03(SAXParser saxparser) {
+ @Test(expectedExceptions = { SAXException.class },
+ dataProvider = "parser-provider")
+ public void testParse03(SAXParser saxparser) throws Exception {
+ String workingDir = getSystemProperty("user.dir");
+ setPermissions(new FilePermission(workingDir, "read"));
try {
- HandlerBase handler = new HandlerBase();
- saxparser.parse(new File(TestUtils.XML_DIR, "parsertest.xml"), handler);
- } catch (IOException | SAXException e) {
- failUnexpected(e);
+ saxparser.parse("", new HandlerBase());
+ } finally {
+ setPermissions();
}
}
/**
- * Testcase with valid input stream, parser should parse the xml document
- * successfully.
+ * Test with File null, parsing should fail and throw
+ * IllegalArgumentException.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "parser-provider")
- public void testParse04(SAXParser saxparser) {
- try {
- HandlerBase handler = new HandlerBase();
- FileInputStream instream = new FileInputStream(new File(TestUtils.XML_DIR, "correct.xml"));
- saxparser.parse(instream, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
- }
+ @Test(expectedExceptions = IllegalArgumentException.class,
+ dataProvider = "parser-provider")
+ public void testParse04(SAXParser saxparser) throws Exception {
+ File file = null;
+ saxparser.parse(file, new HandlerBase());
}
/**
- * Testcase with valid input source, parser should parse the xml document
- * successfully.
+ * Test with empty string as File, parsing should fail and throw
+ * SAXException.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "parser-provider")
- public void testParse05(SAXParser saxparser) {
+ @Test(expectedExceptions = SAXException.class, dataProvider = "parser-provider")
+ public void testParse05(SAXParser saxparser) throws Exception {
+ String workingDir = getSystemProperty("user.dir");
+ setPermissions(new FilePermission(workingDir, "read"));
try {
- HandlerBase handler = new HandlerBase();
- FileInputStream instream = new FileInputStream(new File(TestUtils.XML_DIR, "parsertest.xml"));
- saxparser.parse(instream, handler, new File(TestUtils.XML_DIR).toURI().toASCIIString());
- } catch (SAXException | IOException e) {
- failUnexpected(e);
+ saxparser.parse(new File(""), new HandlerBase());
+ } finally {
+ setPermissions();
}
}
/**
- * Testcase with uri null, parsing should fail and throw
+ * Test with input source null, parsing should fail and throw
* IllegalArgumentException.
*
- * @throws IllegalArgumentException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = IllegalArgumentException.class, dataProvider = "parser-provider")
- public void testParse07(SAXParser saxparser) throws IllegalArgumentException {
- try {
- String uri = null;
- HandlerBase handler = new HandlerBase();
- saxparser.parse(uri, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
- }
+ @Test(expectedExceptions = IllegalArgumentException.class,
+ dataProvider = "parser-provider")
+ public void testParse06(SAXParser saxparser) throws Exception {
+ InputSource is = null;
+ saxparser.parse(is, new HandlerBase());
}
/**
- * Testcase with non-existant uri, parsing should fail and throw
- * IOException.
+ * Test with FileInputStream null, parsing should fail and throw
+ * IllegalArgumentException.
*
- * @throws SAXException
- * @throws IOException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = { SAXException.class, IOException.class }, dataProvider = "parser-provider")
- public void testParse08(SAXParser saxparser) throws SAXException, IOException {
- String uri = " ";
-
- HandlerBase handler = new HandlerBase();
- saxparser.parse(uri, handler);
-
+ @Test(expectedExceptions = IllegalArgumentException.class,
+ dataProvider = "parser-provider")
+ public void testParse07(SAXParser saxparser) throws Exception {
+ FileInputStream instream = null;
+ saxparser.parse(instream, new DefaultHandler());
}
/**
- * Testcase with proper uri, parser should parse successfully.
+ * Test with URI null, parsing should fail and throw
+ * IllegalArgumentException.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "parser-provider")
- public void testParse09(SAXParser saxparser) {
- try {
- File file = new File(TestUtils.XML_DIR, "correct.xml");
- HandlerBase handler = new HandlerBase();
- saxparser.parse(file.toURI().toASCIIString(), handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
- }
+ @Test(expectedExceptions = IllegalArgumentException.class,
+ dataProvider = "parser-provider")
+ public void testParse08(SAXParser saxparser) throws Exception {
+ String uri = null;
+ saxparser.parse(uri, new DefaultHandler());
}
/**
- * Testcase with File null, parsing should fail and throw
- * IllegalArgumentException.
+ * Test with non-existence URI, parsing should fail and throw
+ * SAXException or IOException.
*
- * @throws IllegalArgumentException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = IllegalArgumentException.class, dataProvider = "parser-provider")
- public void testParse10(SAXParser saxparser) throws IllegalArgumentException {
+ @Test(expectedExceptions = { SAXException.class, IOException.class },
+ dataProvider = "parser-provider")
+ public void testParse09(SAXParser saxparser) throws Exception {
+ String workingDir = getSystemProperty("user.dir");
+ setPermissions(new FilePermission(workingDir + "/../-", "read"));
+ String uri = " ";
try {
- File file = null;
- HandlerBase handler = new HandlerBase();
- saxparser.parse(file, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
+ saxparser.parse(uri, new DefaultHandler());
+ } finally {
+ setPermissions();
}
}
/**
- * Testcase with empty string as File, parsing should fail and throw
+ * Test with empty string as File, parsing should fail and throw
* SAXException.
*
- * @throws SAXException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
@Test(expectedExceptions = SAXException.class, dataProvider = "parser-provider")
- public void testParse11(SAXParser saxparser) throws SAXException {
+ public void testParse10(SAXParser saxparser) throws Exception {
+ String workingDir = getSystemProperty("user.dir");
+ setPermissions(new FilePermission(workingDir, "read"));
+ File file = new File("");
try {
- HandlerBase handler = new HandlerBase();
- File file = new File("");
- saxparser.parse(file, handler);
- } catch (IOException e) {
- failUnexpected(e);
+ saxparser.parse(file, new DefaultHandler());
+ } finally {
+ setPermissions();
}
}
/**
- * Testcase with xml file that has errors parsing should fail and throw
- * SAXException.
+ * Test with File null, parsing should fail and throw
+ * IllegalArgumentException.
*
- * @throws SAXException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = SAXException.class, dataProvider = "parser-provider")
- public void testParse12(SAXParser saxparser) throws SAXException {
- try {
- HandlerBase handler = new HandlerBase();
- File file = new File(TestUtils.XML_DIR, "valid.xml");
- saxparser.parse(file, handler);
- } catch (IOException e) {
- failUnexpected(e);
- }
+ @Test(expectedExceptions = IllegalArgumentException.class,
+ dataProvider = "parser-provider")
+ public void testParse11(SAXParser saxparser) throws Exception {
+ saxparser.parse((File) null, new DefaultHandler());
}
/**
- * Testcase with xml file that has no errors Parser should successfully
- * parse the xml document.
+ * Test with input source null, parsing should fail and throw
+ * IllegalArgumentException.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "parser-provider")
- public void testParse13(SAXParser saxparser) {
- try {
- HandlerBase handler = new HandlerBase();
- File file = new File(TestUtils.XML_DIR, "correct.xml");
- saxparser.parse(file, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
- }
-
+ @Test(expectedExceptions = IllegalArgumentException.class,
+ dataProvider = "parser-provider")
+ public void testParse12(SAXParser saxparser) throws Exception {
+ InputSource is = null;
+ saxparser.parse(is, new DefaultHandler());
}
/**
- * Testcase with input source null, parsing should fail and throw
- * IllegalArgumentException.
+ * Test with an error in XML file, parsing should fail and throw
+ * SAXException.
*
- * @throws IllegalArgumentException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = IllegalArgumentException.class, dataProvider = "parser-provider")
- public void testParse14(SAXParser saxparser) throws IllegalArgumentException {
- try {
- InputSource is = null;
- HandlerBase handler = new HandlerBase();
- saxparser.parse(is, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = SAXException.class,
+ dataProvider = "parser-provider")
+ public void testParse13(SAXParser saxparser) throws Exception {
+ try (FileInputStream instream = new FileInputStream(new File(
+ XML_DIR, "invalid.xml"))) {
+ saxparser.parse(instream, new HandlerBase());
}
}
/**
- * Testcase with input source attached an invaild xml, parsing should fail
- * and throw SAXException.
+ * Test with a valid in XML file, parser should parse the XML document.
*
- * @throws SAXException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = SAXException.class, dataProvider = "parser-provider")
- public void testParse15(SAXParser saxparser) throws SAXException {
- try {
- HandlerBase handler = new HandlerBase();
- FileInputStream instream = new FileInputStream(new File(TestUtils.XML_DIR, "invalid.xml"));
- InputSource is = new InputSource(instream);
- saxparser.parse(is, handler);
- } catch (IOException e) {
- failUnexpected(e);
- }
+ @Test(groups = {"readLocalFiles"}, dataProvider = "parser-provider")
+ public void testParse14(SAXParser saxparser) throws Exception {
+ saxparser.parse(new File(XML_DIR, "parsertest.xml"),
+ new HandlerBase());
}
/**
- * Testcase with input source attached an vaild xml, parser should
- * successfully parse the xml document.
+ * Test with valid input stream, parser should parse the XML document
+ * successfully.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "parser-provider")
- public void testParse16(SAXParser saxparser) {
- try {
- HandlerBase handler = new HandlerBase();
- FileInputStream instream = new FileInputStream(new File(TestUtils.XML_DIR, "correct.xml"));
- InputSource is = new InputSource(instream);
- saxparser.parse(is, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
- }
+ @Test(groups = {"readLocalFiles"}, dataProvider = "parser-provider")
+ public void testParse15(SAXParser saxparser) throws Exception {
+ try (FileInputStream instream = new FileInputStream(new File(XML_DIR,
+ "correct.xml"))) {
+ saxparser.parse(instream, new HandlerBase());
+ }
}
/**
- * Testcase with FileInputStream null, parsing should fail and throw
- * IllegalArgumentException.
+ * Test with valid input source, parser should parse the XML document
+ * successfully.
*
- * @throws IllegalArgumentException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = IllegalArgumentException.class, dataProvider = "parser-provider")
- public void testParse17(SAXParser saxparser) throws IllegalArgumentException {
- try {
- FileInputStream instream = null;
- DefaultHandler handler = new DefaultHandler();
- saxparser.parse(instream, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
+ @Test(groups = {"readLocalFiles"}, dataProvider = "parser-provider")
+ public void testParse16(SAXParser saxparser) throws Exception {
+ try (FileInputStream instream = new FileInputStream(
+ new File(XML_DIR, "parsertest.xml"))) {
+ saxparser.parse(instream, new HandlerBase(),
+ new File(XML_DIR).toURI().toASCIIString());
}
}
/**
- * Testcase with an error in xml file, parsing should fail and throw
- * SAXException.
+ * Test with proper URI, parser should parse successfully.
*
- * @throws SAXException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = SAXException.class, dataProvider = "parser-provider")
- public void testParse18(SAXParser saxparser) throws SAXException {
- try {
- DefaultHandler handler = new DefaultHandler();
- FileInputStream instream = new FileInputStream(new File(TestUtils.XML_DIR, "invalid.xml"));
- saxparser.parse(instream, handler);
- } catch (IOException e) {
- failUnexpected(e);
- }
+ @Test(groups = {"readLocalFiles"}, dataProvider = "parser-provider")
+ public void testParse17(SAXParser saxparser) throws Exception {
+ File file = new File(XML_DIR, "correct.xml");
+ saxparser.parse(file.toURI().toASCIIString(), new HandlerBase());
}
/**
- * Testcase with valid input stream, parser should parse the xml document
- * successfully.
+ * Test with XML file that has errors parsing should fail and throw
+ * SAXException.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "parser-provider")
- public void testParse19(SAXParser saxparser) {
- try {
- DefaultHandler handler = new DefaultHandler();
- saxparser.parse(new File(TestUtils.XML_DIR, "parsertest.xml"), handler);
- } catch (IOException | SAXException e) {
- failUnexpected(e);
- }
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = SAXException.class,
+ dataProvider = "parser-provider")
+ public void testParse18(SAXParser saxparser) throws Exception {
+ saxparser.parse(new File(XML_DIR, "valid.xml"), new HandlerBase());
}
/**
- * Testcase with valid input stream, parser should parse the xml document
- * successfully.
+ * Test with XML file that has no errors Parser should successfully
+ * parse the XML document.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "parser-provider")
- public void testParse20(SAXParser saxparser) {
- try {
- DefaultHandler handler = new DefaultHandler();
- FileInputStream instream = new FileInputStream(new File(TestUtils.XML_DIR, "correct.xml"));
- saxparser.parse(instream, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
- }
+ @Test(groups = {"readLocalFiles"}, dataProvider = "parser-provider")
+ public void testParse19(SAXParser saxparser) throws Exception {
+ saxparser.parse(new File(XML_DIR, "correct.xml"), new HandlerBase());
}
/**
- * Testcase with valid input source, parser should parse the xml document
- * successfully.
+ * Test with input source attached an invalid XML, parsing should fail
+ * and throw SAXException.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "parser-provider")
- public void testParse21(SAXParser saxparser) {
- try {
- DefaultHandler handler = new DefaultHandler();
- FileInputStream instream = new FileInputStream(new File(TestUtils.XML_DIR, "parsertest.xml"));
- saxparser.parse(instream, handler, new File(TestUtils.XML_DIR).toURI().toASCIIString());
- } catch (SAXException | IOException e) {
- failUnexpected(e);
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = SAXException.class,
+ dataProvider = "parser-provider")
+ public void testParse20(SAXParser saxparser) throws Exception {
+ try(FileInputStream instream = new FileInputStream(new File(XML_DIR,
+ "invalid.xml"))) {
+ saxparser.parse(new InputSource(instream), new HandlerBase());
}
-
}
/**
- * Testcase with uri null, parsing should fail and throw
- * IllegalArgumentException.
+ * Test with input source attached an valid XML, parser should
+ * successfully parse the XML document.
*
- * @throws IllegalArgumentException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = IllegalArgumentException.class, dataProvider = "parser-provider")
- public void testParse23(SAXParser saxparser) throws IllegalArgumentException {
- try {
- String uri = null;
- DefaultHandler handler = new DefaultHandler();
- saxparser.parse(uri, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
+ @Test(groups = {"readLocalFiles"}, dataProvider = "parser-provider")
+ public void testParse21(SAXParser saxparser) throws Exception {
+ try (FileInputStream instream = new FileInputStream(new File(XML_DIR,
+ "correct.xml"))) {
+ saxparser.parse(new InputSource(instream), new HandlerBase());
}
}
/**
- * Testcase with non-existant uri, parsing should fail and throw
- * SAXException or IOException.
+ * Test with an error in xml file, parsing should fail and throw
+ * SAXException.
*
- * @throws SAXException
- * @throws IOException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = { SAXException.class, IOException.class }, dataProvider = "parser-provider")
- public void testParse24(SAXParser saxparser) throws SAXException, IOException {
- String uri = " ";
- DefaultHandler handler = new DefaultHandler();
- saxparser.parse(uri, handler);
-
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = SAXException.class,
+ dataProvider = "parser-provider")
+ public void testParse22(SAXParser saxparser) throws Exception {
+ try (FileInputStream instream = new FileInputStream(
+ new File(XML_DIR, "invalid.xml"))) {
+ saxparser.parse(instream, new DefaultHandler());
+ }
}
/**
- * Testcase with proper uri, parser should parse successfully.
+ * Test with valid input stream, parser should parse the XML document
+ * successfully.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "parser-provider")
- public void testParse25(SAXParser saxparser) {
- try {
- File file = new File(TestUtils.XML_DIR, "correct.xml");
-
- DefaultHandler handler = new DefaultHandler();
- saxparser.parse(file.toURI().toASCIIString(), handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
- }
+ @Test(groups = {"readLocalFiles"}, dataProvider = "parser-provider")
+ public void testParse23(SAXParser saxparser) throws Exception {
+ DefaultHandler handler = new DefaultHandler();
+ saxparser.parse(new File(XML_DIR, "parsertest.xml"), handler);
}
/**
- * Testcase with File null, parsing should fail and throw
- * IllegalArgumentException.
+ * Test with valid input stream, parser should parse the XML document
+ * successfully.
*
- * @throws IllegalArgumentException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = IllegalArgumentException.class, dataProvider = "parser-provider")
- public void testParse26(SAXParser saxparser) throws IllegalArgumentException {
- try {
+ @Test(groups = {"readLocalFiles"}, dataProvider = "parser-provider")
+ public void testParse24(SAXParser saxparser) throws Exception {
+ try (FileInputStream instream = new FileInputStream(new File(XML_DIR,
+ "correct.xml"))) {
DefaultHandler handler = new DefaultHandler();
- saxparser.parse((File) null, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
+ saxparser.parse(instream, handler);
}
}
/**
- * Testcase with empty string as File, parsing should fail and throw
- * SAXException.
+ * Test with valid input source, parser should parse the XML document
+ * successfully.
*
- * @throws SAXException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = SAXException.class, dataProvider = "parser-provider")
- public void testParse27(SAXParser saxparser) throws SAXException {
- try {
- DefaultHandler handler = new DefaultHandler();
- File file = new File("");
- saxparser.parse(file, handler);
- } catch (IOException e) {
- failUnexpected(e);
+ @Test(groups = {"readLocalFiles"}, dataProvider = "parser-provider")
+ public void testParse25(SAXParser saxparser) throws Exception {
+ try (FileInputStream instream = new FileInputStream(
+ new File(XML_DIR, "parsertest.xml"))) {
+ saxparser.parse(instream, new DefaultHandler(),
+ new File(XML_DIR).toURI().toASCIIString());
}
}
/**
- * Testcase with xml file that has errors, parsing should fail and throw
- * SAXException.
+ * Test with proper URI, parser should parse successfully.
*
- * @throws SAXException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = SAXException.class, dataProvider = "parser-provider")
- public void testParse28(SAXParser saxparser) throws SAXException {
- try {
- DefaultHandler handler = new DefaultHandler();
- File file = new File(TestUtils.XML_DIR, "valid.xml");
- saxparser.parse(file, handler);
- } catch (IOException e) {
- failUnexpected(e);
- }
+ @Test(groups = {"readLocalFiles"}, dataProvider = "parser-provider")
+ public void testParse26(SAXParser saxparser) throws Exception {
+ File file = new File(XML_DIR, "correct.xml");
+ saxparser.parse(file.toURI().toASCIIString(), new DefaultHandler());
}
/**
- * Testcase with xml file that has no errors, parser should successfully
- * parse the xml document.
+ * Test with XML file that has errors, parsing should fail and throw
+ * SAXException.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "parser-provider")
- public void testParse29(SAXParser saxparser) {
- try {
- DefaultHandler handler = new DefaultHandler();
- File file = new File(TestUtils.XML_DIR, "correct.xml");
- saxparser.parse(file, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
- }
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = SAXException.class,
+ dataProvider = "parser-provider")
+ public void testParse27(SAXParser saxparser) throws Exception {
+ saxparser.parse(new File(XML_DIR, "valid.xml"), new DefaultHandler());
}
/**
- * Testcase with input source null, parsing should fail and throw
- * IllegalArgumentException.
+ * Test with XML file that has no errors, parser should successfully
+ * parse the XML document.
*
- * @throws IllegalArgumentException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = IllegalArgumentException.class, dataProvider = "parser-provider")
- public void testParse30(SAXParser saxparser) throws IllegalArgumentException {
- try {
- InputSource is = null;
- DefaultHandler handler = new DefaultHandler();
- saxparser.parse(is, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
- }
+ @Test(groups = {"readLocalFiles"}, dataProvider = "parser-provider")
+ public void testParse28(SAXParser saxparser) throws Exception {
+ saxparser.parse(new File(XML_DIR, "correct.xml"), new DefaultHandler());
}
/**
- * Testcase with an invalid xml file, parser should throw SAXException.
+ * Test with an invalid XML file, parser should throw SAXException.
*
- * @throws SAXException
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = SAXException.class, dataProvider = "parser-provider")
- public void testParse31(SAXParser saxparser) throws SAXException {
- try {
- DefaultHandler handler = new DefaultHandler();
- FileInputStream instream = new FileInputStream(new File(TestUtils.XML_DIR, "invalid.xml"));
- InputSource is = new InputSource(instream);
- saxparser.parse(is, handler);
- } catch (IOException e) {
- failUnexpected(e);
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = SAXException.class,
+ dataProvider = "parser-provider")
+ public void testParse29(SAXParser saxparser) throws Exception {
+ try (FileInputStream instream = new FileInputStream(
+ new File(XML_DIR, "invalid.xml"))) {
+ saxparser.parse(new InputSource(instream), new DefaultHandler());
}
}
/**
- * Test case to parse an xml file that not use namespaces.
+ * Test case to parse an XML file that not use namespaces.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "parser-provider")
- public void testParse32(SAXParser saxparser) {
- try {
- DefaultHandler handler = new DefaultHandler();
- FileInputStream instream = new FileInputStream(new File(TestUtils.XML_DIR, "correct.xml"));
- InputSource is = new InputSource(instream);
- saxparser.parse(is, handler);
- } catch (SAXException | IOException e) {
- failUnexpected(e);
+ @Test(groups = {"readLocalFiles"}, dataProvider = "parser-provider")
+ public void testParse30(SAXParser saxparser) throws Exception {
+ try (FileInputStream instream = new FileInputStream(
+ new File(XML_DIR, "correct.xml"))) {
+ saxparser.parse(new InputSource(instream), new DefaultHandler());
}
}
/**
- * Test case to parse an xml file that uses namespaces.
+ * Test case to parse an XML file that uses namespaces.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testParse33() {
- try {
+ @Test(groups = {"readLocalFiles"})
+ public void testParse31() throws Exception {
+ try (FileInputStream instream = new FileInputStream(
+ new File(XML_DIR, "ns4.xml"))) {
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
- SAXParser saxparser = spf.newSAXParser();
- HandlerBase handler = new HandlerBase();
- FileInputStream instream = new FileInputStream(new File(TestUtils.XML_DIR, "ns4.xml"));
- saxparser.parse(instream, handler);
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
+ spf.newSAXParser().parse(instream, new HandlerBase());
}
}
-}
+}
\ No newline at end of file
--- old/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest02.java 2015-01-09 15:41:19.425090043 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest02.java 2015-01-09 15:41:19.348089923 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -23,260 +23,239 @@
package javax.xml.parsers.ptests;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
-
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
-
+import jaxp.library.JAXPBaseTest;
+import static org.testng.Assert.assertNotNull;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
-import org.xml.sax.Parser;
import org.xml.sax.SAXException;
-import org.xml.sax.SAXNotRecognizedException;
import org.xml.sax.SAXNotSupportedException;
-import org.xml.sax.XMLReader;
import org.xml.sax.ext.DeclHandler;
import org.xml.sax.ext.LexicalHandler;
/**
* Class contains the test cases for SAXParser API
*/
-public class SAXParserTest02 {
- final String DOM_NODE = "http://xml.org/sax/properties/dom-node";
- final String XML_STRING = "http://xml.org/sax/properties/xml-string";
- final String DECL_HANDLER = "http://xml.org/sax/properties/declaration-handler";
- final String LEXICAL_HANDLER = "http://xml.org/sax/properties/lexical-handler";
+public class SAXParserTest02 extends JAXPBaseTest {
+ private static final String DOM_NODE = "http://xml.org/sax/properties/dom-node";
+ private static final String XML_STRING = "http://xml.org/sax/properties/xml-string";
+ private static final String DECL_HANDLER = "http://xml.org/sax/properties/declaration-handler";
+ private static final String LEXICAL_HANDLER = "http://xml.org/sax/properties/lexical-handler";
/**
* Provide SAXParser.
- *
- * @throws SAXException
- * @throws ParserConfigurationException
+ *
+ * @return a data provider contains a SAXParser instance.
+ * @throws Exception If any errors occur.
*/
@DataProvider(name = "parser-provider")
- public Object[][] getParser() throws ParserConfigurationException, SAXException {
+ public Object[][] getParser() throws Exception {
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser saxparser = spf.newSAXParser();
return new Object[][] { { saxparser } };
}
/**
- * Testcase to test the default functionality (No validation) of the parser.
+ * Test to test the default functionality (No validation) of the parser.
+ *
+ * @param saxparser a SAXParser instance.
*/
@Test(dataProvider = "parser-provider")
public void testValidate01(SAXParser saxparser) {
- try {
- assertFalse(saxparser.isValidating());
- } catch (FactoryConfigurationError e) {
- failUnexpected(e);
- }
-
+ assertFalse(saxparser.isValidating());
}
/**
- * Testcase to test the functionality of setValidating and isvalidating
+ * Test to test the functionality of setValidating and isValidating
* methods.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testValidate02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setValidating(true);
- spf.newSAXParser();
- assertTrue(spf.isValidating());
- } catch (FactoryConfigurationError | ParserConfigurationException | SAXException e) {
- failUnexpected(e);
- }
-
+ public void testValidate02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setValidating(true);
+ spf.newSAXParser();
+ assertTrue(spf.isValidating());
}
/**
- * Test case to test isNamespaceAware() method. By default, namespaces are
+ * Test isNamespaceAware() method. By default, namespaces are
* not supported.
+ *
+ * @param saxparser a SAXParser instance.
*/
@Test(dataProvider = "parser-provider")
public void testNamespace01(SAXParser saxparser) {
- try {
- assertFalse(saxparser.isNamespaceAware());
- } catch (FactoryConfigurationError e) {
- failUnexpected(e);
- }
-
+ assertFalse(saxparser.isNamespaceAware());
}
/**
* Test case to test setnamespaceAware() method.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testNamespace02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- SAXParser saxparser = spf.newSAXParser();
- assertTrue(saxparser.isNamespaceAware());
- } catch (FactoryConfigurationError | ParserConfigurationException | SAXException e) {
- failUnexpected(e);
- }
-
+ public void testNamespace02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ SAXParser saxparser = spf.newSAXParser();
+ assertTrue(saxparser.isNamespaceAware());
}
/**
* Test case to test if the getParser() method returns instance of Parser.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws SAXException If any parse errors occur.
*/
@Test(dataProvider = "parser-provider")
- public void testParser01(SAXParser saxparser) {
- try {
- Parser parser = saxparser.getParser();
- } catch (FactoryConfigurationError | SAXException e) {
- failUnexpected(e);
- }
-
+ public void testParser01(SAXParser saxparser) throws SAXException {
+ assertNotNull(saxparser.getParser());
}
/**
* Test case to test if the getXMLReader() method returns instance of
* XMLReader.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws SAXException If any parse errors occur.
*/
@Test(dataProvider = "parser-provider")
- public void testXmlReader01(SAXParser saxparser) {
- try {
- XMLReader xmlReader = saxparser.getXMLReader();
- } catch (FactoryConfigurationError | SAXException e) {
- failUnexpected(e);
- }
+ public void testXmlReader01(SAXParser saxparser) throws SAXException {
+ assertNotNull(saxparser.getXMLReader());
}
/**
* Test whether the xml-string property is not supported.
*
- * @throws SAXNotSupportedException
+ * @param saxparser a SAXParser instance.
+ * @throws SAXException If any parse errors occur.
*/
- @Test(expectedExceptions = SAXNotSupportedException.class, dataProvider = "parser-provider")
- public void testProperty01(SAXParser saxparser) throws SAXNotSupportedException {
- try {
- Object object = saxparser.getProperty(XML_STRING);
- } catch (SAXNotRecognizedException e) {
- failUnexpected(e);
- }
+ @Test(expectedExceptions = SAXNotSupportedException.class,
+ dataProvider = "parser-provider")
+ public void testProperty01(SAXParser saxparser) throws SAXException {
+ saxparser.getProperty(XML_STRING);
}
/**
* Test whether the dom-node property is not supported.
*
- * @throws SAXNotSupportedException
+ * @param saxparser a SAXParser instance.
+ * @throws SAXException If any parse errors occur.
*/
- @Test(expectedExceptions = SAXNotSupportedException.class, dataProvider = "parser-provider")
- public void testProperty02(SAXParser saxparser) throws SAXNotSupportedException {
- try {
- Object object = saxparser.getProperty(DOM_NODE);
- } catch (SAXNotRecognizedException e) {
- failUnexpected(e);
- }
+ @Test(expectedExceptions = SAXNotSupportedException.class,
+ dataProvider = "parser-provider")
+ public void testProperty02(SAXParser saxparser) throws SAXException {
+ saxparser.getProperty(DOM_NODE);
}
/**
* Test the default lexical-handler not exists.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws SAXException If any parse errors occur.
*/
@Test(dataProvider = "parser-provider")
- public void testProperty03(SAXParser saxparser) {
- try {
- assertNull(saxparser.getProperty(LEXICAL_HANDLER));
- } catch (SAXException e) {
- failUnexpected(e);
- }
-
+ public void testProperty03(SAXParser saxparser) throws SAXException {
+ assertNull(saxparser.getProperty(LEXICAL_HANDLER));
}
/**
* Test the default declaration-handler not exists.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws SAXException If any parse errors occur.
*/
@Test(dataProvider = "parser-provider")
- public void testProperty04(SAXParser saxparser) {
-
- try {
- assertNull(saxparser.getProperty(DECL_HANDLER));
- } catch (SAXException e) {
- failUnexpected(e);
- }
+ public void testProperty04(SAXParser saxparser) throws SAXException {
+ assertNull(saxparser.getProperty(DECL_HANDLER));
}
/**
* Test to set and get the lexical-handler.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws SAXException If any parse errors occur.
*/
@Test(dataProvider = "parser-provider")
- public void testProperty05(SAXParser saxparser) {
- try {
- MyLexicalHandler myLexicalHandler = new MyLexicalHandler();
- saxparser.setProperty(LEXICAL_HANDLER, myLexicalHandler);
- Object object = saxparser.getProperty(LEXICAL_HANDLER);
- assertTrue(object instanceof LexicalHandler);
- } catch (SAXException e) {
- failUnexpected(e);
- }
+ public void testProperty05(SAXParser saxparser) throws SAXException {
+ MyLexicalHandler myLexicalHandler = new MyLexicalHandler();
+ saxparser.setProperty(LEXICAL_HANDLER, myLexicalHandler);
+ assertTrue(saxparser.getProperty(LEXICAL_HANDLER) instanceof LexicalHandler);
}
/**
* Test to set and get the declaration-handler.
+ *
+ * @param saxparser a SAXParser instance.
+ * @throws SAXException If any parse errors occur.
*/
@Test(dataProvider = "parser-provider")
- public void testProperty06(SAXParser saxparser) {
- try {
- MyDeclHandler myDeclHandler = new MyDeclHandler();
- saxparser.setProperty(DECL_HANDLER, myDeclHandler);
- Object object = saxparser.getProperty(DECL_HANDLER);
- assertTrue(object instanceof DeclHandler);
- } catch (SAXException e) {
- failUnexpected(e);
- }
-
+ public void testProperty06(SAXParser saxparser) throws SAXException {
+ MyDeclHandler myDeclHandler = new MyDeclHandler();
+ saxparser.setProperty(DECL_HANDLER, myDeclHandler);
+ assertTrue(saxparser.getProperty(DECL_HANDLER) instanceof DeclHandler);
}
/**
- * Customized LexicalHandler used for test.
+ * Customized LexicalHandler used for test. An empty implementation for
+ * LexicalHandler.
*/
private class MyLexicalHandler implements LexicalHandler {
+ @Override
public void comment(char[] ch, int start, int length) {
}
+ @Override
public void endCDATA() {
}
+ @Override
public void endDTD() {
}
+ @Override
public void endEntity(String name) {
}
+ @Override
public void startCDATA() {
}
+ @Override
public void startDTD(String name, String publicId, String systemId) {
}
+ @Override
public void startEntity(String name) {
}
}
/**
- * Customized DeclHandler used for test.
+ * Customized DeclHandler used for test. An empty implementation for
+ * DeclHandler.
*/
private class MyDeclHandler implements DeclHandler {
+ @Override
public void attributeDecl(String eName, String aName, String type, String valueDefault, String value) {
}
+ @Override
public void elementDecl(String name, String model) {
}
+ @Override
public void externalEntityDecl(String name, String publicId, String systemId) {
}
+ @Override
public void internalEntityDecl(String name, String value) {
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest03.java 2015-01-09 15:41:19.780090596 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest03.java 2015-01-09 15:41:19.703090476 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -23,17 +23,17 @@
package javax.xml.parsers.ptests;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
-
import java.io.File;
-import java.io.IOException;
-
-import javax.xml.parsers.ParserConfigurationException;
+import java.io.FilePermission;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
-
+import static javax.xml.parsers.ptests.ParserTestConst.XML_DIR;
+import jaxp.library.JAXPFileReadOnlyBaseTest;
+import static org.testng.Assert.fail;
+import org.testng.annotations.AfterGroups;
+import org.testng.annotations.BeforeGroups;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.xml.sax.SAXException;
@@ -41,68 +41,70 @@
/**
* Class contains the test cases for SAXParser API
*/
-public class SAXParserTest03 {
+public class SAXParserTest03 extends JAXPFileReadOnlyBaseTest {
/**
* Provide SAXParserFactory.
*
- * @throws Exception
+ * @return a dimensional contains.
*/
@DataProvider(name = "input-provider")
public Object[][] getFactory() {
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setValidating(true);
- MyErrorHandler handler = MyErrorHandler.newInstance();
- return new Object[][] { { spf, handler } };
+ return new Object[][] { { spf, MyErrorHandler.newInstance() } };
}
/**
* parsertest.xml holds a valid document. This method tests the validating
* parser.
+ *
+ * @param spf a Parser factory.
+ * @param handler an error handler for capturing events.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "input-provider")
- public void testParseValidate01(SAXParserFactory spf, MyErrorHandler handler) {
- try {
- SAXParser saxparser = spf.newSAXParser();
- saxparser.parse(new File(TestUtils.XML_DIR, "parsertest.xml"), handler);
- assertFalse(handler.errorOccured);
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
+ @Test(groups = {"readLocalFiles"}, dataProvider = "input-provider")
+ public void testParseValidate01(SAXParserFactory spf, MyErrorHandler handler)
+ throws Exception {
+ spf.newSAXParser().parse(new File(XML_DIR, "parsertest.xml"), handler);
+ assertFalse(handler.isErrorOccured());
}
/**
* validns.xml holds a valid document with XML namespaces in it. This method
* tests the Validating parser with namespace processing on.
+ *
+ * @param spf a Parser factory.
+ * @param handler an error handler for capturing events.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "input-provider")
- public void testParseValidate02(SAXParserFactory spf, MyErrorHandler handler) {
- try {
+ @Test(groups = {"readLocalFiles"}, dataProvider = "input-provider")
+ public void testParseValidate02(SAXParserFactory spf, MyErrorHandler handler)
+ throws Exception {
spf.setNamespaceAware(true);
- SAXParser saxparser = spf.newSAXParser();
- saxparser.parse(new File(TestUtils.XML_DIR, "validns.xml"), handler);
- assertFalse(handler.errorOccured);
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
+ spf.newSAXParser().parse(new File(XML_DIR, "validns.xml"), handler);
+ assertFalse(handler.isErrorOccured());
}
/**
* invalidns.xml holds an invalid document with XML namespaces in it. This
* method tests the validating parser with namespace processing on. It
* should throw validation error.
+ *
+ * @param spf a Parser factory.
+ * @param handler an error handler for capturing events.
+ * @throws Exception If any errors occur.
*/
- @Test(dataProvider = "input-provider")
- public void testParseValidate03(SAXParserFactory spf, MyErrorHandler handler) {
+ @Test(groups = {"readLocalFiles"}, dataProvider = "input-provider")
+ public void testParseValidate03(SAXParserFactory spf, MyErrorHandler handler)
+ throws Exception {
try {
spf.setNamespaceAware(true);
SAXParser saxparser = spf.newSAXParser();
- saxparser.parse(new File(TestUtils.XML_DIR, "invalidns.xml"), handler);
- failUnexpected(new RuntimeException());
- } catch (ParserConfigurationException | SAXException | IOException e) {
- if (e instanceof SAXException) {
- assertTrue(handler.errorOccured);
- }
+ saxparser.parse(new File(XML_DIR, "invalidns.xml"), handler);
+ fail("Expecting SAXException here");
+ } catch (SAXException e) {
+ assertTrue(handler.isErrorOccured());
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/ErrorListenerTest.java 2015-01-09 15:41:20.120091126 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/ErrorListenerTest.java 2015-01-09 15:41:20.043091006 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -24,12 +24,14 @@
package javax.xml.transform.ptests;
import java.io.File;
+import java.io.FilePermission;
import javax.xml.transform.ErrorListener;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR;
import javax.xml.transform.stream.StreamSource;
+import jaxp.library.JAXPBaseTest;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
import org.testng.annotations.Test;
@@ -37,7 +39,7 @@
/**
* Class containing the test cases for ErrorListener interface
*/
-public class ErrorListenerTest implements ErrorListener {
+public class ErrorListenerTest extends JAXPBaseTest implements ErrorListener {
/**
* Define ErrorListener's status.
*/
@@ -58,9 +60,10 @@
try {
TransformerFactory tfactory = TransformerFactory.newInstance();
tfactory.setErrorListener (listener);
+ setPermissions(new FilePermission(XML_DIR + "invalid.xsl", "read"));
tfactory.newTransformer(new StreamSource(
new File(XML_DIR + "invalid.xsl")));
- fail("We expect an Exception here");
+ fail("Expect TransformerConfigurationException here");
} catch (TransformerConfigurationException ex) {
assertEquals(listener.status, ListenerStatus.FATAL);
}
--- old/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TfClearParamTest.java 2015-01-09 15:41:20.457091652 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TfClearParamTest.java 2015-01-09 15:41:20.381091533 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -24,11 +24,8 @@
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerFactory;
@@ -36,21 +33,20 @@
import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR;
import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.stream.StreamSource;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
+import jaxp.library.JAXPFileReadOnlyBaseTest;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNull;
import org.testng.annotations.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
/**
* Class containing the test cases for SAXParserFactory API
*/
-public class TfClearParamTest {
+public class TfClearParamTest extends JAXPFileReadOnlyBaseTest {
/**
- * Test xslt file.
+ * Test style-sheet file name.
*/
private final String XSL_FILE = XML_DIR + "cities.xsl";
@@ -72,193 +68,164 @@
/**
* Obtains transformer's parameter with the same name that set before. Value
* should be same as set one.
+ * @throws TransformerConfigurationException If for some reason the
+ * TransformerHandler can not be created.
*/
@Test
- public void clear01() {
- try {
- Transformer transformer = TransformerFactory.newInstance().newTransformer();
- transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
- assertEquals(transformer.getParameter(LONG_PARAM_NAME).toString(), PARAM_VALUE);
- } catch (TransformerConfigurationException ex) {
- failUnexpected(ex);
- }
-
+ public void clear01() throws TransformerConfigurationException {
+ Transformer transformer = TransformerFactory.newInstance().newTransformer();
+ transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
+ assertEquals(transformer.getParameter(LONG_PARAM_NAME).toString(), PARAM_VALUE);
}
/**
* Obtains transformer's parameter with the a name that wasn't set before.
* Null is expected.
+ * @throws TransformerConfigurationException If for some reason the
+ * TransformerHandler can not be created.
*/
@Test
- public void clear02() {
- try {
- Transformer transformer = TransformerFactory.newInstance().newTransformer();
- transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
- transformer.clearParameters();
- assertNull(transformer.getParameter(LONG_PARAM_NAME));
- } catch (TransformerConfigurationException ex){
- failUnexpected(ex);
- }
+ public void clear02() throws TransformerConfigurationException {
+ Transformer transformer = TransformerFactory.newInstance().newTransformer();
+ transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
+ transformer.clearParameters();
+ assertNull(transformer.getParameter(LONG_PARAM_NAME));
+ }
+
+ /**
+ * Obtains transformer's parameter with a short name that set before. Value
+ * should be same as set one.
+ * @throws TransformerConfigurationException If for some reason the
+ * TransformerHandler can not be created.
+ */
+ @Test
+ public void clear03() throws TransformerConfigurationException {
+ TransformerFactory tfactory = TransformerFactory.newInstance();
+ Transformer transformer = tfactory.newTransformer();
+
+ transformer.setParameter(SHORT_PARAM_NAME, PARAM_VALUE);
+ assertEquals(transformer.getParameter(SHORT_PARAM_NAME).toString(), PARAM_VALUE);
+ }
+
+ /**
+ * Obtains transformer's parameter with a short name that set with an integer
+ * object before. Value should be same as the set integer object.
+ * @throws TransformerConfigurationException If for some reason the
+ * TransformerHandler can not be created.
+ */
+ @Test
+ public void clear04() throws TransformerConfigurationException {
+ Transformer transformer = TransformerFactory.newInstance().newTransformer();
+
+ int intObject = 5;
+ transformer.setParameter(SHORT_PARAM_NAME, intObject);
+ assertEquals(transformer.getParameter(SHORT_PARAM_NAME), intObject);
}
/**
* Obtains transformer's parameter whose initiated with a stream source with
* the a name that set before. Value should be same as set one.
+ * @throws TransformerConfigurationException If for some reason the
+ * TransformerHandler can not be created.
*/
- @Test
- public void clear03() {
- try {
- Transformer transformer = TransformerFactory.newInstance().
- newTransformer(new StreamSource(new File(XSL_FILE)));
+ @Test (groups = {"readLocalFiles"})
+ public void clear05() throws TransformerConfigurationException {
+ Transformer transformer = TransformerFactory.newInstance().
+ newTransformer(new StreamSource(new File(XSL_FILE)));
- transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
- assertEquals(transformer.getParameter(LONG_PARAM_NAME), PARAM_VALUE);
- } catch (TransformerConfigurationException ex){
- failUnexpected(ex);
- }
+ transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
+ assertEquals(transformer.getParameter(LONG_PARAM_NAME), PARAM_VALUE);
}
/**
* Obtains transformer's parameter whose initiated with a stream source with
* the a name that wasn't set before. Null is expected.
+ * @throws TransformerConfigurationException If for some reason the
+ * TransformerHandler can not be created.
*/
- @Test
- public void clear04() {
- try {
- Transformer transformer = TransformerFactory.newInstance().
- newTransformer(new StreamSource(new File(XSL_FILE)));
- transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
- transformer.clearParameters();
- assertNull(transformer.getParameter(LONG_PARAM_NAME));
- } catch (TransformerConfigurationException ex){
- failUnexpected(ex);
- }
-
+ @Test (groups = {"readLocalFiles"})
+ public void clear06() throws TransformerConfigurationException {
+ Transformer transformer = TransformerFactory.newInstance().
+ newTransformer(new StreamSource(new File(XSL_FILE)));
+ transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
+ transformer.clearParameters();
+ assertNull(transformer.getParameter(LONG_PARAM_NAME));
}
/**
* Obtains transformer's parameter whose initiated with a sax source with
* the a name that set before. Value should be same as set one.
+ * @throws Exception If any errors occur.
*/
- @Test
- public void clear05() {
- try {
- InputSource is = new InputSource(new FileInputStream(XSL_FILE));
+ @Test (groups = {"readLocalFiles"})
+ public void clear07() throws Exception {
+ try (FileInputStream fis = new FileInputStream(XSL_FILE)) {
SAXSource saxSource = new SAXSource();
- saxSource.setInputSource(is);
+ saxSource.setInputSource(new InputSource(fis));
Transformer transformer = TransformerFactory.newInstance().newTransformer(saxSource);
-
transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
assertEquals(transformer.getParameter(LONG_PARAM_NAME), PARAM_VALUE);
- } catch (FileNotFoundException | TransformerConfigurationException ex){
- failUnexpected(ex);
}
}
/**
* Obtains transformer's parameter whose initiated with a sax source with
* the a name that wasn't set before. Null is expected.
+ * @throws Exception If any errors occur.
*/
- @Test
- public void clear06() {
- try {
- InputSource is = new InputSource(new FileInputStream(XSL_FILE));
+ @Test (groups = {"readLocalFiles"})
+ public void clear08() throws Exception {
+ try (FileInputStream fis = new FileInputStream(XSL_FILE)) {
SAXSource saxSource = new SAXSource();
- saxSource.setInputSource(is);
+ saxSource.setInputSource(new InputSource(fis));
Transformer transformer = TransformerFactory.newInstance().newTransformer(saxSource);
-
transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
transformer.clearParameters();
assertNull(transformer.getParameter(LONG_PARAM_NAME));
- } catch (FileNotFoundException | TransformerConfigurationException ex){
- failUnexpected(ex);
}
}
/**
* Obtains transformer's parameter whose initiated with a dom source with
* the a name that set before. Value should be same as set one.
+ * @throws Exception If any errors occur.
*/
- @Test
- public void clear07() {
- try {
- TransformerFactory tfactory = TransformerFactory.newInstance();
-
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- Document document = db.parse(new File(XSL_FILE));
- DOMSource domSource = new DOMSource((Node)document);
+ @Test (groups = {"readLocalFiles"})
+ public void clear09() throws Exception {
+ TransformerFactory tfactory = TransformerFactory.newInstance();
+
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document = db.parse(new File(XSL_FILE));
+ DOMSource domSource = new DOMSource((Node)document);
- Transformer transformer = tfactory.newTransformer(domSource);
+ Transformer transformer = tfactory.newTransformer(domSource);
- transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
- assertEquals(transformer.getParameter(LONG_PARAM_NAME), PARAM_VALUE);
- } catch (IOException | ParserConfigurationException
- | TransformerConfigurationException | SAXException ex){
- failUnexpected(ex);
- }
+ transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
+ assertEquals(transformer.getParameter(LONG_PARAM_NAME), PARAM_VALUE);
}
/**
* Obtains transformer's parameter whose initiated with a dom source with
* the a name that wasn't set before. Null is expected.
+ * @throws Exception If any errors occur.
*/
- @Test
- public void clear08() {
- try {
- TransformerFactory tfactory = TransformerFactory.newInstance();
-
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- Document document = db.parse(new File(XSL_FILE));
- DOMSource domSource = new DOMSource((Node)document);
-
- Transformer transformer = tfactory.newTransformer(domSource);
- transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
- transformer.clearParameters();
- assertNull(transformer.getParameter(LONG_PARAM_NAME));
- } catch (IOException | ParserConfigurationException
- | TransformerConfigurationException | SAXException ex){
- failUnexpected(ex);
- }
- }
-
- /**
- * Obtains transformer's parameter with a short name that set before. Value
- * should be same as set one.
- */
- @Test
- public void clear09() {
- try {
- TransformerFactory tfactory = TransformerFactory.newInstance();
- Transformer transformer = tfactory.newTransformer();
-
- transformer.setParameter(SHORT_PARAM_NAME, PARAM_VALUE);
- assertEquals(transformer.getParameter(SHORT_PARAM_NAME).toString(), PARAM_VALUE);
- } catch (TransformerConfigurationException ex){
- failUnexpected(ex);
- }
- }
-
- /**
- * Obtains transformer's parameter with a short name that set with an integer
- * object before. Value should be same as the set integer object.
- */
- @Test
- public void clear10() {
- try {
- TransformerFactory tfactory = TransformerFactory.newInstance();
- Transformer transformer = tfactory.newTransformer();
-
- int intObject = 5;
- transformer.setParameter(SHORT_PARAM_NAME, intObject);
- assertEquals(transformer.getParameter(SHORT_PARAM_NAME), intObject);
- } catch (TransformerConfigurationException ex){
- failUnexpected(ex);
- }
+ @Test (groups = {"readLocalFiles"})
+ public void clear10() throws Exception {
+ TransformerFactory tfactory = TransformerFactory.newInstance();
+
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document = db.parse(new File(XSL_FILE));
+ DOMSource domSource = new DOMSource((Node)document);
+
+ Transformer transformer = tfactory.newTransformer(domSource);
+ transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE);
+ transformer.clearParameters();
+ assertNull(transformer.getParameter(LONG_PARAM_NAME));
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerExcpTest.java 2015-01-09 15:41:20.811092203 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerExcpTest.java 2015-01-09 15:41:20.734092083 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,12 +23,14 @@
package javax.xml.transform.ptests;
import java.io.File;
+import java.io.FilePermission;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamSource;
+import jaxp.library.JAXPBaseTest;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
@@ -38,13 +40,14 @@
/**
* Basic test for TransformerException specification.
*/
-public class TransformerExcpTest {
+public class TransformerExcpTest extends JAXPBaseTest {
/**
- * Transform an unformatted xslt file. TransformerException is thrown.
+ * Transform an unformatted style-sheet file. TransformerException is thrown.
*/
@Test
public void tfexception() {
try {
+ setPermissions(new FilePermission(XML_DIR + "-", "read"));
// invalid.xsl has well-formedness error. Therefore transform throws
// TransformerException
StreamSource streamSource
@@ -60,6 +63,8 @@
assertNotNull(e.getException());
assertNull(e.getLocationAsString());
assertEquals(e.getMessageAndLocation(),e.getMessage());
+ } finally {
+ setPermissions();
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java 2015-01-09 15:41:21.165092755 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java 2015-01-09 15:41:21.087092633 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -24,39 +24,35 @@
import java.io.*;
import java.io.FileOutputStream;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
-import static javax.xml.transform.ptests.TransformerTestConst.CLASS_DIR;
import static javax.xml.transform.ptests.TransformerTestConst.GOLDEN_DIR;
import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR;
import javax.xml.transform.stream.*;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
import org.w3c.dom.*;
-import org.xml.sax.SAXException;
/**
* Class containing the test cases for TransformerFactory API's
* getAssociatedStyleSheet method.
*/
-public class TransformerFactoryTest {
+public class TransformerFactoryTest extends JAXPFileBaseTest {
/**
* This test case checks for the getAssociatedStylesheet method
* of TransformerFactory.
* The style sheet returned is then copied to an tfactory01.out
- * It will then be verified to see if it matches the golden files
+ * It will then be verified to see if it matches the golden files.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void tfactory01() {
- String outputFile = CLASS_DIR + "tfactory01.out";
+ public void tfactory01() throws Exception {
+ String outputFile = USER_DIR + "tfactory01.out";
String goldFile = GOLDEN_DIR + "tfactory01GF.out";
String xmlFile = XML_DIR + "TransformerFactoryTest.xml";
String xmlURI = "file:///" + XML_DIR;
@@ -76,10 +72,7 @@
"Modern", null);
Transformer t = tFactory.newTransformer();
t.transform(s, streamResult);
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (IOException | ParserConfigurationException
- | TransformerException | SAXException ex) {
- failUnexpected(ex);
}
+ assertTrue(compareWithGold(goldFile, outputFile));
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest.java 2015-01-09 15:41:21.594093423 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest.java 2015-01-09 15:41:21.516093302 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -24,12 +24,9 @@
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
import java.util.Properties;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.ErrorListener;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
@@ -39,150 +36,132 @@
import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR;
import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.stream.StreamSource;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
+import jaxp.library.JAXPFileReadOnlyBaseTest;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
/**
* Basic test cases for Transformer API
*/
-public class TransformerTest {
+public class TransformerTest extends JAXPFileReadOnlyBaseTest {
/**
* XSLT file serves every test method.
*/
private final static String TEST_XSL = XML_DIR + "cities.xsl";
/**
- * This tests if newTransformer(StreamSource) method returns Transformer
- */
- @Test
- public void transformer01() {
- try {
- TransformerFactory tfactory = TransformerFactory.newInstance();
- StreamSource streamSource = new StreamSource(
- new File(TEST_XSL));
- Transformer transformer = tfactory.newTransformer(streamSource);
- assertNotNull(transformer);
- } catch (TransformerConfigurationException ex){
- failUnexpected(ex);
- }
+ * This tests if newTransformer(StreamSource) method returns Transformer.
+ * @throws TransformerConfigurationException If for some reason the
+ * TransformerHandler can not be created.
+ */
+ @Test (groups = {"readLocalFiles"})
+ public void transformer01() throws TransformerConfigurationException {
+ TransformerFactory tfactory = TransformerFactory.newInstance();
+ StreamSource streamSource = new StreamSource(
+ new File(TEST_XSL));
+ Transformer transformer = tfactory.newTransformer(streamSource);
+ assertNotNull(transformer);
}
/**
- * This tests if newTransformer(SAXSource) method returns Transformer
- */
- @Test
- public void transformer02() {
- try {
+ * This tests if newTransformer(SAXSource) method returns Transformer.
+ * @throws Exception If any errors occur.
+ */
+ @Test (groups = {"readLocalFiles"})
+ public void transformer02() throws Exception {
+ try (FileInputStream fis = new FileInputStream(TEST_XSL)) {
TransformerFactory tfactory = TransformerFactory.newInstance();
- InputSource is = new InputSource(
- new FileInputStream(TEST_XSL));
- SAXSource saxSource = new SAXSource(is);
+ SAXSource saxSource = new SAXSource(new InputSource(fis));
Transformer transformer = tfactory.newTransformer(saxSource);
assertNotNull(transformer);
- } catch (TransformerConfigurationException | FileNotFoundException ex){
- failUnexpected(ex);
}
}
/**
- * This tests if newTransformer(DOMSource) method returns Transformer
- */
- @Test
- public void transformer03() {
- try {
- TransformerFactory tfactory = TransformerFactory.newInstance();
+ * This tests if newTransformer(DOMSource) method returns Transformer.
+ *
+ * @throws Exception If any errors occur.
+ */
+ @Test (groups = {"readLocalFiles"})
+ public void transformer03() throws Exception {
+ TransformerFactory tfactory = TransformerFactory.newInstance();
+
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document = db.parse(new File(TEST_XSL));
+ DOMSource domSource = new DOMSource(document);
+
+ Transformer transformer = tfactory.newTransformer(domSource);
+ assertNotNull(transformer);
+ }
+
+ /**
+ * This tests set/get ErrorListener methods of Transformer.
+ *
+ * @throws Exception If any errors occur.
+ */
+ @Test (groups = {"readLocalFiles"})
+ public void transformer04() throws Exception {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document = db.parse(new File(TEST_XSL));
+ DOMSource domSource = new DOMSource(document);
+
+ Transformer transformer = TransformerFactory.newInstance()
+ .newTransformer(domSource);
+ transformer.setErrorListener(new MyErrorListener());
+ assertNotNull(transformer.getErrorListener());
+ assertTrue(transformer.getErrorListener() instanceof MyErrorListener);
+ }
+
+ /**
+ * This tests getOutputProperties() method of Transformer.
+ *
+ * @throws Exception If any errors occur.
+ */
+ @Test (groups = {"readLocalFiles"})
+ public void transformer05() throws Exception {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document = db.parse(new File(TEST_XSL));
+ DOMSource domSource = new DOMSource(document);
+
+ Transformer transformer = TransformerFactory.newInstance().
+ newTransformer(domSource);
+ Properties prop = transformer.getOutputProperties();
+
+ assertEquals(prop.getProperty("indent"), "yes");
+ assertEquals(prop.getProperty("method"), "xml");
+ assertEquals(prop.getProperty("encoding"), "UTF-8");
+ assertEquals(prop.getProperty("standalone"), "no");
+ assertEquals(prop.getProperty("version"), "1.0");
+ assertEquals(prop.getProperty("omit-xml-declaration"), "no");
+ }
+
+ /**
+ * This tests getOutputProperty() method of Transformer.
+ *
+ * @throws Exception If any errors occur.
+ */
+ @Test (groups = {"readLocalFiles"})
+ public void transformer06() throws Exception {
+ TransformerFactory tfactory = TransformerFactory.newInstance();
+
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document = db.parse(new File(TEST_XSL));
+ DOMSource domSource = new DOMSource(document);
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- Document document = db.parse(new File(TEST_XSL));
- DOMSource domSource = new DOMSource(document);
-
- Transformer transformer = tfactory.newTransformer(domSource);
- assertNotNull(transformer);
- } catch (TransformerConfigurationException | IOException
- | ParserConfigurationException | SAXException ex){
- failUnexpected(ex);
- }
- }
-
- /**
- * This tests set/get ErrorListener methods of Transformer
- */
- @Test
- public void transformer04() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- Document document = db.parse(new File(TEST_XSL));
- DOMSource domSource = new DOMSource(document);
-
- Transformer transformer = TransformerFactory.newInstance()
- .newTransformer(domSource);
- transformer.setErrorListener(new MyErrorListener());
- assertNotNull(transformer.getErrorListener());
- assertTrue(transformer.getErrorListener() instanceof MyErrorListener);
- } catch (IOException | IllegalArgumentException | ParserConfigurationException
- | TransformerConfigurationException | SAXException ex){
- failUnexpected(ex);
- }
- }
-
- /**
- * This tests getOutputProperties() method of Transformer
- */
- @Test
- public void transformer05() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- Document document = db.parse(new File(TEST_XSL));
- DOMSource domSource = new DOMSource(document);
-
- Transformer transformer = TransformerFactory.newInstance().
- newTransformer(domSource);
- Properties prop = transformer.getOutputProperties();
-
- assertEquals(prop.getProperty("indent"), "yes");
- assertEquals(prop.getProperty("method"), "xml");
- assertEquals(prop.getProperty("encoding"), "UTF-8");
- assertEquals(prop.getProperty("standalone"), "no");
- assertEquals(prop.getProperty("version"), "1.0");
- assertEquals(prop.getProperty("omit-xml-declaration"), "no");
- } catch (ParserConfigurationException | SAXException | IOException
- | TransformerConfigurationException ex){
- failUnexpected(ex);
- }
- }
-
- /**
- * This tests getOutputProperty() method of Transformer
- */
- @Test
- public void transformer06() {
- try {
- TransformerFactory tfactory = TransformerFactory.newInstance();
-
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- Document document = db.parse(new File(TEST_XSL));
- DOMSource domSource = new DOMSource(document);
-
- Transformer transformer = tfactory.newTransformer(domSource);
- assertEquals(transformer.getOutputProperty("method"), "xml");
- } catch (ParserConfigurationException | SAXException | IOException
- | TransformerConfigurationException | IllegalArgumentException ex){
- failUnexpected(ex);
- }
+ Transformer transformer = tfactory.newTransformer(domSource);
+ assertEquals(transformer.getOutputProperty("method"), "xml");
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest02.java 2015-01-09 15:41:21.940093963 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest02.java 2015-01-09 15:41:21.862093841 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -25,42 +25,34 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
-import static javax.xml.transform.ptests.TransformerTestConst.CLASS_DIR;
import static javax.xml.transform.ptests.TransformerTestConst.GOLDEN_DIR;
import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
-import org.w3c.dom.Document;
-import org.xml.sax.SAXException;
/**
* Here a transformer is created using DOMSource. Some specific output property
* is set on transformer. Then transform(StreamSource, StreamResult) is tested.
*/
-public class TransformerTest02 {
+public class TransformerTest02 extends JAXPFileBaseTest {
/**
* Unit test for transform(StreamSource, StreamResult).
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testcase01() {
- String outputFile = CLASS_DIR + "transformer02.out";
+ public void testcase01() throws Exception {
+ String outputFile = USER_DIR + "transformer02.out";
String goldFile = GOLDEN_DIR + "transformer02GF.out";
String xsltFile = XML_DIR + "cities.xsl";
String xmlFile = XML_DIR + "cities.xml";
@@ -69,9 +61,8 @@
FileOutputStream fos = new FileOutputStream(outputFile)) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- Document document = db.parse(new File(xsltFile));
- DOMSource domSource = new DOMSource(document);
+ DOMSource domSource = new DOMSource(dbf.newDocumentBuilder().
+ parse(new File(xsltFile)));
Transformer transformer = TransformerFactory.newInstance().
newTransformer(domSource);
@@ -79,20 +70,8 @@
StreamResult streamResult = new StreamResult(fos);
transformer.setOutputProperty("indent", "no");
- transformer.transform( streamSource, streamResult);
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (IOException | IllegalArgumentException
- | ParserConfigurationException | TransformerException
- | SAXException ex) {
- failUnexpected(ex);
- } finally {
- try {
- Path outputPath = Paths.get(outputFile);
- if(Files.exists(outputPath))
- Files.delete(outputPath);
- } catch (IOException ex) {
- failCleanup(ex, outputFile);
- }
+ transformer.transform(streamSource, streamResult);
}
+ assertTrue(compareWithGold(goldFile, outputFile));
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest03.java 2015-01-09 15:41:22.294094514 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest03.java 2015-01-09 15:41:22.218094396 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -25,30 +25,20 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
import java.util.Properties;
-import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
-import static javax.xml.transform.ptests.TransformerTestConst.CLASS_DIR;
import static javax.xml.transform.ptests.TransformerTestConst.GOLDEN_DIR;
import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
-import org.w3c.dom.Document;
-import org.xml.sax.SAXException;
/**
* Here Properties Object is populated with required properties.A transformer
@@ -56,13 +46,15 @@
* for transformer. Then transform(StreamSource, StreamResult) is used for
* transformation. This tests the setOutputProperties() method.
*/
-public class TransformerTest03 {
+public class TransformerTest03 extends JAXPFileBaseTest {
/**
* Test for Transformer.setOutputProperties method.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testcase01() {
- String outputFile = CLASS_DIR + "transformer03.out";
+ public void testcase01() throws Exception {
+ String outputFile = USER_DIR + "transformer03.out";
String goldFile = GOLDEN_DIR + "transformer03GF.out";
String xsltFile = XML_DIR + "cities.xsl";
String xmlFile = XML_DIR + "cities.xml";
@@ -81,29 +73,14 @@
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- Document document = db.parse(new File(xsltFile));
- DOMSource domSource = new DOMSource(document);
+ DOMSource domSource = new DOMSource(dbf.newDocumentBuilder().
+ parse(new File(xsltFile)));
Transformer transformer = TransformerFactory.newInstance().
newTransformer(domSource);
- StreamSource streamSource = new StreamSource(fis);
- StreamResult streamResult = new StreamResult(fos);
-
transformer.setOutputProperties(properties);
- transformer.transform( streamSource, streamResult);
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (ParserConfigurationException | SAXException
- | IOException | TransformerException ex){
- failUnexpected(ex);
- } finally {
- try {
- Path outputPath = Paths.get(outputFile);
- if(Files.exists(outputPath))
- Files.delete(outputPath);
- } catch (IOException ex) {
- failCleanup(ex, outputFile);
- }
+ transformer.transform(new StreamSource(fis), new StreamResult(fos));
}
+ assertTrue(compareWithGold(goldFile, outputFile));
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/URIResolverTest.java 2015-01-09 15:41:22.647095064 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/URIResolverTest.java 2015-01-09 15:41:22.572094948 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -24,15 +24,10 @@
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.URIResolver;
import javax.xml.transform.dom.DOMSource;
@@ -40,18 +35,17 @@
import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
-import static jaxp.library.JAXPTestUtilities.FILE_SEP;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
+import jaxp.library.JAXPFileBaseTest;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
import org.testng.annotations.Test;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
/**
* URIResolver should be invoked when transform happens.
*/
-public class URIResolverTest implements URIResolver {
+public class URIResolverTest extends JAXPFileBaseTest implements URIResolver {
/**
* System ID constant.
*/
@@ -72,9 +66,8 @@
*/
private final static String XSL_TEMP_FILE = "temp/cities.xsl";
-
/**
- * expected Href.
+ * expected HREF.
*/
private final String validateHref;
@@ -82,6 +75,14 @@
* expected Base URI.
*/
private final String validateBase;
+
+ /**
+ * Default constructor for testng invocation.
+ */
+ public URIResolverTest(){
+ validateHref = null;
+ validateBase = null;
+ }
/**
* Constructor for setting expected Href and expected Base URI.
@@ -110,166 +111,144 @@
/**
* This is to test the URIResolver.resolve() method when a transformer is
- * created using StreamSource. xsl file has xsl:include in it
+ * created using StreamSource. style-sheet file has xsl:include in it.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public static void resolver01() {
- try {
+ @Test (groups = {"readLocalFiles"})
+ public static void resolver01() throws Exception {
+ try (FileInputStream fis = new FileInputStream(XSL_INCLUDE_FILE)) {
TransformerFactory tfactory = TransformerFactory.newInstance();
URIResolverTest resolver = new URIResolverTest(XSL_TEMP_FILE, SYSTEM_ID);
tfactory.setURIResolver(resolver);
- StreamSource streamSource = new StreamSource(new FileInputStream(XSL_INCLUDE_FILE));
+ StreamSource streamSource = new StreamSource(fis);
streamSource.setSystemId(SYSTEM_ID);
-
- Transformer transformer = tfactory.newTransformer(streamSource);
- } catch (FileNotFoundException | TransformerConfigurationException ex){
- failUnexpected(ex);
+ assertNotNull(tfactory.newTransformer(streamSource));
}
}
/**
* This is to test the URIResolver.resolve() method when a transformer is
- * created using DOMSource. xsl file has xsl:include in it
+ * created using DOMSource. style-sheet file has xsl:include in it.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public static void resolver02() {
- try {
- TransformerFactory tfactory = TransformerFactory.newInstance();
- URIResolverTest resolver = new URIResolverTest(XSL_TEMP_FILE, SYSTEM_ID);
- tfactory.setURIResolver(resolver);
+ @Test (groups = {"readLocalFiles"})
+ public static void resolver02() throws Exception {
+ TransformerFactory tfactory = TransformerFactory.newInstance();
+ URIResolverTest resolver = new URIResolverTest(XSL_TEMP_FILE, SYSTEM_ID);
+ tfactory.setURIResolver(resolver);
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- Document document = db.parse(XSL_INCLUDE_FILE);
- DOMSource domSource = new DOMSource(document, SYSTEM_ID);
-
- Transformer transformer = tfactory.newTransformer(domSource);
- } catch (IOException | ParserConfigurationException
- | TransformerConfigurationException | SAXException ex){
- failUnexpected(ex);
- }
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document = db.parse(XSL_INCLUDE_FILE);
+ DOMSource domSource = new DOMSource(document, SYSTEM_ID);
+
+ assertNotNull(tfactory.newTransformer(domSource));
}
/**
* This is to test the URIResolver.resolve() method when a transformer is
- * created using SAXSource. xsl file has xsl:include in it
+ * created using SAXSource. style-sheet file has xsl:include in it.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public static void resolver03() {
- try {
+ @Test (groups = {"readLocalFiles"})
+ public static void resolver03() throws Exception {
+ try (FileInputStream fis = new FileInputStream(XSL_INCLUDE_FILE)){
URIResolverTest resolver = new URIResolverTest(XSL_TEMP_FILE, SYSTEM_ID);
TransformerFactory tfactory = TransformerFactory.newInstance();
tfactory.setURIResolver(resolver);
- InputSource is = new InputSource(new FileInputStream(XSL_INCLUDE_FILE));
+ InputSource is = new InputSource(fis);
is.setSystemId(SYSTEM_ID);
SAXSource saxSource = new SAXSource(is);
-
- Transformer transformer = tfactory.newTransformer(saxSource);
- } catch (FileNotFoundException | TransformerConfigurationException ex){
- failUnexpected(ex);
+ assertNotNull(tfactory.newTransformer(saxSource));
}
}
/**
* This is to test the URIResolver.resolve() method when a transformer is
- * created using StreamSource. xsl file has xsl:import in it
+ * created using StreamSource. style-sheet file has xsl:import in it.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public static void resolver04() {
- try {
+ @Test (groups = {"readLocalFiles"})
+ public static void resolver04() throws Exception {
+ try (FileInputStream fis = new FileInputStream(XSL_IMPORT_FILE)) {
URIResolverTest resolver = new URIResolverTest(XSL_TEMP_FILE, SYSTEM_ID);
TransformerFactory tfactory = TransformerFactory.newInstance();
tfactory.setURIResolver(resolver);
-
- StreamSource streamSource = new StreamSource(new FileInputStream(XSL_IMPORT_FILE));
+ StreamSource streamSource = new StreamSource(fis);
streamSource.setSystemId(SYSTEM_ID);
-
- Transformer transformer = tfactory.newTransformer(streamSource);
- } catch (FileNotFoundException | TransformerConfigurationException ex){
- failUnexpected(ex);
+ assertNotNull(tfactory.newTransformer(streamSource));
}
}
/**
* This is to test the URIResolver.resolve() method when a transformer is
- * created using DOMSource. xsl file has xsl:import in it
+ * created using DOMSource. style-sheet file has xsl:import in it.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public static void resolver05() {
- try {
- URIResolverTest resolver = new URIResolverTest(XSL_TEMP_FILE, SYSTEM_ID);
- TransformerFactory tfactory = TransformerFactory.newInstance();
- tfactory.setURIResolver(resolver);
-
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- Document document = db.parse(new File(XSL_IMPORT_FILE));
- DOMSource domSource = new DOMSource(document, SYSTEM_ID);
-
- Transformer transformer = tfactory.newTransformer(domSource);
- } catch (ParserConfigurationException | SAXException | IOException
- | TransformerConfigurationException ex){
- failUnexpected(ex);
- }
-
+ @Test (groups = {"readLocalFiles"})
+ public static void resolver05() throws Exception {
+ URIResolverTest resolver = new URIResolverTest(XSL_TEMP_FILE, SYSTEM_ID);
+ TransformerFactory tfactory = TransformerFactory.newInstance();
+ tfactory.setURIResolver(resolver);
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document = db.parse(new File(XSL_IMPORT_FILE));
+ DOMSource domSource = new DOMSource(document, SYSTEM_ID);
+ assertNotNull(tfactory.newTransformer(domSource));
}
/**
* This is to test the URIResolver.resolve() method when a transformer is
- * created using SAXSource. xsl file has xsl:import in it
+ * created using SAXSource. style-sheet file has xsl:import in it.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public static void resolver06() {
- try {
+ @Test (groups = {"readLocalFiles"})
+ public static void resolver06() throws Exception {
+ try (FileInputStream fis = new FileInputStream(XSL_IMPORT_FILE)){
URIResolverTest resolver = new URIResolverTest(XSL_TEMP_FILE, SYSTEM_ID);
TransformerFactory tfactory = TransformerFactory.newInstance();
tfactory.setURIResolver(resolver);
-
- InputSource is = new InputSource(new FileInputStream(XSL_IMPORT_FILE));
+ InputSource is = new InputSource(fis);
is.setSystemId(SYSTEM_ID);
SAXSource saxSource = new SAXSource(is);
-
- Transformer transformer = tfactory.newTransformer(saxSource);
- } catch (FileNotFoundException | TransformerConfigurationException ex){
- failUnexpected(ex);
+ assertNotNull(tfactory.newTransformer(saxSource));
}
-
}
/**
* This is to test the URIResolver.resolve() method when there is an error
* in the file.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public static void docResolver01() {
- try {
+ @Test (groups = {"readLocalFiles"})
+ public static void docResolver01() throws Exception {
+ try (FileInputStream fis = new FileInputStream(XML_DIR + "doctest.xsl")) {
URIResolverTest resolver = new URIResolverTest("temp/colors.xml", SYSTEM_ID);
- TransformerFactory tfactory = TransformerFactory.newInstance();
-
- StreamSource streamSource = new StreamSource(
- new FileInputStream(XML_DIR + FILE_SEP + "doctest.xsl"));
+ StreamSource streamSource = new StreamSource(fis);
streamSource.setSystemId(SYSTEM_ID);
- System.err.println(streamSource.getSystemId());
- Transformer transformer = tfactory.newTransformer(streamSource);
+ Transformer transformer = TransformerFactory.newInstance().newTransformer(streamSource);
transformer.setURIResolver(resolver);
- File f = new File(XML_DIR + FILE_SEP + "myFake.xml");
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- DocumentBuilder builder = factory.newDocumentBuilder();
- Document document = builder.parse(f);
+ File f = new File(XML_DIR + "myFake.xml");
+ Document document = DocumentBuilderFactory.newInstance().
+ newDocumentBuilder().parse(f);
// Use a Transformer for output
DOMSource source = new DOMSource(document);
- System.err.println("Ignore the following output -- just dumping it here");
StreamResult result = new StreamResult(System.err);
+ // No exception is expected because resolver resolve wrong URI.
transformer.transform(source, result);
- } catch (IOException | ParserConfigurationException | SAXException
- | TransformerException ex) {
- failUnexpected(ex);
}
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/othervm/TFCErrorTest.java 2015-01-09 15:41:22.989095598 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/othervm/TFCErrorTest.java 2015-01-09 15:41:22.914095481 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 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
@@ -23,19 +23,22 @@
package javax.xml.transform.ptests.othervm;
import javax.xml.transform.*;
+import jaxp.library.JAXPBaseTest;
+import static org.testng.Assert.fail;
import org.testng.annotations.Test;
/**
* Negative test for set invalid TransformerFactory property.
*/
-public class TFCErrorTest{
+public class TFCErrorTest extends JAXPBaseTest {
@Test(expectedExceptions = ClassNotFoundException.class)
public void tfce01() throws Exception {
try{
- System.setProperty("javax.xml.transform.TransformerFactory","xx");
- TransformerFactory tFactory = TransformerFactory.newInstance();
- } catch (TransformerFactoryConfigurationError error) {
- throw error.getException();
+ setSystemProperty("javax.xml.transform.TransformerFactory","xx");
+ TransformerFactory.newInstance();
+ fail("Expect TransformerFactoryConfigurationError here");
+ } catch (TransformerFactoryConfigurationError expected) {
+ throw expected.getException();
}
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathExpressionTest.java 2015-01-09 15:41:23.352096163 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathExpressionTest.java 2015-01-09 15:41:23.271096037 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,7 +23,7 @@
package javax.xml.xpath.ptests;
-import java.io.IOException;
+import java.io.FilePermission;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -31,7 +31,6 @@
import javax.xml.XMLConstants;
import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import static javax.xml.xpath.XPathConstants.BOOLEAN;
import static javax.xml.xpath.XPathConstants.NODE;
@@ -41,7 +40,7 @@
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import static javax.xml.xpath.ptests.XPathTestConst.XML_DIR;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
+import jaxp.library.JAXPFileReadOnlyBaseTest;
import static org.testng.Assert.assertEquals;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
@@ -49,12 +48,11 @@
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
/**
* Class containing the test cases for XPathExpression API.
*/
-public class XPathExpressionTest {
+public class XPathExpressionTest extends JAXPFileReadOnlyBaseTest {
/**
* Document object for testing XML file.
*/
@@ -87,13 +85,11 @@
/**
* Create Document object and XPath object for every time
- * @throws ParserConfigurationException If the factory class cannot be
- * loaded, instantiated
- * @throws SAXException If any parse errors occur.
- * @throws IOException If operation on xml file failed.
+ * @throws Exception If any errors occur.
*/
@BeforeTest
- public void setup() throws ParserConfigurationException, SAXException, IOException {
+ public void setup() throws Exception {
+ setPermissions(new FilePermission(XML_PATH.toFile().toString(), "read"));
document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(XML_PATH.toFile());
xpath = XPathFactory.newInstance().newXPath();
}
@@ -101,343 +97,303 @@
/**
* Test for evaluate(java.lang.Object item,QName returnType)throws
* XPathExpressionException.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPathExpression01() {
- try {
- assertEquals(xpath.compile(EXPRESSION_NAME_A).
- evaluate(document, STRING), "6");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression01() throws XPathExpressionException {
+ assertEquals(xpath.compile(EXPRESSION_NAME_A).
+ evaluate(document, STRING), "6");
}
/**
* evaluate(java.lang.Object item,QName returnType) throws NPE if input
* source is null.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPathExpression02() {
- try {
- xpath.compile(EXPRESSION_NAME_A).evaluate(null, STRING);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression02() throws XPathExpressionException {
+ xpath.compile(EXPRESSION_NAME_A).evaluate(null, STRING);
}
/**
* evaluate(java.lang.Object item,QName returnType) throws NPE if returnType
* is null.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPathExpression03() {
- try {
- xpath.compile(EXPRESSION_NAME_A).evaluate(document, null);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression03() throws XPathExpressionException {
+ xpath.compile(EXPRESSION_NAME_A).evaluate(document, null);
}
/**
* Test for method evaluate(java.lang.Object item,QName returnType).If a
* request is made to evaluate the expression in the absence of a context
* item, simple expressions, such as "1+1", can be evaluated.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPathExpression04() {
- try {
- assertEquals(xpath.compile("1+1").evaluate(document, STRING), "2");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression04() throws XPathExpressionException {
+ assertEquals(xpath.compile("1+1").evaluate(document, STRING), "2");
}
/**
* evaluate(java.lang.Object item,QName returnType) throws IAE If returnType
* is not one of the types defined in XPathConstants.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = IllegalArgumentException.class)
- public void testCheckXPathExpression05() {
- try {
- xpath.compile(EXPRESSION_NAME_A).evaluate(document, TEST_QNAME);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression05() throws XPathExpressionException {
+ xpath.compile(EXPRESSION_NAME_A).evaluate(document, TEST_QNAME);
}
/**
* evaluate(java.lang.Object item,QName returnType) return correct boolean
* value if returnType is Boolean.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPathExpression06() {
- try {
- assertEquals(xpath.compile(EXPRESSION_NAME_A).
+ public void testCheckXPathExpression06() throws XPathExpressionException {
+ assertEquals(xpath.compile(EXPRESSION_NAME_A).
evaluate(document, BOOLEAN), true);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
}
/**
* evaluate(java.lang.Object item,QName returnType) return correct boolean
* value if returnType is Boolean.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPathExpression07() {
- try {
- assertEquals(xpath.compile(EXPRESSION_NAME_B).
- evaluate(document, BOOLEAN), false);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression07() throws XPathExpressionException {
+ assertEquals(xpath.compile(EXPRESSION_NAME_B).
+ evaluate(document, BOOLEAN), false);
}
/**
* evaluate(java.lang.Object item,QName returnType) return correct number
* value when return type is Double.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPathExpression08() {
- try {
- assertEquals(xpath.compile(EXPRESSION_NAME_A).
- evaluate(document, NUMBER), 6d);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression08() throws XPathExpressionException {
+ assertEquals(xpath.compile(EXPRESSION_NAME_A).
+ evaluate(document, NUMBER), 6d);
}
/**
* evaluate(java.lang.Object item,QName returnType) evaluate an attribute
* value which returnType is Node.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPathExpression09() {
- try {
- Attr attr = (Attr) xpath.compile(EXPRESSION_NAME_A).
- evaluate(document, NODE);
- assertEquals(attr.getValue(), "6");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression09() throws XPathExpressionException {
+ Attr attr = (Attr) xpath.compile(EXPRESSION_NAME_A).
+ evaluate(document, NODE);
+ assertEquals(attr.getValue(), "6");
}
/**
* evaluate(java.lang.Object item,QName returnType) evaluate an attribute
* value which returnType is NodeList.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPathExpression10() {
- try {
- NodeList nodeList = (NodeList) xpath.compile(EXPRESSION_NAME_A).
- evaluate(document, NODESET);
- Attr attr = (Attr) nodeList.item(0);
- assertEquals(attr.getValue(), "6");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression10() throws XPathExpressionException {
+ NodeList nodeList = (NodeList) xpath.compile(EXPRESSION_NAME_A).
+ evaluate(document, NODESET);
+ Attr attr = (Attr) nodeList.item(0);
+ assertEquals(attr.getValue(), "6");
}
/**
* Test for evaluate(java.lang.Object item) when returnType is left off of
* the XPath.evaluate method, all expressions are evaluated to a String
* value.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPathExpression11() {
- try {
- assertEquals(xpath.compile(EXPRESSION_NAME_A).evaluate(document), "6");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression11() throws XPathExpressionException {
+ assertEquals(xpath.compile(EXPRESSION_NAME_A).evaluate(document), "6");
}
/**
* evaluate(java.lang.Object item) throws NPE if expression is null.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPathExpression12() {
- try {
- xpath.compile(null).evaluate(document);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression12() throws XPathExpressionException {
+ xpath.compile(null).evaluate(document);
}
/**
* evaluate(java.lang.Object item) when a request is made to evaluate the
* expression in the absence of a context item, simple expressions, such as
* "1+1", can be evaluated.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPathExpression13() {
- try {
- assertEquals(xpath.compile("1+1").evaluate(document), "2");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression13() throws XPathExpressionException {
+ assertEquals(xpath.compile("1+1").evaluate(document), "2");
}
/**
* evaluate(java.lang.Object item) throws NPE if document is null.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPathExpression14() {
- try {
- xpath.compile(EXPRESSION_NAME_A).evaluate(null);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression14() throws XPathExpressionException {
+ xpath.compile(EXPRESSION_NAME_A).evaluate(null);
}
/**
* valuate(InputSource source) return a string value if return type is
* String.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPathExpression15() {
+ @Test (groups = {"readLocalFiles"})
+ public void testCheckXPathExpression15() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(xpath.compile(EXPRESSION_NAME_A).
evaluate(new InputSource(is)), "6");
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* evaluate(InputSource source) throws NPE if input source is null.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPathExpression16() {
- try {
- xpath.compile(EXPRESSION_NAME_A).evaluate(null);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression16() throws XPathExpressionException {
+ xpath.compile(EXPRESSION_NAME_A).evaluate(null);
}
/**
- * evaluate(InputSource source) throws NPE if expression is null
+ * evaluate(InputSource source) throws NPE if expression is null.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPathExpression17() {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = NullPointerException.class)
+ public void testCheckXPathExpression17() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.compile(null).evaluate(new InputSource(is));
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* evaluate(InputSource source) throws XPathExpressionException if
* returnType is String junk characters.
- *
- * @throws XPathExpressionException
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = XPathExpressionException.class)
- public void testCheckXPathExpression18() throws XPathExpressionException {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = XPathExpressionException.class)
+ public void testCheckXPathExpression18() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.compile("-*&").evaluate(new InputSource(is));
- } catch (IOException ex) {
- failUnexpected(ex);
}
}
/**
* evaluate(InputSource source) throws XPathExpressionException if
* expression is a blank string " ".
- *
- * @throws XPathExpressionException
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = XPathExpressionException.class)
- public void testCheckXPathExpression19() throws XPathExpressionException {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = XPathExpressionException.class)
+ public void testCheckXPathExpression19() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.compile(" ").evaluate(new InputSource(is));
- } catch (IOException ex) {
- failUnexpected(ex);
}
}
/**
* Test for evaluate(InputSource source,QName returnType) returns a string
* value if returnType is String.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPathExpression20() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPathExpression20() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(xpath.compile(EXPRESSION_NAME_A).
evaluate(new InputSource(is), STRING), "6");
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* evaluate(InputSource source,QName returnType) throws NPE if source is
* null.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPathExpression21() {
- try {
- xpath.compile(EXPRESSION_NAME_A).evaluate(null, STRING);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathExpression21() throws XPathExpressionException {
+ xpath.compile(EXPRESSION_NAME_A).evaluate(null, STRING);
}
/**
* evaluate(InputSource source,QName returnType) throws NPE if expression is
* null.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPathExpression22() {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = NullPointerException.class)
+ public void testCheckXPathExpression22() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.compile(null).evaluate(new InputSource(is), STRING);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* evaluate(InputSource source,QName returnType) throws NPE if returnType is
* null.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPathExpression23() {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = NullPointerException.class)
+ public void testCheckXPathExpression23() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.compile(EXPRESSION_NAME_A).evaluate(new InputSource(is), null);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* evaluate(InputSource source,QName returnType) throws
* XPathExpressionException if expression is junk characters.
- *
- * @throws XPathExpressionException
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = XPathExpressionException.class)
- public void testCheckXPathExpression24() throws XPathExpressionException {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = XPathExpressionException.class)
+ public void testCheckXPathExpression24() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.compile("-*&").evaluate(new InputSource(is), STRING);
- } catch (IOException ex) {
- failUnexpected(ex);
}
}
/**
* evaluate(InputSource source,QName returnType) throws
* XPathExpressionException if expression is blank " ".
- *
- * @throws XPathExpressionException
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = XPathExpressionException.class)
- public void testCheckXPathExpression25() throws XPathExpressionException {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = XPathExpressionException.class)
+ public void testCheckXPathExpression25() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.compile(" ").evaluate(new InputSource(is), STRING);
- } catch (IOException ex) {
- failUnexpected(ex);
}
}
@@ -445,85 +401,85 @@
* evaluate(InputSource source,QName returnType) throws
* IllegalArgumentException if returnType is not one of the types defined
* in XPathConstants.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testCheckXPathExpression26() {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = IllegalArgumentException.class)
+ public void testCheckXPathExpression26() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.compile(EXPRESSION_NAME_A).evaluate(new InputSource(is), TEST_QNAME);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* evaluate(InputSource source,QName returnType) return a correct boolean
* value if returnType is Boolean.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPathExpression27() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPathExpression27() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(xpath.compile(EXPRESSION_NAME_A).
evaluate(new InputSource(is), BOOLEAN), true);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* evaluate(InputSource source,QName returnType) return a correct boolean
* value if returnType is Boolean.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPathExpression28() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPathExpression28() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(xpath.compile(EXPRESSION_NAME_B).
evaluate(new InputSource(is), BOOLEAN), false);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* evaluate(InputSource source,QName returnType) return a correct number
* value if returnType is Number.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPathExpression29() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPathExpression29() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(xpath.compile(EXPRESSION_NAME_A).
evaluate(new InputSource(is), NUMBER), 6d);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* Test for evaluate(InputSource source,QName returnType) returns a node if
* returnType is Node.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPathExpression30() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPathExpression30() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
Attr attr = (Attr) xpath.compile(EXPRESSION_NAME_A).
evaluate(new InputSource(is), NODE);
assertEquals(attr.getValue(), "6");
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* Test for evaluate(InputSource source,QName returnType) return a node list
* if returnType is NodeList.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPathExpression31() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPathExpression31() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
NodeList nodeList = (NodeList) xpath.compile(EXPRESSION_NAME_A).
evaluate(new InputSource(is), NODESET);
assertEquals(((Attr) nodeList.item(0)).getValue(), "6");
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java 2015-01-09 15:41:23.707096717 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java 2015-01-09 15:41:23.632096600 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -26,14 +26,14 @@
import static javax.xml.xpath.XPathConstants.DOM_OBJECT_MODEL;
import javax.xml.xpath.XPathFactory;
import javax.xml.xpath.XPathFactoryConfigurationException;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
+import jaxp.library.JAXPBaseTest;
import static org.testng.AssertJUnit.assertNotNull;
import org.testng.annotations.Test;
/**
* Class containing the test cases for XPathFactory API.
*/
-public class XPathFactoryTest {
+public class XPathFactoryTest extends JAXPBaseTest {
/**
* Valid URL for creating a XPath factory.
*/
@@ -54,21 +54,21 @@
/**
* XPathFactory.newInstance(String uri) throws NPE if uri is null.
+ *
+ * @throws XPathFactoryConfigurationException If the specified object model
+ * is unavailable, or if there is a configuration error.
*/
@Test(expectedExceptions = NullPointerException.class)
- private void testCheckXPathFactory02() {
- try {
- XPathFactory.newInstance(null);
- } catch (XPathFactoryConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathFactory02() throws XPathFactoryConfigurationException {
+ XPathFactory.newInstance(null);
}
/**
* XPathFactory.newInstance(String uri) throws XPFCE if uri is just a blank
* string.
*
- * @throws XPathFactoryConfigurationException
+ * @throws XPathFactoryConfigurationException If the specified object model
+ * is unavailable, or if there is a configuration error.
*/
@Test(expectedExceptions = XPathFactoryConfigurationException.class)
public void testCheckXPathFactory03() throws XPathFactoryConfigurationException {
@@ -78,21 +78,21 @@
/**
* Test for constructor - XPathFactory.newInstance(String uri) with valid
* url - "http://java.sun.com/jaxp/xpath/dom".
+ *
+ * @throws XPathFactoryConfigurationException If the specified object model
+ * is unavailable, or if there is a configuration error.
*/
@Test
- public void testCheckXPathFactory04() {
- try {
- assertNotNull(XPathFactory.newInstance(VALID_URL));
- } catch (XPathFactoryConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathFactory04() throws XPathFactoryConfigurationException {
+ assertNotNull(XPathFactory.newInstance(VALID_URL));
}
/**
* Test for constructor - XPathFactory.newInstance(String uri) with invalid
* url - "http://java.sun.com/jaxp/xpath/dom1".
*
- * @throws XPathFactoryConfigurationException
+ * @throws XPathFactoryConfigurationException If the specified object model
+ * is unavailable, or if there is a configuration error.
*/
@Test(expectedExceptions = XPathFactoryConfigurationException.class)
public void testCheckXPathFactory05() throws XPathFactoryConfigurationException {
@@ -112,26 +112,24 @@
* Test for constructor - XPathFactory.newInstance(String uri) with valid
* url - "http://java.sun.com/jaxp/xpath/dom" and creating XPath with
* newXPath().
+ *
+ * @throws XPathFactoryConfigurationException If the specified object model
+ * is unavailable, or if there is a configuration error.
*/
@Test
- public void testCheckXPathFactory07() {
- try {
- assertNotNull(XPathFactory.newInstance(VALID_URL).newXPath());
- } catch (XPathFactoryConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathFactory07() throws XPathFactoryConfigurationException {
+ assertNotNull(XPathFactory.newInstance(VALID_URL).newXPath());
}
/**
* Test for constructor - XPathFactory.newInstance(String uri) with valid
* uri - DOM_OBJECT_MODEL.toString().
+ *
+ * @throws XPathFactoryConfigurationException If the specified object model
+ * is unavailable, or if there is a configuration error.
*/
@Test
- public void testCheckXPathFactory08() {
- try {
- assertNotNull(XPathFactory.newInstance(DOM_OBJECT_MODEL));
- } catch (XPathFactoryConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathFactory08() throws XPathFactoryConfigurationException {
+ assertNotNull(XPathFactory.newInstance(DOM_OBJECT_MODEL));
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFunctionResolverTest.java 2015-01-09 15:41:24.055097259 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFunctionResolverTest.java 2015-01-09 15:41:23.979097141 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -26,7 +26,7 @@
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
+import jaxp.library.JAXPBaseTest;
import static org.testng.Assert.assertEquals;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
@@ -34,7 +34,7 @@
/**
* Class containing the test cases for XPathFunctionResolver.
*/
-public class XPathFunctionResolverTest {
+public class XPathFunctionResolverTest extends JAXPBaseTest {
/**
* A XPath for evaluation environment and expressions.
*/
@@ -54,26 +54,22 @@
/**
* Test for resolveFunction(QName functionName,int arity). evaluate will
* continue as long as functionName is meaningful.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPathFunctionResolver01() {
- try {
- assertEquals(xpath.evaluate("round(1.7)", (Object)null), "2");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathFunctionResolver01() throws XPathExpressionException {
+ assertEquals(xpath.evaluate("round(1.7)", (Object)null), "2");
}
/**
* Test for resolveFunction(QName functionName,int arity); evaluate throws
* NPE if functionName is null.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPathFunctionResolver02() {
- try {
- assertEquals(xpath.evaluate(null, "5"), "2");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPathFunctionResolver02() throws XPathExpressionException {
+ assertEquals(xpath.evaluate(null, "5"), "2");
}
}
--- old/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathTest.java 2015-01-09 15:41:24.433097848 -0800
+++ new/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathTest.java 2015-01-09 15:41:24.355097727 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,7 +23,7 @@
package javax.xml.xpath.ptests;
-import java.io.IOException;
+import java.io.FilePermission;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -33,7 +33,6 @@
import javax.xml.namespace.NamespaceContext;
import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import static javax.xml.xpath.XPathConstants.BOOLEAN;
import static javax.xml.xpath.XPathConstants.NODE;
@@ -43,7 +42,7 @@
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import static javax.xml.xpath.ptests.XPathTestConst.XML_DIR;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
+import jaxp.library.JAXPFileReadOnlyBaseTest;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNotNull;
import static org.testng.AssertJUnit.assertNull;
@@ -53,12 +52,11 @@
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
/**
* Class containing the test cases for XPath API.
*/
-public class XPathTest {
+public class XPathTest extends JAXPFileReadOnlyBaseTest {
/**
* Document object for testing XML file.
*/
@@ -91,13 +89,11 @@
/**
* Create Document object and XPath object for every time
- * @throws ParserConfigurationException If the factory class cannot be
- * loaded, instantiated
- * @throws SAXException If any parse errors occur.
- * @throws IOException If operation on xml file failed.
+ * @throws Exception If any errors occur.
*/
@BeforeTest
- public void setup() throws ParserConfigurationException, SAXException, IOException {
+ public void setup() throws Exception {
+ setPermissions(new FilePermission(XML_DIR + "-", "read"));
document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(XML_PATH.toFile());
xpath = XPathFactory.newInstance().newXPath();
}
@@ -105,62 +101,54 @@
/**
* Test for XPath.evaluate(java.lang.String expression, java.lang.Object
* item, QName returnType) which return type is String.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPath01() {
- try {
- assertEquals(xpath.evaluate(EXPRESSION_NAME_A, document, STRING), "6");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath01() throws XPathExpressionException {
+ assertEquals(xpath.evaluate(EXPRESSION_NAME_A, document, STRING), "6");
}
/**
* Test for XPath.compile(java.lang.String expression) and then
* evaluate(java.lang.Object item, QName returnType).
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPath02() {
- try {
- assertEquals(xpath.compile(EXPRESSION_NAME_A).evaluate(document, STRING), "6");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath02() throws XPathExpressionException {
+ assertEquals(xpath.compile(EXPRESSION_NAME_A).evaluate(document, STRING), "6");
}
/**
* Test for XPath.evaluate(java.lang.String expression, java.lang.Object
* item) when the third argument is left off of the XPath.evaluate method,
* all expressions are evaluated to a String value.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPath03() {
- try {
- assertEquals(xpath.evaluate(EXPRESSION_NAME_A, document), "6");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath03() throws XPathExpressionException {
+ assertEquals(xpath.evaluate(EXPRESSION_NAME_A, document), "6");
}
/**
* Test for XPath.compile(java.lang.String expression). If expression is
* null, should throw NPE.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPath04() {
- try {
- xpath.compile(null);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath04() throws XPathExpressionException {
+ xpath.compile(null);
}
/**
* Test for XPath.compile(java.lang.String expression). If expression cannot
* be compiled junk characters, should throw XPathExpressionException.
- *
- * @throws XPathExpressionException
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = XPathExpressionException.class)
public void testCheckXPath05() throws XPathExpressionException {
@@ -170,8 +158,8 @@
/**
* Test for XPath.compile(java.lang.String expression). If expression is
* blank, should throw XPathExpressionException
- *
- * @throws XPathExpressionException
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = XPathExpressionException.class)
public void testCheckXPath06() throws XPathExpressionException {
@@ -181,55 +169,46 @@
/**
* Test for XPath.compile(java.lang.String expression). The expression
* cannot be evaluated as this does not exist.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPath07() {
- try {
- assertEquals(xpath.compile(EXPRESSION_NAME_B).evaluate(document, STRING), "");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
-
+ public void testCheckXPath07() throws XPathExpressionException {
+ assertEquals(xpath.compile(EXPRESSION_NAME_B).evaluate(document, STRING), "");
}
/**
* Test for XPath.evaluate(java.lang.String expression, java.lang.Object
- * item, QName returnType). If String expression is null, should throw NPE
+ * item, QName returnType). If String expression is null, should throw NPE.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPath08() {
- try {
- xpath.evaluate(null, document, STRING);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath08() throws XPathExpressionException {
+ xpath.evaluate(null, document, STRING);
}
/**
* Test for XPath.evaluate(java.lang.String expression, java.lang.Object
* item, QName returnType). If item is null, should throw NPE.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPath09() {
- try {
- xpath.evaluate(EXPRESSION_NAME_A, null, STRING);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath09() throws XPathExpressionException {
+ xpath.evaluate(EXPRESSION_NAME_A, null, STRING);
}
/**
* Test for XPath.evaluate(java.lang.String expression, java.lang.Object
* item, QName returnType). If returnType is null, should throw NPE.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPath10() {
- try {
- xpath.evaluate(EXPRESSION_NAME_A, document, null);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath10() throws XPathExpressionException {
+ xpath.evaluate(EXPRESSION_NAME_A, document, null);
}
/**
@@ -237,23 +216,20 @@
* item, QName returnType). If a request is made to evaluate the expression
* in the absence of a context item, simple expressions, such as "1+1", can
* be evaluated.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPath11() {
- try {
- assertEquals(xpath.evaluate("1+1", document, STRING), "2");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath11() throws XPathExpressionException {
+ assertEquals(xpath.evaluate("1+1", document, STRING), "2");
}
/**
* XPath.evaluate(java.lang.String expression, java.lang.Object item, QName
* returnType) throws XPathExpressionException if expression is a empty
* string "".
- * .
- *
- * @throws XPathExpressionException
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = XPathExpressionException.class)
public void testCheckXPath12() throws XPathExpressionException {
@@ -264,161 +240,141 @@
* XPath.evaluate(java.lang.String expression, java.lang.Object item, QName
* returnType) throws IllegalArgumentException if returnType is not one of
* the types defined in XPathConstants.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = IllegalArgumentException.class)
- public void testCheckXPath13() {
- try {
- xpath.evaluate(EXPRESSION_NAME_A, document, TEST_QNAME);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath13() throws XPathExpressionException {
+ xpath.evaluate(EXPRESSION_NAME_A, document, TEST_QNAME);
}
/**
* XPath.evaluate(java.lang.String expression, java.lang.Object item, QName
* returnType) returns correct boolean value if returnType is Boolean.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPath14() {
- try {
- assertEquals(xpath.evaluate(EXPRESSION_NAME_A, document, BOOLEAN), true);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath14() throws XPathExpressionException {
+ assertEquals(xpath.evaluate(EXPRESSION_NAME_A, document, BOOLEAN), true);
}
/**
* XPath.evaluate(java.lang.String expression, java.lang.Object item, QName
* returnType) returns false as expression is not successful in evaluating
* to any result if returnType is Boolean.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPath15() {
- try {
- assertEquals(xpath.evaluate(EXPRESSION_NAME_B, document, BOOLEAN), false);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath15() throws XPathExpressionException {
+ assertEquals(xpath.evaluate(EXPRESSION_NAME_B, document, BOOLEAN), false);
}
/**
* XPath.evaluate(java.lang.String expression, java.lang.Object item, QName
* returnType) returns correct number value if return type is Number.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPath16() {
- try {
- assertEquals(xpath.evaluate(EXPRESSION_NAME_A, document, NUMBER), 6d);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath16() throws XPathExpressionException {
+ assertEquals(xpath.evaluate(EXPRESSION_NAME_A, document, NUMBER), 6d);
}
/**
* XPath.evaluate(java.lang.String expression, java.lang.Object item, QName
* returnType) returns correct string value if return type is Node.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPath17() {
- try {
- assertEquals(((Attr)xpath.evaluate(EXPRESSION_NAME_A, document, NODE)).getValue(), "6");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath17() throws XPathExpressionException {
+ assertEquals(((Attr)xpath.evaluate(EXPRESSION_NAME_A, document, NODE)).getValue(), "6");
}
/**
* Test for XPath.evaluate(java.lang.String expression, java.lang.Object
* item, QName returnType). If return type is NodeList,the evaluated value
* equals to "6" as expected.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPath18() {
- try {
- NodeList nodeList = (NodeList)xpath.evaluate(EXPRESSION_NAME_A, document, NODESET);
- assertEquals(((Attr) nodeList.item(0)).getValue(), "6");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath18() throws XPathExpressionException {
+ NodeList nodeList = (NodeList)xpath.evaluate(EXPRESSION_NAME_A, document, NODESET);
+ assertEquals(((Attr) nodeList.item(0)).getValue(), "6");
}
/**
* Test for XPath.evaluate(java.lang.String expression, java.lang.Object
* item). If expression is null, should throw NPE.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPath19() {
- try {
- xpath.evaluate(null, document);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath19() throws XPathExpressionException {
+ xpath.evaluate(null, document);
}
/**
* Test for XPath.evaluate(java.lang.String expression, java.lang.Object
* item). If a request is made to evaluate the expression in the absence of
* a context item, simple expressions, such as "1+1", can be evaluated.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test
- public void testCheckXPath20() {
- try {
- assertEquals(xpath.evaluate("1+1", document), "2");
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath20() throws XPathExpressionException {
+ assertEquals(xpath.evaluate("1+1", document), "2");
}
/**
* XPath.evaluate(java.lang.String expression, java.lang.Object item) throws
* NPE if InputSource is null.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPath21() {
- try {
- xpath.evaluate(EXPRESSION_NAME_A, null);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath21() throws XPathExpressionException {
+ xpath.evaluate(EXPRESSION_NAME_A, null);
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source) return
* correct value by looking for Node.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPath22() {
+ @Test (groups = {"readLocalFiles"})
+ public void testCheckXPath22() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(xpath.evaluate(EXPRESSION_NAME_A, new InputSource(is)), "6");
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source) throws
* NPE if InputSource is null.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPath23() {
- try {
- xpath.evaluate(EXPRESSION_NAME_A, null);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath23() throws XPathExpressionException {
+ xpath.evaluate(EXPRESSION_NAME_A, null);
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source) throws
* NPE if String expression is null.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPath24() {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = NullPointerException.class)
+ public void testCheckXPath24() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.evaluate(null, new InputSource(is));
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
@@ -426,112 +382,102 @@
* Test for XPath.evaluate(java.lang.String expression, InputSource source).
* If expression is junk characters, expression cannot be evaluated, should
* throw XPathExpressionException.
- *
- * @throws XPathExpressionException
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = XPathExpressionException.class)
- public void testCheckXPath25() throws XPathExpressionException {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = XPathExpressionException.class)
+ public void testCheckXPath25() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.evaluate("-*&", new InputSource(is));
- } catch (IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source) throws
* XPathExpressionException if expression is blank " ".
- *
- * @throws XPathExpressionException
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = XPathExpressionException.class)
- public void testCheckXPath26() throws XPathExpressionException {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = XPathExpressionException.class)
+ public void testCheckXPath26() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.evaluate(" ", new InputSource(is));
- } catch (IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source, QName
* returnType) returns correct string value which return type is String.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPath27() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPath27() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(xpath.evaluate(EXPRESSION_NAME_A, new InputSource(is), STRING), "6");
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source, QName
* returnType) throws NPE if source is null.
+ *
+ * @throws XPathExpressionException If the expression cannot be evaluated.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPath28() {
- try {
- xpath.evaluate(EXPRESSION_NAME_A, null, STRING);
- } catch (XPathExpressionException ex) {
- failUnexpected(ex);
- }
+ public void testCheckXPath28() throws XPathExpressionException {
+ xpath.evaluate(EXPRESSION_NAME_A, null, STRING);
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source, QName
* returnType) throws NPE if expression is null.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPath29() {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = NullPointerException.class)
+ public void testCheckXPath29() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.evaluate(null, new InputSource(is), STRING);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source,
- * QName returnType) throws NPE if returnType is null .
+ * QName returnType) throws NPE if returnType is null.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = NullPointerException.class)
- public void testCheckXPath30() {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = NullPointerException.class)
+ public void testCheckXPath30() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.evaluate(EXPRESSION_NAME_A, new InputSource(is), null);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source, QName
* returnType) throws XPathExpressionException if expression is junk characters.
- *
- * @throws XPathExpressionException
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = XPathExpressionException.class)
- public void testCheckXPath31() throws XPathExpressionException {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = XPathExpressionException.class)
+ public void testCheckXPath31() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.evaluate("-*&", new InputSource(is), STRING);
- } catch (IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source, QName
* returnType) throws XPathExpressionException if expression is blank " ".
- *
- * @throws XPathExpressionException
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = XPathExpressionException.class)
- public void testCheckXPath32() throws XPathExpressionException {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = XPathExpressionException.class)
+ public void testCheckXPath32() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.evaluate(" ", new InputSource(is), STRING);
- } catch (IOException ex) {
- failUnexpected(ex);
}
}
@@ -539,84 +485,84 @@
* XPath.evaluate(java.lang.String expression, InputSource source,
* QName returnType) throws IllegalArgumentException if returnType is not
* one of the types defined in XPathConstants.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testCheckXPath33() {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = IllegalArgumentException.class)
+ public void testCheckXPath33() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
xpath.evaluate(EXPRESSION_NAME_A, new InputSource(is), TEST_QNAME);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source,
* QName returnType) return correct boolean value if return type is Boolean.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPath34() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPath34() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(xpath.evaluate(EXPRESSION_NAME_A, new InputSource(is),
BOOLEAN), true);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source,
* QName returnType) return correct boolean value if return type is Boolean.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPath35() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPath35() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(xpath.evaluate(EXPRESSION_NAME_B, new InputSource(is),
BOOLEAN), false);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source,
* QName returnType) return correct number value if return type is Number.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPath36() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPath36() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(xpath.evaluate(EXPRESSION_NAME_A, new InputSource(is),
NUMBER), 6d);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource source,
* QName returnType) return correct string value if return type is Node.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPath37() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPath37() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(((Attr)xpath.evaluate(EXPRESSION_NAME_A,
new InputSource(is), NODE)).getValue(), "6");
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* Test for XPath.evaluate(java.lang.String expression, InputSource source,
* QName returnType) which return type is NodeList.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPath38() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPath38() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
NodeList nodeList = (NodeList)xpath.evaluate(EXPRESSION_NAME_A,
new InputSource(is), NODESET);
assertEquals(((Attr) nodeList.item(0)).getValue(), "6");
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
@@ -624,57 +570,57 @@
* Test for XPath.evaluate(java.lang.String expression, InputSource iSource,
* QName returnType). If return type is Boolean, should return false as
* expression is not successful in evaluating to any result.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPath52() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPath52() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(xpath.evaluate(EXPRESSION_NAME_B, new InputSource(is),
BOOLEAN), false);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource iSource, QName
* returnType) returns correct number value which return type is Number.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPath53() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPath53() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(xpath.evaluate(EXPRESSION_NAME_A, new InputSource(is),
NUMBER), 6d);
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource iSource, QName
* returnType) returns a node value if returnType is Node.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPath54() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPath54() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
assertEquals(((Attr)xpath.evaluate(EXPRESSION_NAME_A,
new InputSource(is), NODE)).getValue(), "6");
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
/**
* XPath.evaluate(java.lang.String expression, InputSource iSource, QName
* returnType) returns a node list if returnType is NodeList.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckXPath55() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckXPath55() throws Exception {
try (InputStream is = Files.newInputStream(XML_PATH)) {
NodeList nodeList = (NodeList)xpath.evaluate(EXPRESSION_NAME_A,
new InputSource(is), NODESET);
assertEquals(((Attr) nodeList.item(0)).getValue(), "6");
- } catch (XPathExpressionException | IOException ex) {
- failUnexpected(ex);
}
}
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttrImplTest.java 2015-01-09 15:41:24.807098431 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttrImplTest.java 2015-01-09 15:41:24.722098299 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,6 +22,7 @@
*/
package org.xml.sax.ptests;
+import jaxp.library.JAXPBaseTest;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNull;
import org.testng.annotations.Test;
@@ -30,7 +31,7 @@
/**
* Class containing the test cases for AttributesImpl API.
*/
-public class AttrImplTest {
+public class AttrImplTest extends JAXPBaseTest {
private static final String CAR_URI = "http://www.cars.com/xml";
private static final String CAR_LOCALNAME = "part";
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesNSTest.java 2015-01-09 15:41:25.168098994 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesNSTest.java 2015-01-09 15:41:25.091098874 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,20 +23,13 @@
package org.xml.sax.ptests;
import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
-import org.xml.sax.SAXException;
-import static org.xml.sax.ptests.SAXTestConst.CLASS_DIR;
import static org.xml.sax.ptests.SAXTestConst.GOLDEN_DIR;
import static org.xml.sax.ptests.SAXTestConst.XML_DIR;
@@ -45,39 +38,29 @@
* ContentHandler has Attributes as one of its arguments. Attributes
* pertaining to an element are taken into this argument and various methods
* of Attributes interfaces are tested. This program uses Namespace processing
- * with namespaces in xml file. This program does not use Validation
+ * with namespaces in XML file. This program does not use Validation
*/
-public class AttributesNSTest {
+public class AttributesNSTest extends JAXPFileBaseTest {
/**
* Test for Attribute Interface's setter/getter.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testcase01() {
- String outputFile = CLASS_DIR + "AttributesNS.out";
+ public void testcase01() throws Exception {
+ String outputFile = USER_DIR + "AttributesNS.out";
String goldFile = GOLDEN_DIR + "AttributesNSGF.out";
String xmlFile = XML_DIR + "namespace1.xml";
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- // http://www.saxproject.com/?selected=namespaces namespace-prefixes
- //set to false to supress xmlns attributes
- spf.setFeature("http://xml.org/sax/features/namespace-prefixes",
- false);
- SAXParser saxParser = spf.newSAXParser();
- MyAttrCHandler myAttrCHandler = new MyAttrCHandler(outputFile);
- saxParser.parse(new File(xmlFile), myAttrCHandler);
- myAttrCHandler.flushAndClose();
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (IOException | ParserConfigurationException | SAXException ex) {
- failUnexpected(ex);
- } finally {
- try {
- Path outputPath = Paths.get(outputFile);
- if(Files.exists(outputPath))
- Files.delete(outputPath);
- } catch (IOException ex) {
- failCleanup(ex, outputFile);
- }
- }
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ // http://www.saxproject.com/?selected=namespaces namespace-prefixes
+ //set to false to supress xmlns attributes
+ spf.setFeature("http://xml.org/sax/features/namespace-prefixes",
+ false);
+ SAXParser saxParser = spf.newSAXParser();
+ MyAttrCHandler myAttrCHandler = new MyAttrCHandler(outputFile);
+ saxParser.parse(new File(xmlFile), myAttrCHandler);
+ myAttrCHandler.flushAndClose();
+ assertTrue(compareWithGold(goldFile, outputFile));
}
}
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesTest.java 2015-01-09 15:41:25.511099529 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesTest.java 2015-01-09 15:41:25.436099412 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,20 +23,13 @@
package org.xml.sax.ptests;
import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
-import org.xml.sax.SAXException;
-import static org.xml.sax.ptests.SAXTestConst.CLASS_DIR;
import static org.xml.sax.ptests.SAXTestConst.GOLDEN_DIR;
import static org.xml.sax.ptests.SAXTestConst.XML_DIR;
@@ -48,37 +41,28 @@
* This program uses Namespace processing without any namepsaces in xml file.
* This program uses Validation
*/
-public class AttributesTest {
+public class AttributesTest extends JAXPFileBaseTest {
/**
* Unit test for Attributes interface. Prints all attributes into output
* file. Check it with golden file.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testcase01() {
- String outputFile = CLASS_DIR + "Attributes.out";
+ public void testcase01() throws Exception {
+ String outputFile = USER_DIR + "Attributes.out";
String goldFile = GOLDEN_DIR + "AttributesGF.out";
String xmlFile = XML_DIR + "family.xml";
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- spf.setFeature("http://xml.org/sax/features/namespace-prefixes",
- true);
- spf.setValidating(true);
- SAXParser saxParser = spf.newSAXParser();
- MyAttrCHandler myAttrCHandler = new MyAttrCHandler(outputFile);
- saxParser.parse(new File(xmlFile), myAttrCHandler);
- myAttrCHandler.flushAndClose();
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (IOException | ParserConfigurationException | SAXException ex) {
- failUnexpected(ex);
- } finally {
- try {
- Path outputPath = Paths.get(outputFile);
- if(Files.exists(outputPath))
- Files.delete(outputPath);
- } catch (IOException ex) {
- failCleanup(ex, outputFile);
- }
- }
+
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ spf.setFeature("http://xml.org/sax/features/namespace-prefixes",
+ true);
+ spf.setValidating(true);
+ SAXParser saxParser = spf.newSAXParser();
+ MyAttrCHandler myAttrCHandler = new MyAttrCHandler(outputFile);
+ saxParser.parse(new File(xmlFile), myAttrCHandler);
+ myAttrCHandler.flushAndClose();
+ assertTrue(compareWithGold(goldFile, outputFile));
}
}
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ContentHandlerTest.java 2015-01-09 15:41:25.859100071 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ContentHandlerTest.java 2015-01-09 15:41:25.782099951 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -26,24 +26,18 @@
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
import org.xml.sax.Locator;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLFilterImpl;
-import static org.xml.sax.ptests.SAXTestConst.CLASS_DIR;
import static org.xml.sax.ptests.SAXTestConst.GOLDEN_DIR;
import static org.xml.sax.ptests.SAXTestConst.XML_DIR;
@@ -52,43 +46,34 @@
* transverses XML and print all visited node when XMLreader parses XML. Test
* verifies output is same as the golden file.
*/
-public class ContentHandlerTest {
+public class ContentHandlerTest extends JAXPFileBaseTest {
/**
* Content event handler visit all nodes to print to output file.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testcase01() {
- String outputFile = CLASS_DIR + "Content.out";
+ public void testcase01() throws Exception {
+ String outputFile = USER_DIR + "Content.out";
String goldFile = GOLDEN_DIR + "ContentGF.out";
String xmlFile = XML_DIR + "namespace1.xml";
- try(FileInputStream instream = new FileInputStream(xmlFile)) {
+ try(FileInputStream instream = new FileInputStream(xmlFile);
+ MyContentHandler cHandler = new MyContentHandler(outputFile)) {
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- ContentHandler cHandler = new MyContentHandler(outputFile);
xmlReader.setContentHandler(cHandler);
- InputSource is = new InputSource(instream);
- xmlReader.parse(is);
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch( IOException | SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- } finally {
- try {
- Path outputPath = Paths.get(outputFile);
- if(Files.exists(outputPath))
- Files.delete(outputPath);
- } catch (IOException ex) {
- failCleanup(ex, outputFile);
- }
+ xmlReader.parse(new InputSource(instream));
}
+ assertTrue(compareWithGold(goldFile, outputFile));
}
}
/**
* A content write out handler.
*/
-class MyContentHandler extends XMLFilterImpl {
+class MyContentHandler extends XMLFilterImpl implements AutoCloseable {
/**
* Prefix to every exception.
*/
@@ -258,4 +243,14 @@
throw new SAXException(WRITE_ERROR, ex);
}
}
+
+ /**
+ * Close the writer if it's initiated.
+ * @throws IOException if any IO error when close buffered writer.
+ */
+ @Override
+ public void close() throws IOException {
+ if (bWriter != null)
+ bWriter.close();
+ }
}
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/DefaultHandlerTest.java 2015-01-09 15:41:26.201100604 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/DefaultHandlerTest.java 2015-01-09 15:41:26.126100487 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -26,15 +26,11 @@
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
import org.xml.sax.Attributes;
@@ -42,7 +38,6 @@
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;
-import static org.xml.sax.ptests.SAXTestConst.CLASS_DIR;
import static org.xml.sax.ptests.SAXTestConst.GOLDEN_DIR;
import static org.xml.sax.ptests.SAXTestConst.XML_DIR;
@@ -50,46 +45,32 @@
* XMLReader parse XML with default handler that transverses XML and
* print all visited node. Test verifies output is same as the golden file.
*/
-public class DefaultHandlerTest {
+public class DefaultHandlerTest extends JAXPFileBaseTest {
/**
* Test default handler that transverses XML and print all visited node.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testDefaultHandler() {
- String outputFile = CLASS_DIR + "DefaultHandler.out";
+ public void testDefaultHandler() throws Exception {
+ String outputFile = USER_DIR + "DefaultHandler.out";
String goldFile = GOLDEN_DIR + "DefaultHandlerGF.out";
String xmlFile = XML_DIR + "namespace1.xml";
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- SAXParser saxparser = spf.newSAXParser();
-
- MyDefaultHandler handler = new MyDefaultHandler(outputFile);
- File file = new File(xmlFile);
- String Absolutepath = file.getAbsolutePath();
- String newAbsolutePath = Absolutepath;
- if (File.separatorChar == '\\')
- newAbsolutePath = Absolutepath.replace('\\', '/');
- String uri = "file:///" + newAbsolutePath;
- saxparser.parse(uri, handler);
- } catch (IOException | ParserConfigurationException | SAXException ex) {
- failUnexpected(ex);
- }
- // Need close the output file before we compare it with golden file.
- try {
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (IOException ex) {
- failUnexpected(ex);
- } finally {
- try {
- Path outputPath = Paths.get(outputFile);
- if(Files.exists(outputPath))
- Files.delete(outputPath);
- } catch (IOException ex) {
- failCleanup(ex, outputFile);
- }
- }
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ SAXParser saxparser = spf.newSAXParser();
+
+ MyDefaultHandler handler = new MyDefaultHandler(outputFile);
+ File file = new File(xmlFile);
+ String Absolutepath = file.getAbsolutePath();
+ String newAbsolutePath = Absolutepath;
+ if (File.separatorChar == '\\')
+ newAbsolutePath = Absolutepath.replace('\\', '/');
+ saxparser.parse("file:///" + newAbsolutePath, handler);
+
+ assertTrue(compareWithGold(goldFile, outputFile));
+
}
}
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/EHFatalTest.java 2015-01-09 15:41:26.552101151 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/EHFatalTest.java 2015-01-09 15:41:26.475101031 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -26,23 +26,19 @@
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
import org.testng.annotations.Test;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLFilterImpl;
-import static org.xml.sax.ptests.SAXTestConst.CLASS_DIR;
import static org.xml.sax.ptests.SAXTestConst.GOLDEN_DIR;
import static org.xml.sax.ptests.SAXTestConst.XML_DIR;
@@ -50,14 +46,16 @@
* ErrorHandler unit test. Set a ErrorHandle to XMLReader. Capture fatal error
* events in ErrorHandler.
*/
-public class EHFatalTest {
+public class EHFatalTest extends JAXPFileBaseTest {
/**
* Error Handler to capture all error events to output file. Verifies the
* output file is same as golden file.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testEHFatal() {
- String outputFile = CLASS_DIR + "EHFatal.out";
+ public void testEHFatal() throws Exception {
+ String outputFile = USER_DIR + "EHFatal.out";
String goldFile = GOLDEN_DIR + "EHFatalGF.out";
String xmlFile = XML_DIR + "invalid.xml";
@@ -68,25 +66,12 @@
xmlReader.setErrorHandler(eHandler);
InputSource is = new InputSource(instream);
xmlReader.parse(is);
- } catch (IOException | ParserConfigurationException ex) {
- failUnexpected(ex);
- } catch (SAXException ex) {
- System.out.println("This is expected:" + ex);
+ fail("Parse should throw SAXException");
+ } catch (SAXException expected) {
+ // This is expected.
}
// Need close the output file before we compare it with golden file.
- try {
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (IOException ex) {
- failUnexpected(ex);
- } finally {
- try {
- Path outputPath = Paths.get(outputFile);
- if(Files.exists(outputPath))
- Files.delete(outputPath);
- } catch (IOException ex) {
- failCleanup(ex, outputFile);
- }
- }
+ assertTrue(compareWithGold(goldFile, outputFile));
}
}
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSSupportTest.java 2015-01-09 15:41:26.902101697 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSSupportTest.java 2015-01-09 15:41:26.826101578 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,6 +23,7 @@
package org.xml.sax.ptests;
import java.util.Enumeration;
+import jaxp.library.JAXPBaseTest;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNull;
import org.testng.annotations.Test;
@@ -31,7 +32,7 @@
/**
* Unit test cases for NamespaceSupport API
*/
-public class NSSupportTest {
+public class NSSupportTest extends JAXPBaseTest {
/**
* Empty prefix name.
*/
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ParserAdapterTest.java 2015-01-09 15:41:27.247102235 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ParserAdapterTest.java 2015-01-09 15:41:27.168102112 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,10 +23,8 @@
package org.xml.sax.ptests;
import java.io.FileInputStream;
-import java.io.IOException;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
+import jaxp.library.JAXPFileReadOnlyBaseTest;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
@@ -35,7 +33,6 @@
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.SAXNotSupportedException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.ParserAdapter;
import org.xml.sax.helpers.XMLFilterImpl;
@@ -47,7 +44,7 @@
* Unit test cases for ParserAdapter API. By default the only features recognized
* are namespaces and namespace-prefixes.
*/
-public class ParserAdapterTest {
+public class ParserAdapterTest extends JAXPFileReadOnlyBaseTest {
/**
* namespaces feature name.
*/
@@ -67,10 +64,9 @@
/**
* Initiate ParserAdapter.
- * @throws ParserConfigurationException
- * @throws SAXException
+ * @throws Exception If any errors occur.
*/
- ParserAdapterTest() throws ParserConfigurationException, SAXException {
+ ParserAdapterTest() throws Exception {
SAXParserFactory spf = SAXParserFactory.newInstance();
XMLReader xmlReader = spf.newSAXParser().getXMLReader();
XMLReaderAdapter xmlReaderAdapter = new XMLReaderAdapter(xmlReader);
@@ -151,129 +147,111 @@
/**
* parserAdapter.getFeature(NAMESPACES) returns true be default.
+ *
+ * @exception Exception If any errors occur.
*/
@Test
- public void getFeature01() {
- try {
- assertTrue(parserAdapter.getFeature(NAMESPACES));
- } catch (SAXNotRecognizedException | SAXNotSupportedException ex) {
- failUnexpected(ex);
- }
+ public void getFeature01() throws Exception {
+ assertTrue(parserAdapter.getFeature(NAMESPACES));
}
/**
* parserAdapter.getFeature(NAMESPACE_PREFIXES) returns true be default.
+ *
+ * @exception Exception If any errors occur.
*/
@Test
- public void getFeature02() {
- try {
- assertFalse(parserAdapter.getFeature(NAMESPACE_PREFIXES));
- } catch (SAXNotRecognizedException | SAXNotSupportedException ex) {
- failUnexpected(ex);
- }
+ public void getFeature02() throws Exception {
+ assertFalse(parserAdapter.getFeature(NAMESPACE_PREFIXES));
}
/**
* SAXNotRecognizedException thrown when feature name is not known one.
- * @throws org.xml.sax.SAXNotRecognizedException expected Exception
+ *
+ * @exception Exception If any errors occur.
*/
@Test(expectedExceptions = SAXNotRecognizedException.class)
- public void getFeature03() throws SAXNotRecognizedException {
- try {
- parserAdapter.getFeature("no-meaning-feature");
- } catch (SAXNotSupportedException ex) {
- failUnexpected(ex);
- }
+ public void getFeature03() throws Exception {
+ parserAdapter.getFeature("no-meaning-feature");
}
/**
* Obtain getFeature after it's set returns set value.
+ *
+ * @exception Exception If any errors occur.
*/
@Test
- public void setFeature01() {
- try {
- parserAdapter.setFeature(NAMESPACES, false);
- assertFalse(parserAdapter.getFeature(NAMESPACES));
- } catch (SAXNotRecognizedException | SAXNotSupportedException ex) {
- failUnexpected(ex);
- }
+ public void setFeature01() throws Exception {
+ parserAdapter.setFeature(NAMESPACES, false);
+ assertFalse(parserAdapter.getFeature(NAMESPACES));
}
/**
* Obtain getFeature after it's set returns set value.
+ *
+ * @exception Exception If any errors occur.
*/
@Test
- public void setFeature02() {
- try {
- parserAdapter.setFeature(NAMESPACE_PREFIXES, false);
- assertFalse(parserAdapter.getFeature(NAMESPACE_PREFIXES));
- } catch (SAXNotRecognizedException | SAXNotSupportedException ex) {
- failUnexpected(ex);
- }
+ public void setFeature02() throws Exception {
+ parserAdapter.setFeature(NAMESPACE_PREFIXES, false);
+ assertFalse(parserAdapter.getFeature(NAMESPACE_PREFIXES));
}
/**
* Obtain getFeature after it's set returns set value.
+ *
+ * @exception Exception If any errors occur.
*/
@Test
- public void setFeature03() {
- try {
- parserAdapter.setFeature(NAMESPACES, true);
- assertTrue(parserAdapter.getFeature(NAMESPACES));
- } catch (SAXNotRecognizedException | SAXNotSupportedException ex) {
- failUnexpected(ex);
- }
+ public void setFeature03() throws Exception {
+ parserAdapter.setFeature(NAMESPACES, true);
+ assertTrue(parserAdapter.getFeature(NAMESPACES));
}
/**
* Obtain getFeature after it's set returns set value.
+ *
+ * @exception Exception If any errors occur.
*/
@Test
- public void setFeature04() {
- try {
- parserAdapter.setFeature(NAMESPACE_PREFIXES, true);
- assertTrue(parserAdapter.getFeature(NAMESPACE_PREFIXES));
- } catch (SAXNotRecognizedException | SAXNotSupportedException ex) {
- failUnexpected(ex);
- }
+ public void setFeature04() throws Exception {
+ parserAdapter.setFeature(NAMESPACE_PREFIXES, true);
+ assertTrue(parserAdapter.getFeature(NAMESPACE_PREFIXES));
}
/**
- * NPE expected when parsing a null object by ParserAdapter.
+ * NPE expected when parsing a null object by ParserAdapter.
+ *
+ * @throws Exception If any errors occur.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void parse01() {
- try {
- parserAdapter.parse((InputSource)null);
- } catch (IOException | SAXException ex) {
- failUnexpected(ex);
- }
+ public void parse01() throws Exception {
+ parserAdapter.parse((InputSource)null);
}
/**
* SAXException expected when parsing a wrong-formatter XML with ParserAdapter.
- * @throws org.xml.sax.SAXException
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = SAXException.class)
- public void parse02() throws SAXException {
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = SAXException.class)
+ public void parse02() throws Exception {
try(FileInputStream fis = new FileInputStream(XML_DIR + "invalid.xml")) {
InputSource is = new InputSource(fis);
parserAdapter.parse(is);
- } catch (IOException ex) {
- failUnexpected(ex);
}
}
/**
* Parse a well-formatter XML with ParserAdapter.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void parse03() {
+ @Test(groups = {"readLocalFiles"})
+ public void parse03() throws Exception {
try(FileInputStream fis = new FileInputStream(XML_DIR + "correct.xml")) {
InputSource is = new InputSource(fis);
parserAdapter.parse(is);
- } catch (IOException | SAXException ex) {
- failUnexpected(ex);
}
}
}
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ResolverTest.java 2015-01-09 15:41:27.598102782 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ResolverTest.java 2015-01-09 15:41:27.520102660 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -26,21 +26,16 @@
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLFilterImpl;
-import static org.xml.sax.ptests.SAXTestConst.CLASS_DIR;
import static org.xml.sax.ptests.SAXTestConst.GOLDEN_DIR;
import static org.xml.sax.ptests.SAXTestConst.XML_DIR;
@@ -48,12 +43,14 @@
* Entity resolver should be invoked in XML parse. This test verifies parsing
* process by checking the output with golden file.
*/
-public class ResolverTest {
+public class ResolverTest extends JAXPFileBaseTest {
/**
- * Unit test for entityResolver setter.
+ * Unit test for entityResolver setter.
+ *
+ * @throws Exception If any errors occur.
*/
- public void testResolver() {
- String outputFile = CLASS_DIR + "EntityResolver.out";
+ public void testResolver() throws Exception {
+ String outputFile = USER_DIR + "EntityResolver.out";
String goldFile = GOLDEN_DIR + "EntityResolverGF.out";
String xmlFile = XML_DIR + "publish.xml";
@@ -64,23 +61,8 @@
xmlReader.setEntityResolver(eResolver);
InputSource is = new InputSource(instream);
xmlReader.parse(is);
- } catch(IOException | SAXException | ParserConfigurationException ex ) {
- failUnexpected(ex);
- }
- // Need close the output file before we compare it with golden file.
- try {
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (IOException ex) {
- failUnexpected(ex);
- } finally {
- try {
- Path outputPath = Paths.get(outputFile);
- if(Files.exists(outputPath))
- Files.delete(outputPath);
- } catch (IOException ex) {
- failCleanup(ex, outputFile);
- }
- }
+ }
+ assertTrue(compareWithGold(goldFile, outputFile));
}
}
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/SAXParserNSTableTest.java 2015-01-09 15:41:27.999103407 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/SAXParserNSTableTest.java 2015-01-09 15:41:27.916103278 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,20 +23,12 @@
package org.xml.sax.ptests;
import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
-import org.xml.sax.SAXException;
-import static org.xml.sax.ptests.SAXTestConst.CLASS_DIR;
import static org.xml.sax.ptests.SAXTestConst.GOLDEN_DIR;
import static org.xml.sax.ptests.SAXTestConst.XML_DIR;
@@ -44,91 +36,64 @@
* This class contains the testcases to test SAXParser with regard to
* Namespace Table defined at http://www.megginson.com/SAX/Java/namespaces.html
*/
-public class SAXParserNSTableTest {
+public class SAXParserNSTableTest extends JAXPFileBaseTest {
/**
* namespace processing is enabled. namespace-prefix is also is enabled.
* So it is a True-True combination.
- * The test is to test SAXParser with these conditions
+ * The test is to test SAXParser with these conditions.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testWithTrueTrue() {
- String outputFile = CLASS_DIR + "SPNSTableTT.out";
+ public void testWithTrueTrue() throws Exception {
+ String outputFile = USER_DIR + "SPNSTableTT.out";
String goldFile = GOLDEN_DIR + "NSTableTTGF.out";
String xmlFile = XML_DIR + "namespace1.xml";
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- spf.setFeature("http://xml.org/sax/features/namespace-prefixes",
- true);
-
- SAXParser saxParser = spf.newSAXParser();
- saxParser.parse(new File(xmlFile), new MyNSContentHandler(outputFile));
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (ParserConfigurationException | SAXException | IOException ex) {
- failUnexpected(ex);
- } finally {
- try {
- Path outputPath = Paths.get(outputFile);
- if(Files.exists(outputPath))
- Files.delete(outputPath);
- } catch (IOException ex) {
- failCleanup(ex, outputFile);
- }
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ spf.setFeature("http://xml.org/sax/features/namespace-prefixes",
+ true);
+ try (MyNSContentHandler handler = new MyNSContentHandler(outputFile)) {
+ spf.newSAXParser().parse(new File(xmlFile), handler);
}
+ assertTrue(compareWithGold(goldFile, outputFile));
+
}
/**
* namespace processing is enabled. Hence namespace-prefix is
- * expected to be automaically off. So it is a True-False combination.
- * The test is to test SAXParser with these conditions
+ * expected to be automatically off. So it is a True-False combination.
+ * The test is to test SAXParser with these conditions.
+ *
+ * @throws Exception If any errors occur.
*/
- public void testWithTrueFalse() {
- String outputFile = CLASS_DIR + "SPNSTableTF.out";
+ public void testWithTrueFalse() throws Exception {
+ String outputFile = USER_DIR + "SPNSTableTF.out";
String goldFile = GOLDEN_DIR + "NSTableTFGF.out";
String xmlFile = XML_DIR + "namespace1.xml";
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- SAXParser saxParser = spf.newSAXParser();
- saxParser.parse(new File(xmlFile), new MyNSContentHandler(outputFile));
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (ParserConfigurationException | SAXException | IOException ex) {
- failUnexpected(ex);
- } finally {
- try {
- Path outputPath = Paths.get(outputFile);
- if(Files.exists(outputPath))
- Files.delete(outputPath);
- } catch (IOException ex) {
- failCleanup(ex, outputFile);
- }
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ try (MyNSContentHandler handler = new MyNSContentHandler(outputFile)) {
+ spf.newSAXParser().parse(new File(xmlFile), handler);
}
+ assertTrue(compareWithGold(goldFile, outputFile));
}
/**
* namespace processing is not enabled. Hence namespace-prefix is
- * expected to be automaically on. So it is a False-True combination.
- * The test is to test SAXParser with these conditions
+ * expected to be automatically on. So it is a False-True combination.
+ * The test is to test SAXParser with these conditions.
+ *
+ * @throws Exception If any errors occur.
*/
- public void testWithFalseTrue() {
- String outputFile = CLASS_DIR + "SPNSTableFT.out";
+ public void testWithFalseTrue() throws Exception {
+ String outputFile = USER_DIR + "SPNSTableFT.out";
String goldFile = GOLDEN_DIR + "NSTableFTGF.out";
String xmlFile = XML_DIR + "namespace1.xml";
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- SAXParser saxParser = spf.newSAXParser();
- saxParser.parse(new File(xmlFile), new MyNSContentHandler(outputFile));
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (ParserConfigurationException | SAXException | IOException ex) {
- failUnexpected(ex);
- } finally {
- try {
- Path outputPath = Paths.get(outputFile);
- if(Files.exists(outputPath))
- Files.delete(outputPath);
- } catch (IOException ex) {
- failCleanup(ex, outputFile);
- }
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ try (MyNSContentHandler handler = new MyNSContentHandler(outputFile)) {
+ spf.newSAXParser().parse(new File(xmlFile), handler);
}
+ assertTrue(compareWithGold(goldFile, outputFile));
}
}
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterCBTest.java 2015-01-09 15:41:28.357103965 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterCBTest.java 2015-01-09 15:41:28.283103850 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -26,14 +26,10 @@
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
@@ -42,7 +38,6 @@
import org.xml.sax.SAXParseException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLFilterImpl;
-import static org.xml.sax.ptests.SAXTestConst.CLASS_DIR;
import static org.xml.sax.ptests.SAXTestConst.GOLDEN_DIR;
import static org.xml.sax.ptests.SAXTestConst.XML_DIR;
@@ -50,45 +45,34 @@
* Set parent of XMLFilter to XMLReader. Parsing on XML file will invoke XMLFilter
* to write to output file. Test verifies output is same as the golden file.
*/
-public class XMLFilterCBTest {
- public void testXMLFilterCB() {
- String outputFile = CLASS_DIR + "XMLFilter.out";
+public class XMLFilterCBTest extends JAXPFileBaseTest {
+ /**
+ * Test XMLFilter working with XML reader.
+ *
+ * @throws Exception If any errors occur.
+ */
+ public void testXMLFilterCB() throws Exception {
+ String outputFile = USER_DIR + "XMLFilter.out";
String goldFile = GOLDEN_DIR + "XMLFilterGF.out";
String xmlFile = XML_DIR + "namespace1.xml";
- try (FileInputStream fis = new FileInputStream(xmlFile)){
+ try (FileInputStream fis = new FileInputStream(xmlFile);
+ MyXMLFilter myXmlFilter = new MyXMLFilter(outputFile)){
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
XMLReader xmlReader = spf.newSAXParser().getXMLReader();
-
- MyXMLFilter myXmlFilter = new MyXMLFilter(outputFile);
myXmlFilter.setParent(xmlReader);
- InputSource is = new InputSource(fis);
- myXmlFilter.parse(is);
- } catch( SAXException | IOException | ParserConfigurationException ex) {
- failUnexpected(ex);
+ myXmlFilter.parse(new InputSource(fis));
}
// Need close the output file before we compare it with golden file.
- try {
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (IOException ex) {
- failUnexpected(ex);
- } finally {
- try {
- Path outputPath = Paths.get(outputFile);
- if(Files.exists(outputPath))
- Files.delete(outputPath);
- } catch (IOException ex) {
- failCleanup(ex, outputFile);
- }
- }
+ assertTrue(compareWithGold(goldFile, outputFile));
}
}
/**
* Writer XMLFiler which write all tags to output file when event happens.
*/
-class MyXMLFilter extends XMLFilterImpl{
+class MyXMLFilter extends XMLFilterImpl implements AutoCloseable {
/**
* FileWriter to write string to output file.
*/
@@ -278,4 +262,14 @@
throw new SAXException(ex);
}
}
+
+ /**
+ * Close writer handler.
+ * @throws IOException if any I/O error when close writer handler.
+ */
+ @Override
+ public void close() throws IOException {
+ if (bWriter != null)
+ bWriter.close();
+ }
}
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterTest.java 2015-01-09 15:41:28.706104509 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterTest.java 2015-01-09 15:41:28.629104389 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,18 +23,14 @@
package org.xml.sax.ptests;
import java.io.FileInputStream;
-import java.io.IOException;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
+import jaxp.library.JAXPFileReadOnlyBaseTest;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.SAXNotSupportedException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLFilterImpl;
import static org.xml.sax.ptests.SAXTestConst.XML_DIR;
@@ -42,7 +38,7 @@
/**
* Unit test for XMLFilter.
*/
-public class XMLFilterTest {
+public class XMLFilterTest extends JAXPFileReadOnlyBaseTest {
/**
* name spaces constant.
*/
@@ -129,139 +125,114 @@
/**
* By default true is expected get namespaces feature.
- * @throws SAXException
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void getFeature01() throws SAXException {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
-
- XMLFilterImpl xmlFilter = new XMLFilterImpl();
- xmlFilter.setParent(xmlReader);
- assertTrue(xmlFilter.getFeature(NAMESPACES));
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void getFeature01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+
+ XMLFilterImpl xmlFilter = new XMLFilterImpl();
+ xmlFilter.setParent(xmlReader);
+ assertTrue(xmlFilter.getFeature(NAMESPACES));
}
/**
* By default false is expected get namespaces-prefix feature.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void getFeature02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
-
- XMLFilterImpl xmlFilter = new XMLFilterImpl();
- xmlFilter.setParent(xmlReader);
- assertFalse(xmlFilter.getFeature(NAMESPACE_PREFIXES));
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void getFeature02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLFilterImpl xmlFilter = new XMLFilterImpl();
+ xmlFilter.setParent(spf.newSAXParser().getXMLReader());
+ assertFalse(xmlFilter.getFeature(NAMESPACE_PREFIXES));
}
/**
* SAXNotRecognizedException is expected when get a feature by an invalid
* feature name.
- * @throws org.xml.sax.SAXNotRecognizedException If the feature
- * value can't be assigned or retrieved from the parent.
- * @throws org.xml.sax.SAXNotSupportedException When the
- * parent recognizes the feature name but
- * cannot determine its value at this time.
+ *
+ * @throws Exception If any errors occur.
*/
@Test(expectedExceptions = SAXNotRecognizedException.class)
- public void getFeature03() throws SAXNotRecognizedException,
- SAXNotSupportedException {
+ public void getFeature03() throws Exception {
new XMLFilterImpl().getFeature("no-meaning-feature");
}
/**
* Set namespaces feature to a value to XMLFilter. it's expected same when
* obtain it again.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void setFeature01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
-
- XMLFilterImpl xmlFilter = new XMLFilterImpl();
- xmlFilter.setParent(xmlReader);
- xmlFilter.setFeature(NAMESPACES, false);
- assertFalse(xmlFilter.getFeature(NAMESPACES));
- xmlFilter.setFeature(NAMESPACES, true);
- assertTrue(xmlFilter.getFeature(NAMESPACES));
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void setFeature01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+
+ XMLFilterImpl xmlFilter = new XMLFilterImpl();
+ xmlFilter.setParent(spf.newSAXParser().getXMLReader());
+ xmlFilter.setFeature(NAMESPACES, false);
+ assertFalse(xmlFilter.getFeature(NAMESPACES));
+ xmlFilter.setFeature(NAMESPACES, true);
+ assertTrue(xmlFilter.getFeature(NAMESPACES));
}
/**
* Set namespaces-prefix feature to a value to XMLFilter. it's expected same
* when obtain it again.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void setFeature02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
-
- XMLFilterImpl xmlFilter = new XMLFilterImpl();
- xmlFilter.setParent(xmlReader);
- xmlFilter.setFeature(NAMESPACE_PREFIXES, false);
- assertFalse(xmlFilter.getFeature(NAMESPACE_PREFIXES));
- xmlFilter.setFeature(NAMESPACE_PREFIXES, true);
- assertTrue(xmlFilter.getFeature(NAMESPACE_PREFIXES));
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void setFeature02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+
+ XMLFilterImpl xmlFilter = new XMLFilterImpl();
+ xmlFilter.setParent(spf.newSAXParser().getXMLReader());
+ xmlFilter.setFeature(NAMESPACE_PREFIXES, false);
+ assertFalse(xmlFilter.getFeature(NAMESPACE_PREFIXES));
+ xmlFilter.setFeature(NAMESPACE_PREFIXES, true);
+ assertTrue(xmlFilter.getFeature(NAMESPACE_PREFIXES));
}
/**
* NullPointerException is expected when parse a null InputSource.
+ *
+ * @throws Exception If any errors occur.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void parse01() {
- try {
- new XMLFilterImpl().parse((InputSource)null);
- } catch (IOException | SAXException ex) {
- failUnexpected(ex);
- }
+ public void parse01() throws Exception {
+ new XMLFilterImpl().parse((InputSource)null);
}
/**
* SAXException is expected when parsing a invalid formatted XML file.
- * @throws org.xml.sax.SAXException when parse a incorrect formatted XML
- * file.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = NullPointerException.class)
- public void parse02() throws SAXException {
- XMLFilterImpl xmlFilter = new XMLFilterImpl();
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = NullPointerException.class)
+ public void parse02() throws Exception {
try(FileInputStream fis = new FileInputStream(XML_DIR + "invalid.xml")) {
- InputSource is = new InputSource(fis);
- xmlFilter.parse(is);
- } catch (IOException ex) {
- failUnexpected(ex);
- }
+ new XMLFilterImpl().parse(new InputSource(fis));
+ }
}
/**
* No exception when parse a normal XML file.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = NullPointerException.class)
- public void parse03() {
- XMLFilterImpl xmlFilter = new XMLFilterImpl();
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = NullPointerException.class)
+ public void parse03() throws Exception {
try(FileInputStream fis = new FileInputStream(XML_DIR + "correct2.xml")) {
- InputSource is = new InputSource(fis);
- xmlFilter.parse(is);
- } catch (IOException | SAXException ex) {
- failUnexpected(ex);
+ new XMLFilterImpl().parse(new InputSource(fis));
}
}
}
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderAdapterTest.java 2015-01-09 15:41:29.112105142 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderAdapterTest.java 2015-01-09 15:41:28.995104960 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,10 +23,9 @@
package org.xml.sax.ptests;
import java.io.FileInputStream;
-import java.io.IOException;
-import javax.xml.parsers.ParserConfigurationException;
+import java.io.FilePermission;
import javax.xml.parsers.SAXParserFactory;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
+import jaxp.library.JAXPBaseTest;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
@@ -40,7 +39,7 @@
/**
* Class containing the test cases for XMLReaderAdapter API
*/
-public class XMLReaderAdapterTest {
+public class XMLReaderAdapterTest extends JAXPBaseTest {
/**
* http://xml.org/sax/features/namespace-prefixes property name.
*/
@@ -58,60 +57,51 @@
}
/**
- * To test the constructor that uses XMLReader
+ * To test the constructor that uses XMLReader.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void constructor02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
-
- assertNotNull(new XMLReaderAdapter(xmlReader));
- } catch (ParserConfigurationException | SAXException ex) {
- failUnexpected(ex);
- }
+ public void constructor02() throws Exception {
+ XMLReader xmlReader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
+ assertNotNull(new XMLReaderAdapter(xmlReader));
}
/**
* To test the parse method. The specification says that this method
* will throw an exception if the embedded XMLReader does not support
* the http://xml.org/sax/features/namespace-prefixes property.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void nsfeature01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- if (!xmlReader.getFeature(NM_PREFIXES_PROPERTY)) {
- xmlReader.setFeature(NM_PREFIXES_PROPERTY, true);
- }
-
- assertTrue(xmlReader.getFeature(NM_PREFIXES_PROPERTY));
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
+ public void nsfeature01() throws Exception {
+ XMLReader xmlReader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
+ if (!xmlReader.getFeature(NM_PREFIXES_PROPERTY)) {
+ xmlReader.setFeature(NM_PREFIXES_PROPERTY, true);
}
+ assertTrue(xmlReader.getFeature(NM_PREFIXES_PROPERTY));
}
/**
* To test the parse method. The specification says that this method
* will throw an exception if the embedded XMLReader does not support
* the http://xml.org/sax/features/namespace-prefixes property.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void parse01() {
+ public void parse01() throws Exception {
+ setPermissions(new FilePermission(XML_DIR + "/-", "read"));
try (FileInputStream fis = new FileInputStream(XML_DIR + "namespace1.xml")) {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ XMLReader xmlReader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
if (!xmlReader.getFeature(NM_PREFIXES_PROPERTY)) {
xmlReader.setFeature(NM_PREFIXES_PROPERTY, true);
}
XMLReaderAdapter xmlRA = new XMLReaderAdapter(xmlReader);
-
- InputSource is = new InputSource(fis);
xmlRA.setDocumentHandler(new HandlerBase());
- xmlRA.parse(is);
- } catch (IOException | SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
+ xmlRA.parse(new InputSource(fis));
}
+ setPermissions();
}
}
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderFactoryTest.java 2015-01-09 15:41:29.478105713 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderFactoryTest.java 2015-01-09 15:41:29.400105591 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,6 +22,7 @@
*/
package org.xml.sax.ptests;
+import jaxp.library.JAXPBaseTest;
import static org.testng.Assert.assertNotNull;
import org.testng.annotations.Test;
import org.xml.sax.SAXException;
@@ -30,7 +31,7 @@
/**
* Unit test for XMLReaderFactory.createXMLReader API.
*/
-public class XMLReaderFactoryTest {
+public class XMLReaderFactoryTest extends JAXPBaseTest {
/**
* No exception expected when create XMLReader by default.
* @throws org.xml.sax.SAXException when xml reader creation failed.
@@ -48,12 +49,7 @@
*/
@Test
public void createReader02() throws SAXException {
- //Disable this test because this is only work for apache implementation.
- /*System.setProperty("org.xml.sax.driver",
- "org.apache.xerces.parsers.SAXParser");
- assertNotNull(XMLReaderFactory.
- createXMLReader("org.apache.xerces.parsers.SAXParser"));*/
- System.setProperty("org.xml.sax.driver",
+ setSystemProperty("org.xml.sax.driver",
"com.sun.org.apache.xerces.internal.parsers.SAXParser");
assertNotNull(XMLReaderFactory.
createXMLReader("com.sun.org.apache.xerces.internal.parsers.SAXParser"));
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderNSTableTest.java 2015-01-09 15:41:29.832106265 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderNSTableTest.java 2015-01-09 15:41:29.757106148 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,17 +23,14 @@
package org.xml.sax.ptests;
import java.io.FileInputStream;
-import java.io.IOException;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
-import static org.xml.sax.ptests.SAXTestConst.CLASS_DIR;
import static org.xml.sax.ptests.SAXTestConst.GOLDEN_DIR;
import static org.xml.sax.ptests.SAXTestConst.XML_DIR;
@@ -41,7 +38,7 @@
* Namespace Table defined at
* http://www.megginson.com/SAX/Java/namespaces.html
*/
-public class XMLReaderNSTableTest {
+public class XMLReaderNSTableTest extends JAXPFileBaseTest {
/**
* XML file that used to be parsed.
*/
@@ -55,71 +52,70 @@
/**
* namespace processing is enabled. namespace-prefix is also is enabled.
* So it is a True-True combination.
- * The test is to test XMLReader with these conditions
+ * The test is to test XMLReader with these conditions.
+ *
+ * @throws Exception If any errors occur.
*/
- public void testWithTrueTrue() {
- String outputFile = CLASS_DIR + "XRNSTableTT.out";
+ public void testWithTrueTrue() throws Exception {
+ String outputFile = USER_DIR + "XRNSTableTT.out";
String goldFile = GOLDEN_DIR + "NSTableTTGF.out";
-
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- SAXParser saxParser = spf.newSAXParser();
-
- XMLReader xmlReader = saxParser.getXMLReader();
- xmlReader.setFeature(NAMESPACE_PREFIXES, true);
-
- xmlReader.setContentHandler(new MyNSContentHandler(outputFile));
- xmlReader.parse(new InputSource(new FileInputStream(xmlFile)));
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (ParserConfigurationException | SAXException | IOException ex) {
- failUnexpected(ex);
+
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ xmlReader.setFeature(NAMESPACE_PREFIXES, true);
+
+ try (FileInputStream fis = new FileInputStream(xmlFile);
+ MyNSContentHandler handler = new MyNSContentHandler(outputFile);) {
+ xmlReader.setContentHandler(handler);
+ xmlReader.parse(new InputSource(fis));
}
+ assertTrue(compareWithGold(goldFile, outputFile));
}
/**
* Namespace processing is enabled. Hence namespace-prefix is
- * expected to be automaically off. So it is a True-False combination.
- * The test is to test XMLReader with these conditions
+ * expected to be automatically off. So it is a True-False combination.
+ * The test is to test XMLReader with these conditions.
+ *
+ * @throws Exception If any errors occur.
*/
- public void testWithTrueFalse() {
- String outputFile = CLASS_DIR + "XRNSTableTF.out";
+ public void testWithTrueFalse() throws Exception {
+ String outputFile = USER_DIR + "XRNSTableTF.out";
String goldFile = GOLDEN_DIR + "NSTableTFGF.out";
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- SAXParser saxParser = spf.newSAXParser();
- XMLReader xmlReader = saxParser.getXMLReader();
-
- xmlReader.setContentHandler(new MyNSContentHandler(outputFile));
- xmlReader.parse(new InputSource(new FileInputStream(xmlFile)));
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (ParserConfigurationException | SAXException | IOException ex) {
- failUnexpected(ex);
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ SAXParser saxParser = spf.newSAXParser();
+ XMLReader xmlReader = saxParser.getXMLReader();
+
+ try (FileInputStream fis = new FileInputStream(xmlFile);
+ MyNSContentHandler handler = new MyNSContentHandler(outputFile)) {
+ xmlReader.setContentHandler(handler);
+ xmlReader.parse(new InputSource(fis));
}
+ assertTrue(compareWithGold(goldFile, outputFile));
}
/**
* namespace processing is not enabled. Hence namespace-prefix is
* expected to be automaically on. So it is a False-True combination.
- * The test is to test XMLReader with these conditions
+ * The test is to test XMLReader with these conditions.
+ *
+ * @throws Exception If any errors occur.
*/
- public void testWithFalseTrue() {
- String outputFile = CLASS_DIR + "XRNSTableFT.out";
+ public void testWithFalseTrue()throws Exception {
+ String outputFile = USER_DIR + "XRNSTableFT.out";
String goldFile = GOLDEN_DIR + "NSTableFTGF.out";
-
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- SAXParser saxParser = spf.newSAXParser();
- XMLReader xmlReader = saxParser.getXMLReader();
-
- xmlReader.setContentHandler(new MyNSContentHandler(outputFile));
- xmlReader.parse(new InputSource(new FileInputStream(xmlFile)));
- assertTrue(compareWithGold(goldFile, outputFile));
- } catch (ParserConfigurationException | SAXException | IOException ex) {
- failUnexpected(ex);
- }
+
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ try (FileInputStream fis = new FileInputStream(xmlFile);
+ MyNSContentHandler handler = new MyNSContentHandler(outputFile)) {
+ xmlReader.setContentHandler(handler);
+ xmlReader.parse(new InputSource(fis));
+ }
+ assertTrue(compareWithGold(goldFile, outputFile));
}
}
--- old/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderTest.java 2015-01-09 15:41:30.183106812 -0800
+++ new/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderTest.java 2015-01-09 15:41:30.107106693 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,10 +23,9 @@
package org.xml.sax.ptests;
import java.io.FileInputStream;
-import java.io.IOException;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
+import jaxp.library.JAXPFileReadOnlyBaseTest;
+import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
@@ -45,42 +44,43 @@
/**
* Class containing the test cases for SAXParser API
*/
-public class XMLReaderTest {
+public class XMLReaderTest extends JAXPFileReadOnlyBaseTest {
+
/**
* XML namespaces.
*/
- private static final String NAMESPACES =
- "http://xml.org/sax/features/namespaces";
+ private static final String NAMESPACES
+ = "http://xml.org/sax/features/namespaces";
/**
* XML namespaces prefixes.
*/
- private static final String NAMESPACE_PREFIXES =
- "http://xml.org/sax/features/namespace-prefixes";
+ private static final String NAMESPACE_PREFIXES
+ = "http://xml.org/sax/features/namespace-prefixes";
/**
* A string intern name.
*/
- private static final String STRING_INTERNING =
- "http://xml.org/sax/features/string-interning";
+ private static final String STRING_INTERNING
+ = "http://xml.org/sax/features/string-interning";
/**
* Validation name.
*/
- private static final String VALIDATION =
- "http://xml.org/sax/features/validation";
+ private static final String VALIDATION
+ = "http://xml.org/sax/features/validation";
/**
* A general external entities name
*/
- private static final String EXTERNAL_G_ENTITIES =
- "http://xml.org/sax/features/external-general-entities";
+ private static final String EXTERNAL_G_ENTITIES
+ = "http://xml.org/sax/features/external-general-entities";
/**
* A external parameter entities name
*/
- private static final String EXTERNAL_P_ENTITIES =
- "http://xml.org/sax/features/external-parameter-entities";
+ private static final String EXTERNAL_P_ENTITIES
+ = "http://xml.org/sax/features/external-parameter-entities";
/**
* XML DOM node name.
@@ -95,526 +95,444 @@
/**
* Declare handler name
*/
- private static final String DECL_HANDLER =
- "http://xml.org/sax/properties/declaration-handler";
+ private static final String DECL_HANDLER
+ = "http://xml.org/sax/properties/declaration-handler";
/**
* Lexical handler name
*/
- private static final String LEXICAL_HANDLER =
- "http://xml.org/sax/properties/lexical-handler";
+ private static final String LEXICAL_HANDLER
+ = "http://xml.org/sax/properties/lexical-handler";
/**
* According to the SAX2 specs, All XMLReaders are required to recognize the
- * http://xml.org/sax/features/namespaces feature names.
- * This test case is to test this.
+ * http://xml.org/sax/features/namespaces feature names. This test case is
+ * to test this.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void featureNS01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- assertFalse(xmlReader.getFeature(NAMESPACES));
- } catch (ParserConfigurationException | SAXException ex) {
- failUnexpected(ex);
- }
+ public void featureNS01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ assertFalse(xmlReader.getFeature(NAMESPACES));
}
/**
* According to the SAX2 specs, All XMLReaders are required to recognize the
- * http://xml.org/sax/features/namespaces feature names.
- * This test case is to test this.
+ * http://xml.org/sax/features/namespaces feature names. This test case is
+ * to test this.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void featureNS02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- assertTrue(xmlReader.getFeature(NAMESPACES));
- } catch (ParserConfigurationException | SAXException ex) {
- failUnexpected(ex);
- }
+ public void featureNS02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ assertTrue(xmlReader.getFeature(NAMESPACES));
}
/**
* Obtain http://xml.org/sax/features/namespaces feature name after it's
* just set. Expect it's same as set value.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void featureNS03() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- xmlReader.setFeature(NAMESPACES, true);
- assertTrue(xmlReader.getFeature(NAMESPACES));
- xmlReader.setFeature(NAMESPACES, false);
- assertFalse(xmlReader.getFeature(NAMESPACES));
- } catch (ParserConfigurationException | SAXException ex) {
- failUnexpected(ex);
- }
+ public void featureNS03() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ xmlReader.setFeature(NAMESPACES, true);
+ assertTrue(xmlReader.getFeature(NAMESPACES));
+ xmlReader.setFeature(NAMESPACES, false);
+ assertFalse(xmlReader.getFeature(NAMESPACES));
}
/**
* According to the SAX2 specs, All XMLReaders are required to recognize the
- * http://xml.org/sax/features/namespace-prefixes feature names.
- * This test case is to test this.
+ * http://xml.org/sax/features/namespace-prefixes feature names. This test
+ * case is to test this.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void featureNSP01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- assertTrue(xmlReader.getFeature(NAMESPACE_PREFIXES));
-
- } catch (ParserConfigurationException | SAXException ex) {
- failUnexpected(ex);
- }
+ public void featureNSP01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ assertTrue(xmlReader.getFeature(NAMESPACE_PREFIXES));
}
/**
* According to the SAX2 specs, All XMLReaders are required to recognize the
- * http://xml.org/sax/features/namespace-prefixes feature names.
- * This test case is to test this.
+ * http://xml.org/sax/features/namespace-prefixes feature names. This test
+ * case is to test this.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void featureNSP02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- assertFalse(xmlReader.getFeature(NAMESPACE_PREFIXES));
- } catch (ParserConfigurationException | SAXException ex) {
- failUnexpected(ex);
- }
+ public void featureNSP02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ assertFalse(xmlReader.getFeature(NAMESPACE_PREFIXES));
}
/**
* Obtain http://xml.org/sax/features/namespaces-prefixes feature name after
* it's just set. Expect it's same as set value.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void featureNSP03() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- xmlReader.setFeature(NAMESPACE_PREFIXES, true);
- assertTrue(xmlReader.getFeature(NAMESPACE_PREFIXES));
- xmlReader.setFeature(NAMESPACE_PREFIXES, false);
- assertFalse(xmlReader.getFeature(NAMESPACE_PREFIXES));
- } catch (ParserConfigurationException | SAXException ex) {
- failUnexpected(ex);
- }
+ public void featureNSP03() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ xmlReader.setFeature(NAMESPACE_PREFIXES, true);
+ assertTrue(xmlReader.getFeature(NAMESPACE_PREFIXES));
+ xmlReader.setFeature(NAMESPACE_PREFIXES, false);
+ assertFalse(xmlReader.getFeature(NAMESPACE_PREFIXES));
}
/**
* getFeature returns true if a feature has not been preset when namespace
* awareness is set.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void featureSI01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- assertTrue(xmlReader.getFeature(STRING_INTERNING));
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void featureSI01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ assertTrue(xmlReader.getFeature(STRING_INTERNING));
}
/**
* getFeature with validation feature name returns the value that
* setValidation set.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void featureV01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- assertFalse(spf.newSAXParser().getXMLReader().getFeature(VALIDATION));
- spf.setValidating(true);
- assertTrue(spf.newSAXParser().getXMLReader().getFeature(VALIDATION));
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void featureV01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ assertFalse(spf.newSAXParser().getXMLReader().getFeature(VALIDATION));
+ spf.setValidating(true);
+ assertTrue(spf.newSAXParser().getXMLReader().getFeature(VALIDATION));
}
/**
- * getFeature returns the value that a feature has been preset as when
+ * getFeature returns the value that a feature has been preset as when
* namespace awareness is set.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void featureV02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
-
- xmlReader.setFeature(VALIDATION, true);
- assertTrue(xmlReader.getFeature(VALIDATION));
-
- xmlReader.setFeature(VALIDATION, false);
- assertFalse(xmlReader.getFeature(VALIDATION));
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void featureV02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+
+ xmlReader.setFeature(VALIDATION, true);
+ assertTrue(xmlReader.getFeature(VALIDATION));
+ xmlReader.setFeature(VALIDATION, false);
+ assertFalse(xmlReader.getFeature(VALIDATION));
}
/**
* getFeature returns true if a feature has not been preset when namespace
* awareness is set.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void featureEGE01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- assertTrue(xmlReader.getFeature(EXTERNAL_G_ENTITIES));
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void featureEGE01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ assertTrue(xmlReader.getFeature(EXTERNAL_G_ENTITIES));
}
/**
- * getFeature returns false if a feature has been preset as false when
+ * getFeature returns false if a feature has been preset as false when
* namespace awareness is set.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void featureEGE02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- xmlReader.setFeature(EXTERNAL_G_ENTITIES, false);
- assertFalse(xmlReader.getFeature(EXTERNAL_G_ENTITIES));
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void featureEGE02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ xmlReader.setFeature(EXTERNAL_G_ENTITIES, false);
+ assertFalse(xmlReader.getFeature(EXTERNAL_G_ENTITIES));
}
/**
* getFeature returns true if a feature has not been preset when namespace
* awareness is set.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void featureEPE01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- assertTrue(xmlReader.getFeature(EXTERNAL_P_ENTITIES));
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void featureEPE01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ assertTrue(xmlReader.getFeature(EXTERNAL_P_ENTITIES));
}
/**
- * getFeature returns false if a feature has been preset as false when
+ * getFeature returns false if a feature has been preset as false when
* namespace awareness is set.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void featureEPE02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- xmlReader.setFeature(EXTERNAL_P_ENTITIES, false);
- assertFalse(xmlReader.getFeature(EXTERNAL_P_ENTITIES));
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void featureEPE02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ xmlReader.setFeature(EXTERNAL_P_ENTITIES, false);
+ assertFalse(xmlReader.getFeature(EXTERNAL_P_ENTITIES));
}
/**
* getFeature with a unknown feature name throws SAXNotRecognizedException.
- * @throws SAXNotRecognizedException If the feature value can't be assigned
- * or retrieved.
+ *
+ * @throws Exception If any errors occur.
*/
@Test(expectedExceptions = SAXNotRecognizedException.class)
- public void featureNE01() throws SAXNotRecognizedException {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- boolean noMeaningFeature = xmlReader.getFeature("no-meaning-feature");
- } catch(SAXNotRecognizedException ex) {
- throw ex;
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void featureNE01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ spf.newSAXParser().getXMLReader().getFeature("no-meaning-feature");
}
/**
* No exception expected when set entity resolver as simple entity resolver.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void entity01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- XMLFilterImpl xmlFilter = new XMLFilterImpl();
- xmlReader.setEntityResolver(xmlFilter);
- assertNotNull(xmlReader.getEntityResolver());
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void entity01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ XMLFilterImpl xmlFilter = new XMLFilterImpl();
+ xmlReader.setEntityResolver(xmlFilter);
+ assertEquals(xmlReader.getEntityResolver(), xmlFilter);
}
/**
* No NPE expected when set entity resolver as null.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void entity02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- xmlReader.setEntityResolver(null);
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void entity02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ spf.newSAXParser().getXMLReader().setEntityResolver(null);
}
/**
* No exception expected when set DTD handler as simple DTD handler.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void dtdhandler01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- XMLFilterImpl xmlFilter = new XMLFilterImpl();
- xmlReader.setDTDHandler(xmlFilter);
- assertNotNull(xmlReader.getDTDHandler());
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void dtdhandler01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ XMLFilterImpl xmlFilter = new XMLFilterImpl();
+ xmlReader.setDTDHandler(xmlFilter);
+ assertEquals(xmlReader.getDTDHandler(), xmlFilter);
}
/**
* No NPE expected when set DTD handler as null.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void dtdhandler02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- xmlReader.setDTDHandler(null);
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void dtdhandler02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ spf.newSAXParser().getXMLReader().setDTDHandler(null);
}
/**
* No exception expected when set content handler as simple content handler.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void contenthandler01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- XMLFilterImpl xmlFilter = new XMLFilterImpl();
- xmlReader.setContentHandler(xmlFilter);
- assertNotNull(xmlReader.getContentHandler());
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void contenthandler01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ XMLFilterImpl xmlFilter = new XMLFilterImpl();
+ xmlReader.setContentHandler(xmlFilter);
+ assertEquals(xmlReader.getContentHandler(), xmlFilter);
}
/**
* No NPE expected when set content handler as null.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void contenthandler02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- xmlReader.setContentHandler(null);
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void contenthandler02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ spf.newSAXParser().getXMLReader().setContentHandler(null);
}
/**
* No exception expected when set content handler as simple error handler.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void errorhandler01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- xmlReader.setErrorHandler(new XMLFilterImpl());
- assertNotNull(xmlReader.getErrorHandler());
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void errorhandler01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ xmlReader.setErrorHandler(new XMLFilterImpl());
+ assertNotNull(xmlReader.getErrorHandler());
}
/**
* No NPE expected when set error handler as null.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void errorhandler02() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- xmlReader.setErrorHandler(null);
- } catch (SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
- }
+ public void errorhandler02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ xmlReader.setErrorHandler(null);
}
/**
* Parse a null input source throw NPE.
+ *
+ * @throws Exception If any errors occur.
*/
@Test(expectedExceptions = NullPointerException.class)
- public void parse01() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- xmlReader.parse((InputSource)null);
- } catch (SAXException | ParserConfigurationException | IOException ex) {
- failUnexpected(ex);
- }
+ public void parse01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ spf.newSAXParser().getXMLReader().parse((InputSource) null);
}
/**
* Unit test for parse a error-formatted file. SAXException is expected.
- * @throws org.xml.sax.SAXException parsing failed.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test(expectedExceptions = SAXException.class)
- public void parse02() throws SAXException {
- try (FileInputStream fis = new FileInputStream(XML_DIR + "invalid.xml")){
+ @Test(groups = {"readLocalFiles"}, expectedExceptions = SAXException.class)
+ public void parse02() throws Exception {
+ try (FileInputStream fis = new FileInputStream(XML_DIR + "invalid.xml")) {
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- InputSource is = new InputSource(fis);
- xmlReader.parse(is);
- } catch (ParserConfigurationException | IOException ex) {
- failUnexpected(ex);
+ spf.newSAXParser().getXMLReader().parse(new InputSource(fis));
}
}
/**
* Unit test for parse a well-formatted file. No exception is expected.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void parse03(){
+ @Test(groups = {"readLocalFiles"})
+ public void parse03() throws Exception {
try (FileInputStream fis = new FileInputStream(XML_DIR + "correct2.xml")) {
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- InputSource is = new InputSource(fis);
- xmlReader.parse(is);
- } catch (IOException | SAXException | ParserConfigurationException ex) {
- failUnexpected(ex);
+ spf.newSAXParser().getXMLReader().parse(new InputSource(fis));
}
}
/**
- * Modified by IBM
- * Xerces does not support this feature and it is not mandatory
- * @throws org.xml.sax.SAXNotSupportedException
+ * Modified by IBM Xerces does not support this feature and it is not
+ * mandatory.
+ *
+ * @throws Exception If any errors occur.
*/
@Test(expectedExceptions = SAXNotSupportedException.class)
- public void xrProperty01() throws SAXNotSupportedException {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- xmlReader.getProperty(XML_STRING);
- } catch(SAXNotSupportedException ex) {
- throw ex;
- } catch (SAXException | ParserConfigurationException ex){
- failUnexpected(ex);
- }
+ public void xrProperty01() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ xmlReader.getProperty(XML_STRING);
}
/**
* SAXNotSupportedException thrown if property name is known but no value
* assigned to this property.
- * @throws org.xml.sax.SAXNotSupportedException when XMLReader recognizes
- * the property name but cannot determine its value at this time.
+ *
+ * @throws Exception If any errors occur.
*/
@Test(expectedExceptions = SAXNotSupportedException.class)
- public void xrProperty02() throws SAXNotSupportedException {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- assertNull(xmlReader.getProperty(DOM_NODE));
- } catch (SAXNotSupportedException ex) {
- throw ex;
- } catch (SAXException | ParserConfigurationException ex){
- failUnexpected(ex);
- }
+ public void xrProperty02() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ assertNull(xmlReader.getProperty(DOM_NODE));
}
-
/**
* XMLReader.getProperty returns null if LEXICAL_HANDLER wasn't set.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void xrProperty03() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- assertNull(xmlReader.getProperty(LEXICAL_HANDLER));
- } catch (SAXException | ParserConfigurationException ex){
- failUnexpected(ex);
- }
+ public void xrProperty03() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ assertNull(xmlReader.getProperty(LEXICAL_HANDLER));
}
/**
* XMLReader.getProperty returns null if DECL_HANDLER wasn't set.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void xrProperty04() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- assertNull(xmlReader.getProperty(DECL_HANDLER));
- } catch (SAXException | ParserConfigurationException ex){
- failUnexpected(ex);
- }
+ public void xrProperty04() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ assertNull(xmlReader.getProperty(DECL_HANDLER));
}
/**
* XMLReader.setProperty/getProperty for LEXICAL_HANDLER unit test.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void xrProperty05() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- MyLexicalHandler myLexicalHandler = new MyLexicalHandler();
- xmlReader.setProperty(LEXICAL_HANDLER, myLexicalHandler);
- assertNotNull(xmlReader.getProperty(LEXICAL_HANDLER));
- } catch (SAXException | ParserConfigurationException ex){
- failUnexpected(ex);
- }
+ public void xrProperty05() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ MyLexicalHandler myLexicalHandler = new MyLexicalHandler();
+ xmlReader.setProperty(LEXICAL_HANDLER, myLexicalHandler);
+ assertNotNull(xmlReader.getProperty(LEXICAL_HANDLER));
}
/**
* XMLReader.setProperty/getProperty for DECL_HANDLER unit test.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void xrProperty06() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- XMLReader xmlReader = spf.newSAXParser().getXMLReader();
- MyDeclHandler myDeclHandler = new MyDeclHandler();
- xmlReader.setProperty(DECL_HANDLER, myDeclHandler);
- assertNotNull(xmlReader.getProperty(DECL_HANDLER));
- } catch (ParserConfigurationException | SAXException ex){
- failUnexpected(ex);
- }
+ public void xrProperty06() throws Exception {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ XMLReader xmlReader = spf.newSAXParser().getXMLReader();
+ MyDeclHandler myDeclHandler = new MyDeclHandler();
+ xmlReader.setProperty(DECL_HANDLER, myDeclHandler);
+ assertNotNull(xmlReader.getProperty(DECL_HANDLER));
}
}
@@ -622,6 +540,7 @@
* Simple LexicalHandler that skips every lexical event.
*/
class MyLexicalHandler implements LexicalHandler {
+
/**
* Report an XML comment anywhere in the document.
*
@@ -667,8 +586,10 @@
* Report the start of DTD declarations, if any.
*
* @param name The document type name.
- * @param publicId The declared public identifier for the external DTD subset.
- * @param systemId The declared system identifier for the external DTD subset.
+ * @param publicId The declared public identifier for the external DTD
+ * subset.
+ * @param systemId The declared system identifier for the external DTD
+ * subset.
*/
@Override
public void startDTD(String name, String publicId, String systemId) {
@@ -688,16 +609,17 @@
* Simple DeclHandler that skips every DTD declaration event.
*/
class MyDeclHandler implements DeclHandler {
+
/**
* Report an attribute type declaration.
+ *
* @param eName The name of the associated element.
* @param aName The name of the attribute.
* @param type A string representing the attribute type.
* @param mode A string representing the attribute defaulting mode
- * ("#IMPLIED", "#REQUIRED", or "#FIXED") or null if
- * none of these applies.
- * @param value A string representing the attribute's default value,
- * or null if there is none.
+ * ("#IMPLIED", "#REQUIRED", or "#FIXED") or null if none of these applies.
+ * @param value A string representing the attribute's default value, or null
+ * if there is none.
*/
@Override
public void attributeDecl(String eName, String aName, String type,
@@ -706,6 +628,7 @@
/**
* Report an element type declaration.
+ *
* @param name The element type name.
* @param model The content model as a normalized string.
*/
@@ -715,10 +638,11 @@
/**
* Report a parsed external entity declaration.
- * @param name The name of the entity. If it is a parameter
- * entity, the name will begin with '%'.
- * @param publicId The entity's public identifier, or null if none
- * was given.
+ *
+ * @param name The name of the entity. If it is a parameter entity, the name
+ * will begin with '%'.
+ * @param publicId The entity's public identifier, or null if none was
+ * given.
* @param systemId The entity's system identifier.
*/
@Override
@@ -728,8 +652,9 @@
/**
* Report an internal entity declaration.
- * @param name The name of the entity. If it is a parameter
- * entity, the name will begin with '%'.
+ *
+ * @param name The name of the entity. If it is a parameter entity, the name
+ * will begin with '%'.
* @param value The replacement text of the entity.
*/
@Override
--- old/test/javax/xml/jaxp/functional/test/auctionportal/AuctionController.java 2015-01-09 15:41:30.544107375 -0800
+++ new/test/javax/xml/jaxp/functional/test/auctionportal/AuctionController.java 2015-01-09 15:41:30.467107255 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -27,23 +27,18 @@
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
-
import java.io.File;
import java.io.FileInputStream;
-import java.io.IOException;
import java.io.InputStream;
import java.math.BigInteger;
import java.nio.file.Paths;
import java.util.GregorianCalendar;
import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
-
-import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeConstants;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.Duration;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.transform.dom.DOMResult;
@@ -51,8 +46,8 @@
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
+import jaxp.library.JAXPFileReadOnlyBaseTest;
import static jaxp.library.JAXPTestUtilities.bomStream;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import org.testng.annotations.Test;
import org.w3c.dom.Attr;
import org.w3c.dom.DOMConfiguration;
@@ -63,173 +58,160 @@
import org.w3c.dom.bootstrap.DOMImplementationRegistry;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSSerializer;
-import org.xml.sax.SAXException;
import static test.auctionportal.HiBidConstants.PORTAL_ACCOUNT_NS;
import static test.auctionportal.HiBidConstants.XML_DIR;
/**
* This is the user controller class for the Auction portal HiBid.com.
*/
-public class AuctionController {
+public class AuctionController extends JAXPFileReadOnlyBaseTest {
/**
* Check for DOMErrorHandler handling DOMError. Before fix of bug 4890927
* DOMConfiguration.setParameter("well-formed",true) throws an exception.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCreateNewItem2Sell() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCreateNewItem2Sell() throws Exception {
String xmlFile = XML_DIR + "novelsInvalid.xml";
- try {
- Document document = DocumentBuilderFactory.newInstance()
- .newDocumentBuilder().parse(xmlFile);
-
- document.getDomConfig().setParameter("well-formed", true);
-
- DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
- DOMImplementationLS impl = (DOMImplementationLS) registry.getDOMImplementation("LS");
- MyDOMOutput domOutput = new MyDOMOutput();
- domOutput.setByteStream(System.out);
- LSSerializer writer = impl.createLSSerializer();
- writer.write(document, domOutput);
- } catch (ParserConfigurationException | SAXException | IOException
- | ClassNotFoundException | InstantiationException
- | IllegalAccessException | ClassCastException e) {
- failUnexpected(e);
- }
+ Document document = DocumentBuilderFactory.newInstance()
+ .newDocumentBuilder().parse(xmlFile);
+
+ document.getDomConfig().setParameter("well-formed", true);
+
+ DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
+ DOMImplementationLS impl = (DOMImplementationLS) registry.getDOMImplementation("LS");
+ MyDOMOutput domOutput = new MyDOMOutput();
+ domOutput.setByteStream(System.out);
+ LSSerializer writer = impl.createLSSerializer();
+ writer.write(document, domOutput);
}
/**
* Check for DOMErrorHandler handling DOMError. Before fix of bug 4896132
* test throws DOM Level 1 node error.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCreateNewItem2SellRetry() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCreateNewItem2SellRetry() throws Exception {
String xmlFile = XML_DIR + "accountInfo.xml";
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- Document document = dbf.newDocumentBuilder().parse(xmlFile);
-
- DOMConfiguration domConfig = document.getDomConfig();
- MyDOMErrorHandler errHandler = new MyDOMErrorHandler();
- domConfig.setParameter("error-handler", errHandler);
-
- DOMImplementationLS impl =
- (DOMImplementationLS) DOMImplementationRegistry.newInstance()
- .getDOMImplementation("LS");
- LSSerializer writer = impl.createLSSerializer();
- MyDOMOutput domoutput = new MyDOMOutput();
-
- domoutput.setByteStream(System.out);
- writer.write(document, domoutput);
-
- document.normalizeDocument();
- writer.write(document, domoutput);
- assertFalse(errHandler.isError());
- } catch (ParserConfigurationException | SAXException | IOException
- | ClassNotFoundException | InstantiationException
- | IllegalAccessException | ClassCastException e) {
- failUnexpected(e);
- }
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ Document document = dbf.newDocumentBuilder().parse(xmlFile);
+
+ DOMConfiguration domConfig = document.getDomConfig();
+ MyDOMErrorHandler errHandler = new MyDOMErrorHandler();
+ domConfig.setParameter("error-handler", errHandler);
+
+ DOMImplementationLS impl =
+ (DOMImplementationLS) DOMImplementationRegistry.newInstance()
+ .getDOMImplementation("LS");
+ LSSerializer writer = impl.createLSSerializer();
+ MyDOMOutput domoutput = new MyDOMOutput();
+
+ domoutput.setByteStream(System.out);
+ writer.write(document, domoutput);
+
+ document.normalizeDocument();
+ writer.write(document, domoutput);
+ assertFalse(errHandler.isError());
}
/**
* Check if setting the attribute to be of type ID works. This will affect
* the Attr.isID method according to the spec.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCreateID() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCreateID() throws Exception {
String xmlFile = XML_DIR + "accountInfo.xml";
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
- Document document = dbf.newDocumentBuilder().parse(xmlFile);
- Element account = (Element)document
- .getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "Account").item(0);
-
- account.setIdAttributeNS(PORTAL_ACCOUNT_NS, "accountID", true);
- Attr aID = account.getAttributeNodeNS(PORTAL_ACCOUNT_NS, "accountID");
- assertTrue(aID.isId());
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
+ Document document = dbf.newDocumentBuilder().parse(xmlFile);
+ Element account = (Element)document
+ .getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "Account").item(0);
+
+ account.setIdAttributeNS(PORTAL_ACCOUNT_NS, "accountID", true);
+ Attr aID = account.getAttributeNodeNS(PORTAL_ACCOUNT_NS, "accountID");
+ assertTrue(aID.isId());
}
/**
* Check the user data on the node.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testCheckingUserData() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckingUserData() throws Exception {
String xmlFile = XML_DIR + "accountInfo.xml";
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- Document document = docBuilder.parse(xmlFile);
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ Document document = docBuilder.parse(xmlFile);
- Element account = (Element)document.getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "Account").item(0);
- assertEquals(account.getNodeName(), "acc:Account");
- Element firstName = (Element) document.getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "FirstName").item(0);
- assertEquals(firstName.getNodeName(), "FirstName");
-
- Document doc1 = docBuilder.newDocument();
- Element someName = doc1.createElement("newelem");
-
- someName.setUserData("mykey", "dd",
- (operation, key, data, src, dst) -> {
- System.err.println("In UserDataHandler" + key);
- System.out.println("In UserDataHandler");
- });
- Element impAccount = (Element)document.importNode(someName, true);
- assertEquals(impAccount.getNodeName(), "newelem");
- document.normalizeDocument();
- String data = (someName.getUserData("mykey")).toString();
- assertEquals(data, "dd");
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
+ Element account = (Element)document.getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "Account").item(0);
+ assertEquals(account.getNodeName(), "acc:Account");
+ Element firstName = (Element) document.getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "FirstName").item(0);
+ assertEquals(firstName.getNodeName(), "FirstName");
+
+ Document doc1 = docBuilder.newDocument();
+ Element someName = doc1.createElement("newelem");
+
+ someName.setUserData("mykey", "dd",
+ (operation, key, data, src, dst) -> {
+ System.err.println("In UserDataHandler" + key);
+ System.out.println("In UserDataHandler");
+ });
+ Element impAccount = (Element)document.importNode(someName, true);
+ assertEquals(impAccount.getNodeName(), "newelem");
+ document.normalizeDocument();
+ String data = (someName.getUserData("mykey")).toString();
+ assertEquals(data, "dd");
}
/**
* Check the UTF-16 XMLEncoding xml file.
+ *
+ * @throws Exception If any errors occur.
* @see movies.xml
*/
- @Test
- public void testCheckingEncoding() {
+ @Test(groups = {"readLocalFiles"})
+ public void testCheckingEncoding() throws Exception {
// Note since movies.xml is UTF-16 encoding. We're not using stanard XML
// file suffix.
String xmlFile = XML_DIR + "movies.xml.data";
- //try (FileInputStream is = new FileInputStream(xmlFile)) {
- try {
+ try (InputStream source = bomStream("UTF-16", xmlFile)) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
- InputStream source = bomStream("UTF-16", xmlFile);
Document document = dbf.newDocumentBuilder().parse(source);
assertEquals(document.getXmlEncoding(), "UTF-16");
assertEquals(document.getXmlStandalone(), true);
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
}
}
/**
* Check validation API features. A schema which is including in Bug 4909119
* used to be testing for the functionalities.
+ *
+ * @throws Exception If any errors occur.
* @see userDetails.xsd
*/
- @Test
- public void testGetOwnerInfo() {
+ @Test(groups = {"readLocalFiles"})
+ public void testGetOwnerInfo() throws Exception {
String schemaFile = XML_DIR + "userDetails.xsd";
String xmlFile = XML_DIR + "userDetails.xml";
-
- try {
+
+ try(FileInputStream fis = new FileInputStream(xmlFile)) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
@@ -244,27 +226,27 @@
DocumentBuilder docBuilder = dbf.newDocumentBuilder();
docBuilder.setErrorHandler(eh);
- Document document = docBuilder.parse(new FileInputStream(xmlFile));
+ Document document = docBuilder.parse(fis);
DOMResult dResult = new DOMResult();
DOMSource domSource = new DOMSource(document);
validator.validate(domSource, dResult);
assertFalse(eh.isAnyError());
- } catch (SAXException | ParserConfigurationException | IOException e) {
- failUnexpected(e);
}
}
/**
* Check grammar caching with imported schemas.
+ *
+ * @throws Exception If any errors occur.
* @see coins.xsd
* @see coinsImportMe.xsd
*/
- @Test
- public void testGetOwnerItemList() {
+ @Test(groups = {"readLocalFiles"})
+ public void testGetOwnerItemList() throws Exception {
String xsdFile = XML_DIR + "coins.xsd";
String xmlFile = XML_DIR + "coins.xml";
- try {
+ try(FileInputStream fis = new FileInputStream(xmlFile)) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
@@ -278,11 +260,9 @@
validator.setErrorHandler(eh);
DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- Document document = docBuilder.parse(new FileInputStream(xmlFile));
+ Document document = docBuilder.parse(fis);
validator.validate(new DOMSource(document), new DOMResult());
assertFalse(eh.isAnyError());
- } catch (SAXException | ParserConfigurationException | IOException e) {
- failUnexpected(e);
}
}
@@ -291,96 +271,88 @@
* Check for the same imported schemas but will use SAXParserFactory and try
* parsing using the SAXParser. SCHEMA_SOURCE attribute is using for this
* test.
+ *
+ * @throws Exception If any errors occur.
* @see coins.xsd
* @see coinsImportMe.xsd
*/
- @Test
- public void testGetOwnerItemList1() {
+ @Test(groups = {"readLocalFiles"})
+ public void testGetOwnerItemList1() throws Exception {
String xsdFile = XML_DIR + "coins.xsd";
String xmlFile = XML_DIR + "coins.xml";
-
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- spf.setValidating(true);
-
- SAXParser sp = spf.newSAXParser();
- sp.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
- sp.setProperty(JAXP_SCHEMA_SOURCE, xsdFile);
-
- MyErrorHandler eh = new MyErrorHandler();
- sp.parse(new File(xmlFile), eh);
- assertFalse(eh.isAnyError());
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ spf.setValidating(true);
+
+ SAXParser sp = spf.newSAXParser();
+ sp.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
+ sp.setProperty(JAXP_SCHEMA_SOURCE, xsdFile);
+
+ MyErrorHandler eh = new MyErrorHandler();
+ sp.parse(new File(xmlFile), eh);
+ assertFalse(eh.isAnyError());
}
/**
* Check usage of javax.xml.datatype.Duration class.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testGetItemDuration() {
+ @Test(groups = {"readLocalFiles"})
+ public void testGetItemDuration() throws Exception {
String xmlFile = XML_DIR + "itemsDuration.xml";
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- Document document = dbf.newDocumentBuilder().parse(xmlFile);
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ Document document = dbf.newDocumentBuilder().parse(xmlFile);
- Element durationElement = (Element) document.getElementsByTagName("sellDuration").item(0);
+ Element durationElement = (Element) document.getElementsByTagName("sellDuration").item(0);
- NodeList childList = durationElement.getChildNodes();
+ NodeList childList = durationElement.getChildNodes();
- for (int i = 0; i < childList.getLength(); i++) {
- System.out.println("child " + i + childList.item(i));
- }
-
- Duration duration = DatatypeFactory.newInstance().newDuration("P365D");
- Duration sellDuration = DatatypeFactory.newInstance().newDuration(childList.item(0).getNodeValue());
- assertFalse(sellDuration.isShorterThan(duration));
- assertFalse(sellDuration.isLongerThan(duration));
- assertEquals(sellDuration.getField(DatatypeConstants.DAYS), BigInteger.valueOf(365));
- assertEquals(sellDuration.normalizeWith(new GregorianCalendar(1999, 2, 22)), duration);
-
- Duration myDuration = sellDuration.add(duration);
- assertEquals(myDuration.normalizeWith(new GregorianCalendar(2003, 2, 22)),
- DatatypeFactory.newInstance().newDuration("P730D"));
- } catch (ParserConfigurationException | DatatypeConfigurationException
- | SAXException | IOException e) {
- failUnexpected(e);
+ for (int i = 0; i < childList.getLength(); i++) {
+ System.out.println("child " + i + childList.item(i));
}
+
+ Duration duration = DatatypeFactory.newInstance().newDuration("P365D");
+ Duration sellDuration = DatatypeFactory.newInstance().newDuration(childList.item(0).getNodeValue());
+ assertFalse(sellDuration.isShorterThan(duration));
+ assertFalse(sellDuration.isLongerThan(duration));
+ assertEquals(sellDuration.getField(DatatypeConstants.DAYS), BigInteger.valueOf(365));
+ assertEquals(sellDuration.normalizeWith(new GregorianCalendar(1999, 2, 22)), duration);
+
+ Duration myDuration = sellDuration.add(duration);
+ assertEquals(myDuration.normalizeWith(new GregorianCalendar(2003, 2, 22)),
+ DatatypeFactory.newInstance().newDuration("P730D"));
}
/**
* Check usage of TypeInfo interface introduced in DOM L3.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testGetTypeInfo() {
+ @Test(groups = {"readLocalFiles"})
+ public void testGetTypeInfo() throws Exception {
String xmlFile = XML_DIR + "accountInfo.xml";
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- dbf.setValidating(true);
- dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
-
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- docBuilder.setErrorHandler(new MyErrorHandler());
-
- Document document = docBuilder.parse(xmlFile);
- Element userId = (Element)document.getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "UserID").item(0);
- TypeInfo typeInfo = userId.getSchemaTypeInfo();
- assertTrue(typeInfo.getTypeName().equals("nonNegativeInteger"));
- assertTrue(typeInfo.getTypeNamespace().equals(W3C_XML_SCHEMA_NS_URI));
-
- Element role = (Element)document.getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "Role").item(0);
- TypeInfo roletypeInfo = role.getSchemaTypeInfo();
- assertTrue(roletypeInfo.getTypeName().equals("BuyOrSell"));
- assertTrue(roletypeInfo.getTypeNamespace().equals(PORTAL_ACCOUNT_NS));
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ dbf.setValidating(true);
+ dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
+
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ docBuilder.setErrorHandler(new MyErrorHandler());
+
+ Document document = docBuilder.parse(xmlFile);
+ Element userId = (Element)document.getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "UserID").item(0);
+ TypeInfo typeInfo = userId.getSchemaTypeInfo();
+ assertTrue(typeInfo.getTypeName().equals("nonNegativeInteger"));
+ assertTrue(typeInfo.getTypeNamespace().equals(W3C_XML_SCHEMA_NS_URI));
+
+ Element role = (Element)document.getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "Role").item(0);
+ TypeInfo roletypeInfo = role.getSchemaTypeInfo();
+ assertTrue(roletypeInfo.getTypeName().equals("BuyOrSell"));
+ assertTrue(roletypeInfo.getTypeNamespace().equals(PORTAL_ACCOUNT_NS));
}
}
--- old/test/javax/xml/jaxp/functional/test/auctionportal/AuctionItemRepository.java 2015-01-09 15:41:30.905107937 -0800
+++ new/test/javax/xml/jaxp/functional/test/auctionportal/AuctionItemRepository.java 2015-01-09 15:41:30.828107817 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -30,39 +30,31 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.IOException;
+import java.io.FilePermission;
import java.io.InputStream;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
import static javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING;
import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
-import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareDocumentWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertFalse;
-
import org.testng.annotations.Test;
import org.w3c.dom.Document;
-import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
-import static test.auctionportal.HiBidConstants.CLASS_DIR;
import static test.auctionportal.HiBidConstants.GOLDEN_DIR;
import static test.auctionportal.HiBidConstants.XML_DIR;
/**
* This is a test class for the Auction portal HiBid.com.
*/
-public class AuctionItemRepository {
+public class AuctionItemRepository extends JAXPFileBaseTest {
/**
* XML file for parsing.
*/
@@ -78,94 +70,92 @@
* document that has more than two levels of entity expansion is parsed or
* not. Previous system property was changed to jdk.xml.entityExpansionLimit
* see http://docs.oracle.com/javase/tutorial/jaxp/limits/limits.html.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testEntityExpansionSAXPos() {
- try {
- SAXParserFactory factory = SAXParserFactory.newInstance();
- // Secure processing will limit XML processing to conform to
- // implementation limits.
- factory.setFeature(FEATURE_SECURE_PROCESSING, true);
- // Set entityExpansionLimit as 2 should expect fatalError
- System.setProperty(SP_ENTITY_EXPANSION_LIMIT, String.valueOf(128000));
- SAXParser parser = factory.newSAXParser();
-
- MyErrorHandler fatalHandler = new MyErrorHandler();
- parser.parse(new File(ENTITY_XML), fatalHandler);
- assertFalse(fatalHandler.isAnyError());
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
+ public void testEntityExpansionSAXPos() throws Exception {
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+ // Secure processing will limit XML processing to conform to
+ // implementation limits.
+ factory.setFeature(FEATURE_SECURE_PROCESSING, true);
+ // Set entityExpansionLimit as 2 should expect fatalError
+ setSystemProperty(SP_ENTITY_EXPANSION_LIMIT, String.valueOf(128000));
+ SAXParser parser = factory.newSAXParser();
+
+ MyErrorHandler fatalHandler = new MyErrorHandler();
+ setPermissions(new FilePermission(ENTITY_XML, "read"));
+ parser.parse(new File(ENTITY_XML), fatalHandler);
+ assertFalse(fatalHandler.isAnyError());
}
/**
* Setting the EntityExpansion Limit to 2 and checks if the XML
* document that has more than two levels of entity expansion is parsed or
* not. Previous system property was changed to jdk.xml.entityExpansionLimit
* see http://docs.oracle.com/javase/tutorial/jaxp/limits/limits.html.
+ *
+ * @throws Exception If any errors occur.
*/
@Test(expectedExceptions = SAXParseException.class)
- public void testEntityExpansionSAXNeg() throws SAXParseException {
- //
- try {
- SAXParserFactory factory = SAXParserFactory.newInstance();
- // Secure processing will limit XML processing to conform to
- // implementation limits.
- factory.setFeature(FEATURE_SECURE_PROCESSING, true);
- // Set entityExpansionLimit as 2 should expect SAXParseException
- System.setProperty(SP_ENTITY_EXPANSION_LIMIT, String.valueOf(2));
- SAXParser parser = factory.newSAXParser();
-
- MyErrorHandler fatalHandler = new MyErrorHandler();
- parser.parse(new File(ENTITY_XML), fatalHandler);
- } catch (SAXParseException e) {
- throw e;
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
+ public void testEntityExpansionSAXNeg() throws Exception {
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+ // Secure processing will limit XML processing to conform to
+ // implementation limits.
+ factory.setFeature(FEATURE_SECURE_PROCESSING, true);
+ // Set entityExpansionLimit as 2 should expect SAXParseException.
+ setSystemProperty(SP_ENTITY_EXPANSION_LIMIT, String.valueOf(2));
+
+ SAXParser parser = factory.newSAXParser();
+ MyErrorHandler fatalHandler = new MyErrorHandler();
+ setPermissions(new FilePermission(ENTITY_XML, "read"));
+ parser.parse(new File(ENTITY_XML), fatalHandler);
}
/**
* Testing set MaxOccursLimit to 10000 in the secure processing enabled for
* SAXParserFactory.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testMaxOccurLimitPos() {
+ public void testMaxOccurLimitPos() throws Exception {
String schema_file = XML_DIR + "toys.xsd";
String xml_file = XML_DIR + "toys.xml";
-
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+ factory.setValidating(true);
+ factory.setFeature(FEATURE_SECURE_PROCESSING, true);
+ setSystemProperty(SP_MAX_OCCUR_LIMIT, String.valueOf(10000));
+ SAXParser parser = factory.newSAXParser();
+ parser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
+ setPermissions(new FilePermission(XML_DIR + "-", "read"));
+ parser.setProperty(JAXP_SCHEMA_SOURCE, new File(schema_file));
try (InputStream is = new FileInputStream(xml_file)) {
- SAXParserFactory factory = SAXParserFactory.newInstance();
- factory.setValidating(true);
- factory.setFeature(FEATURE_SECURE_PROCESSING, true);
- System.setProperty(SP_MAX_OCCUR_LIMIT, String.valueOf(10000));
- SAXParser parser = factory.newSAXParser();
- parser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
- parser.setProperty(JAXP_SCHEMA_SOURCE, new File(schema_file));
MyErrorHandler eh = new MyErrorHandler();
parser.parse(is, eh);
assertFalse(eh.isAnyError());
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
}
}
/**
* Use a DocumentBuilder to create a DOM object and see if Secure Processing
* feature affects the entity expansion.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testEntityExpansionDOMPos() {
+ public void testEntityExpansionDOMPos() throws Exception {
+ DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
+ dfactory.setFeature(FEATURE_SECURE_PROCESSING, true);
+ setSystemProperty(SP_ENTITY_EXPANSION_LIMIT, String.valueOf(10000));
+ DocumentBuilder dBuilder = dfactory.newDocumentBuilder();
+ MyErrorHandler eh = new MyErrorHandler();
+ dBuilder.setErrorHandler(eh);
try {
- DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
- dfactory.setFeature(FEATURE_SECURE_PROCESSING, true);
- System.setProperty(SP_ENTITY_EXPANSION_LIMIT, String.valueOf(10000));
- DocumentBuilder dBuilder = dfactory.newDocumentBuilder();
- MyErrorHandler eh = new MyErrorHandler();
- dBuilder.setErrorHandler(eh);
+ setPermissions(new FilePermission(ENTITY_XML, "read"));
dBuilder.parse(ENTITY_XML);
assertFalse(eh.isAnyError());
- } catch (ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
+ } finally {
+ setPermissions();
}
}
@@ -173,310 +163,209 @@
* Use a DocumentBuilder to create a DOM object and see how does the Secure
* Processing feature and entityExpansionLimit value affects output.
* Negative test that when entityExpansionLimit is too small.
+ *
+ * @throws Exception If any errors occur.
*/
@Test(expectedExceptions = SAXParseException.class)
- public void testEntityExpansionDOMNeg() throws SAXParseException {
- try {
- DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
- dfactory.setFeature(FEATURE_SECURE_PROCESSING, true);
- System.setProperty(SP_ENTITY_EXPANSION_LIMIT, String.valueOf(2));
- DocumentBuilder dBuilder = dfactory.newDocumentBuilder();
- MyErrorHandler eh = new MyErrorHandler();
- dBuilder.setErrorHandler(eh);
- dBuilder.parse(ENTITY_XML);
- } catch (SAXParseException e) {
- throw e;
- } catch (ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
- }
+ public void testEntityExpansionDOMNeg() throws Exception {
+ DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
+ dfactory.setFeature(FEATURE_SECURE_PROCESSING, true);
+ setSystemProperty(SP_ENTITY_EXPANSION_LIMIT, String.valueOf(2));
+ DocumentBuilder dBuilder = dfactory.newDocumentBuilder();
+ MyErrorHandler eh = new MyErrorHandler();
+ dBuilder.setErrorHandler(eh);
+ setPermissions(new FilePermission(ENTITY_XML, "read"));
+ dBuilder.parse(ENTITY_XML);
}
/**
* Test xi:include with a SAXParserFactory.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testXIncludeSAXPos() {
- String resultFile = CLASS_DIR + "doc_xinclude.out";
+ @Test(groups = {"readWriteLocalFiles"})
+ public void testXIncludeSAXPos() throws Exception {
+ String resultFile = USER_DIR + "doc_xinclude.out";
String goldFile = GOLDEN_DIR + "doc_xincludeGold.xml";
String xmlFile = XML_DIR + "doc_xinclude.xml";
-
- try {
- try(FileOutputStream fos = new FileOutputStream(resultFile)) {
- XInclHandler xh = new XInclHandler(fos, null);
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- spf.setXIncludeAware(true);
- spf.setFeature(FEATURE_NAME, true);
- spf.newSAXParser().parse(new File(xmlFile), xh);
- }
- assertTrue(compareDocumentWithGold(goldFile, resultFile));
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- } finally {
- try {
- Path resultPath = Paths.get(resultFile);
- if (Files.exists(resultPath)) {
- Files.delete(resultPath);
- }
- } catch (IOException ex) {
- failCleanup(ex, resultFile);
- }
+
+ try(FileOutputStream fos = new FileOutputStream(resultFile)) {
+ XInclHandler xh = new XInclHandler(fos, null);
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ spf.setXIncludeAware(true);
+ spf.setFeature(FEATURE_NAME, true);
+ spf.newSAXParser().parse(new File(xmlFile), xh);
}
+ assertTrue(compareDocumentWithGold(goldFile, resultFile));
}
/**
* Test the simple case of including a document using xi:include using a
* DocumentBuilder.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testXIncludeDOMPos() {
- String resultFile = CLASS_DIR + "doc_xincludeDOM.out";
+ @Test(groups = {"readWriteLocalFiles"})
+ public void testXIncludeDOMPos() throws Exception {
+ String resultFile = USER_DIR + "doc_xincludeDOM.out";
String goldFile = GOLDEN_DIR + "doc_xincludeGold.xml";
String xmlFile = XML_DIR + "doc_xinclude.xml";
- try {
- try (FileOutputStream fos = new FileOutputStream(resultFile)) {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setXIncludeAware(true);
- dbf.setNamespaceAware(true);
-
- Document doc = dbf.newDocumentBuilder().parse(new File(xmlFile));
- doc.setXmlStandalone(true);
-
- TransformerFactory.newInstance().newTransformer().
- transform(new DOMSource(doc), new StreamResult(fos));
- }
- assertTrue(compareDocumentWithGold(goldFile, resultFile));
- } catch (ParserConfigurationException | SAXException | IOException
- | TransformerException e) {
- failUnexpected(e);
- } finally {
- try {
- Path resultPath = Paths.get(resultFile);
- if (Files.exists(resultPath)) {
- Files.delete(resultPath);
- }
- } catch (IOException ex) {
- failCleanup(ex, resultFile);
- }
+ try (FileOutputStream fos = new FileOutputStream(resultFile)) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setXIncludeAware(true);
+ dbf.setNamespaceAware(true);
+ Document doc = dbf.newDocumentBuilder().parse(new File(xmlFile));
+ doc.setXmlStandalone(true);
+ TransformerFactory.newInstance().newTransformer().
+ transform(new DOMSource(doc), new StreamResult(fos));
}
+ assertTrue(compareDocumentWithGold(goldFile, resultFile));
}
/**
* Test the simple case of including a document using xi:include within a
* xi:fallback using a DocumentBuilder.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testXIncludeFallbackDOMPos() {
- String resultFile = CLASS_DIR + "doc_fallbackDOM.out";
+ @Test(groups = {"readWriteLocalFiles"})
+ public void testXIncludeFallbackDOMPos() throws Exception {
+ String resultFile = USER_DIR + "doc_fallbackDOM.out";
String goldFile = GOLDEN_DIR + "doc_fallbackGold.xml";
String xmlFile = XML_DIR + "doc_fallback.xml";
- try{
- try (FileOutputStream fos = new FileOutputStream(resultFile)) {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setXIncludeAware(true);
- dbf.setNamespaceAware(true);
-
- Document doc = dbf.newDocumentBuilder().parse(new File(xmlFile));
- doc.setXmlStandalone(true);
- TransformerFactory.newInstance().newTransformer()
- .transform(new DOMSource(doc), new StreamResult(fos));
- }
- assertTrue(compareDocumentWithGold(goldFile, resultFile));
- } catch (ParserConfigurationException | SAXException | IOException
- | TransformerException e) {
- failUnexpected(e);
- } finally {
- try {
- Path resultPath = Paths.get(resultFile);
- if (Files.exists(resultPath)) {
- Files.delete(resultPath);
- }
- } catch (IOException ex) {
- failCleanup(ex, resultFile);
- }
+ try (FileOutputStream fos = new FileOutputStream(resultFile)) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setXIncludeAware(true);
+ dbf.setNamespaceAware(true);
+
+ Document doc = dbf.newDocumentBuilder().parse(new File(xmlFile));
+ doc.setXmlStandalone(true);
+ TransformerFactory.newInstance().newTransformer()
+ .transform(new DOMSource(doc), new StreamResult(fos));
}
+ assertTrue(compareDocumentWithGold(goldFile, resultFile));
}
/**
* Test for xi:fallback where the fall back text is parsed as text. This
* test uses a nested xi:include for the fallback test.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testXIncludeFallbackTextPos() {
- String resultFile = CLASS_DIR + "doc_fallback_text.out";
+ @Test(groups = {"readWriteLocalFiles"})
+ public void testXIncludeFallbackTextPos() throws Exception {
+ String resultFile = USER_DIR + "doc_fallback_text.out";
String goldFile = GOLDEN_DIR + "doc_fallback_textGold.xml";
String xmlFile = XML_DIR + "doc_fallback_text.xml";
-
- try{
- try (FileOutputStream fos = new FileOutputStream(resultFile)) {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setXIncludeAware(true);
- dbf.setNamespaceAware(true);
-
- Document doc = dbf.newDocumentBuilder().parse(new File(xmlFile));
- doc.setXmlStandalone(true);
- TransformerFactory.newInstance().newTransformer()
- .transform(new DOMSource(doc), new StreamResult(fos));
- }
- assertTrue(compareDocumentWithGold(goldFile, resultFile));
- } catch (ParserConfigurationException | SAXException | IOException
- | TransformerException e) {
- failUnexpected(e);
- } finally {
- try {
- Path resultPath = Paths.get(resultFile);
- if (Files.exists(resultPath)) {
- Files.delete(resultPath);
- }
- } catch (IOException ex) {
- failCleanup(ex, resultFile);
- }
+ try (FileOutputStream fos = new FileOutputStream(resultFile)) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setXIncludeAware(true);
+ dbf.setNamespaceAware(true);
+
+ Document doc = dbf.newDocumentBuilder().parse(new File(xmlFile));
+ doc.setXmlStandalone(true);
+ TransformerFactory.newInstance().newTransformer()
+ .transform(new DOMSource(doc), new StreamResult(fos));
}
+ assertTrue(compareDocumentWithGold(goldFile, resultFile));
}
/**
* Test the XPointer element() framework with XInclude.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testXpointerElementPos() {
- String resultFile = CLASS_DIR + "doc_xpointer_element.out";
+ @Test(groups = {"readWriteLocalFiles"})
+ public void testXpointerElementPos() throws Exception {
+ String resultFile = USER_DIR + "doc_xpointer_element.out";
String goldFile = GOLDEN_DIR + "doc_xpointerGold.xml";
String xmlFile = XML_DIR + "doc_xpointer_element.xml";
-
- try{
- try (FileOutputStream fos = new FileOutputStream(resultFile)) {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setXIncludeAware(true);
- dbf.setNamespaceAware(true);
-
- DocumentBuilder db = dbf.newDocumentBuilder();
-
- TransformerFactory.newInstance().newTransformer()
- .transform(new DOMSource(db.parse(new File(xmlFile))),
- new StreamResult(fos));
- }
- assertTrue(compareDocumentWithGold(goldFile, resultFile));
- } catch (ParserConfigurationException | SAXException | IOException
- | TransformerException e) {
- failUnexpected(e);
- } finally {
- try {
- Path resultPath = Paths.get(resultFile);
- if (Files.exists(resultPath)) {
- Files.delete(resultPath);
- }
- } catch (IOException ex) {
- failCleanup(ex, resultFile);
- }
+ try (FileOutputStream fos = new FileOutputStream(resultFile)) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setXIncludeAware(true);
+ dbf.setNamespaceAware(true);
+
+ DocumentBuilder db = dbf.newDocumentBuilder();
+
+ TransformerFactory.newInstance().newTransformer()
+ .transform(new DOMSource(db.parse(new File(xmlFile))),
+ new StreamResult(fos));
}
+ assertTrue(compareDocumentWithGold(goldFile, resultFile));
}
/**
* Test the XPointer framework with a SAX object.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testXPointerPos() {
- String resultFile = CLASS_DIR + "doc_xpointer.out";
+ @Test(groups = {"readWriteLocalFiles"})
+ public void testXPointerPos() throws Exception {
+ String resultFile = USER_DIR + "doc_xpointer.out";
String goldFile = GOLDEN_DIR + "doc_xpointerGold.xml";
String xmlFile = XML_DIR + "doc_xpointer.xml";
-
- try{
- try (FileOutputStream fos = new FileOutputStream(resultFile)) {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- spf.setXIncludeAware(true);
- spf.setFeature(FEATURE_NAME, true);
- // parse the file
- spf.newSAXParser().parse(new File(xmlFile), new XInclHandler(fos, null));
- }
- assertTrue(compareDocumentWithGold(goldFile, resultFile));
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- } finally {
- try {
- Path resultPath = Paths.get(resultFile);
- if (Files.exists(resultPath)) {
- Files.delete(resultPath);
- }
- } catch (IOException ex) {
- failCleanup(ex, resultFile);
- }
+
+ try (FileOutputStream fos = new FileOutputStream(resultFile)) {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ spf.setXIncludeAware(true);
+ spf.setFeature(FEATURE_NAME, true);
+ // parse the file
+ spf.newSAXParser().parse(new File(xmlFile), new XInclHandler(fos, null));
}
+ assertTrue(compareDocumentWithGold(goldFile, resultFile));
}
/**
* Test if xi:include may reference the doc containing the include if the
* parse type is text.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testXIncludeLoopPos() {
- String resultFile = CLASS_DIR + "doc_xinc_loops.out";
+ @Test(groups = {"readWriteLocalFiles"})
+ public void testXIncludeLoopPos() throws Exception {
+ String resultFile = USER_DIR + "doc_xinc_loops.out";
String goldFile = GOLDEN_DIR + "doc_xinc_loopGold.xml";
String xmlFile = XML_DIR + "doc_xinc_loops.xml";
- try{
- try (FileOutputStream fos = new FileOutputStream(resultFile)) {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setXIncludeAware(true);
- dbf.setNamespaceAware(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- Document doc = db.parse(new File(xmlFile));
- doc.normalizeDocument();
- doc.setXmlStandalone(true);
-
- TransformerFactory.newInstance().newTransformer()
- .transform(new DOMSource(doc), new StreamResult(fos));
- }
- assertTrue(compareDocumentWithGold(goldFile, resultFile));
- } catch (ParserConfigurationException | SAXException | IOException
- | TransformerException e) {
- failUnexpected(e);
- } finally {
- try {
- Path resultPath = Paths.get(resultFile);
- if (Files.exists(resultPath)) {
- Files.delete(resultPath);
- }
- } catch (IOException ex) {
- failCleanup(ex, resultFile);
- }
+ try (FileOutputStream fos = new FileOutputStream(resultFile)) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setXIncludeAware(true);
+ dbf.setNamespaceAware(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document doc = db.parse(new File(xmlFile));
+ doc.normalizeDocument();
+ doc.setXmlStandalone(true);
+
+ TransformerFactory.newInstance().newTransformer()
+ .transform(new DOMSource(doc), new StreamResult(fos));
}
+ assertTrue(compareDocumentWithGold(goldFile, resultFile));
}
/**
* Test if two non nested xi:include elements can include the same document
* with an xi:include statement.
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testXIncludeNestedPos() {
- String resultFile = CLASS_DIR + "schedule.out";
+ @Test(groups = {"readWriteLocalFiles"})
+ public void testXIncludeNestedPos() throws Exception {
+ String resultFile = USER_DIR + "schedule.out";
String goldFile = GOLDEN_DIR + "scheduleGold.xml";
String xmlFile = XML_DIR + "schedule.xml";
-
- try{
- try (FileOutputStream fos = new FileOutputStream(resultFile)) {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setXIncludeAware(true);
- dbf.setNamespaceAware(true);
-
- Document doc = dbf.newDocumentBuilder().parse(new File(xmlFile));
- doc.setXmlStandalone(true);
- TransformerFactory.newInstance().newTransformer()
- .transform(new DOMSource(doc), new StreamResult(fos));
- }
- assertTrue(compareDocumentWithGold(goldFile, resultFile));
- } catch (ParserConfigurationException | SAXException | IOException
- | TransformerException e) {
- failUnexpected(e);
- } finally {
- try {
- Path resultPath = Paths.get(resultFile);
- if (Files.exists(resultPath)) {
- Files.delete(resultPath);
- }
- } catch (IOException ex) {
- failCleanup(ex, resultFile);
- }
+
+ try (FileOutputStream fos = new FileOutputStream(resultFile)) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setXIncludeAware(true);
+ dbf.setNamespaceAware(true);
+
+ Document doc = dbf.newDocumentBuilder().parse(new File(xmlFile));
+ doc.setXmlStandalone(true);
+ TransformerFactory.newInstance().newTransformer()
+ .transform(new DOMSource(doc), new StreamResult(fos));
}
+ assertTrue(compareDocumentWithGold(goldFile, resultFile));
}
}
--- old/test/javax/xml/jaxp/functional/test/auctionportal/UserController.java 2015-01-09 15:41:31.265108499 -0800
+++ new/test/javax/xml/jaxp/functional/test/auctionportal/UserController.java 2015-01-09 15:41:31.190108382 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -25,21 +25,17 @@
import static com.sun.org.apache.xerces.internal.jaxp.JAXPConstants.JAXP_SCHEMA_LANGUAGE;
import static org.testng.Assert.assertFalse;
import java.io.FileOutputStream;
-import java.io.IOException;
import java.nio.file.Files;
-import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareDocumentWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
-
import org.testng.annotations.Test;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
@@ -50,8 +46,6 @@
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSParser;
import org.w3c.dom.ls.LSSerializer;
-import org.xml.sax.SAXException;
-import static test.auctionportal.HiBidConstants.CLASS_DIR;
import static test.auctionportal.HiBidConstants.GOLDEN_DIR;
import static test.auctionportal.HiBidConstants.PORTAL_ACCOUNT_NS;
import static test.auctionportal.HiBidConstants.XML_DIR;
@@ -59,141 +53,127 @@
/**
* This is the user controller class for the Auction portal HiBid.com.
*/
-public class UserController {
+public class UserController extends JAXPFileBaseTest {
/**
* Checking when creating an XML document using DOM Level 2 validating
* it without having a schema source or a schema location It must throw a
* sax parse exception.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testCreateNewUser() {
- String resultFile = CLASS_DIR + "accountInfoOut.xml";
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- dbf.setValidating(true);
-
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- MyErrorHandler eh = new MyErrorHandler();
- docBuilder.setErrorHandler(eh);
-
- Document document = docBuilder.newDocument();
-
- Element account = document.createElementNS(PORTAL_ACCOUNT_NS, "acc:Account");
- Attr accountID = document.createAttributeNS(PORTAL_ACCOUNT_NS, "acc:accountID");
- account.setAttributeNode(accountID);
-
- account.appendChild(document.createElement("FirstName"));
- account.appendChild(document.createElementNS(PORTAL_ACCOUNT_NS, "acc:LastName"));
- account.appendChild(document.createElement("UserID"));
-
- DOMImplementationLS impl
- = (DOMImplementationLS) DOMImplementationRegistry
- .newInstance().getDOMImplementation("LS");
- LSSerializer writer = impl.createLSSerializer();
- LSParser builder = impl.createLSParser(DOMImplementationLS.MODE_SYNCHRONOUS, null);
- FileOutputStream output = new FileOutputStream(resultFile);
+ public void testCreateNewUser() throws Exception {
+ String resultFile = USER_DIR + "accountInfoOut.xml";
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ dbf.setValidating(true);
+
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ MyErrorHandler eh = new MyErrorHandler();
+ docBuilder.setErrorHandler(eh);
+
+ Document document = docBuilder.newDocument();
+
+ Element account = document.createElementNS(PORTAL_ACCOUNT_NS, "acc:Account");
+ Attr accountID = document.createAttributeNS(PORTAL_ACCOUNT_NS, "acc:accountID");
+ account.setAttributeNode(accountID);
+
+ account.appendChild(document.createElement("FirstName"));
+ account.appendChild(document.createElementNS(PORTAL_ACCOUNT_NS, "acc:LastName"));
+ account.appendChild(document.createElement("UserID"));
+
+ DOMImplementationLS impl
+ = (DOMImplementationLS) DOMImplementationRegistry
+ .newInstance().getDOMImplementation("LS");
+ LSSerializer writer = impl.createLSSerializer();
+ LSParser builder = impl.createLSParser(DOMImplementationLS.MODE_SYNCHRONOUS, null);
+ try(FileOutputStream output = new FileOutputStream(resultFile)) {
MyDOMOutput domOutput = new MyDOMOutput();
-
domOutput.setByteStream(output);
writer.write(account, domOutput);
docBuilder.parse(resultFile);
-
- assertTrue(eh.isAnyError());
- } catch (ParserConfigurationException | ClassNotFoundException |
- InstantiationException | IllegalAccessException
- | ClassCastException | SAXException | IOException e) {
- failUnexpected(e);
}
+ assertTrue(eh.isAnyError());
}
/**
* Checking conflicting namespaces and use renameNode and normalizeDocument.
* @see accountInfo.xml
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testAddUser() {
- String resultFile = CLASS_DIR + "accountRole.out";
+ public void testAddUser() throws Exception {
+ String resultFile = USER_DIR + "accountRole.out";
String xmlFile = XML_DIR + "accountInfo.xml";
-
- try {
- // Copy schema for outputfile
- Files.copy(Paths.get(XML_DIR, "accountInfo.xsd"),
- Paths.get(CLASS_DIR, "accountInfo.xsd"),
- StandardCopyOption.REPLACE_EXISTING);
- MyErrorHandler eh = new MyErrorHandler();
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-
- dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
- dbf.setNamespaceAware(true);
- dbf.setValidating(true);
-
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- docBuilder.setErrorHandler(eh);
-
- Document document = docBuilder.parse(xmlFile);
- Element sell = (Element) document.getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "Sell").item(0);
- Element role = (Element) sell.getParentNode();
-
- Element buy = (Element) document.renameNode(sell, PORTAL_ACCOUNT_NS, "acc:Buy");
- role.appendChild(buy);
-
- DOMImplementationLS impl
- = (DOMImplementationLS) DOMImplementationRegistry
- .newInstance().getDOMImplementation("LS");
- LSSerializer writer = impl.createLSSerializer();
+
+ // Copy schema for outputfile
+ Files.copy(Paths.get(XML_DIR, "accountInfo.xsd"),
+ Paths.get(USER_DIR, "accountInfo.xsd"),
+ StandardCopyOption.REPLACE_EXISTING);
+ MyErrorHandler eh = new MyErrorHandler();
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+
+ dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
+ dbf.setNamespaceAware(true);
+ dbf.setValidating(true);
+
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ docBuilder.setErrorHandler(eh);
+
+ Document document = docBuilder.parse(xmlFile);
+ Element sell = (Element) document.getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "Sell").item(0);
+ Element role = (Element) sell.getParentNode();
+
+ Element buy = (Element) document.renameNode(sell, PORTAL_ACCOUNT_NS, "acc:Buy");
+ role.appendChild(buy);
+
+ DOMImplementationLS impl
+ = (DOMImplementationLS) DOMImplementationRegistry
+ .newInstance().getDOMImplementation("LS");
+ LSSerializer writer = impl.createLSSerializer();
- try(FileOutputStream output = new FileOutputStream(resultFile)) {
- MyDOMOutput mydomoutput = new MyDOMOutput();
- mydomoutput.setByteStream(output);
- writer.write(document, mydomoutput);
- }
-
- docBuilder.parse(resultFile);
- assertFalse(eh.isAnyError());
- } catch (ParserConfigurationException | SAXException | IOException
- | ClassNotFoundException | InstantiationException
- | IllegalAccessException | ClassCastException e) {
- failUnexpected(e);
+ try(FileOutputStream output = new FileOutputStream(resultFile)) {
+ MyDOMOutput mydomoutput = new MyDOMOutput();
+ mydomoutput.setByteStream(output);
+ writer.write(document, mydomoutput);
}
+
+ docBuilder.parse(resultFile);
+ assertFalse(eh.isAnyError());
}
/**
* Checking Text content in XML file.
* @see accountInfo.xml
+ *
+ * @throws Exception If any errors occur.
*/
- @Test
- public void testMoreUserInfo() {
+ @Test(groups = {"readLocalFiles"})
+ public void testMoreUserInfo() throws Exception {
String xmlFile = XML_DIR + "accountInfo.xml";
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- try {
- System.out.println("Checking additional user info");
+ dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
+ dbf.setNamespaceAware(true);
+ dbf.setValidating(true);
+
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ MyErrorHandler eh = new MyErrorHandler();
+ docBuilder.setErrorHandler(eh);
+
+ Document document = docBuilder.parse(xmlFile);
+ Element account = (Element)document
+ .getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "Account").item(0);
+ String textContent = account.getTextContent();
+ assertTrue(textContent.trim().regionMatches(0, "Rachel", 0, 6));
+ assertEquals(textContent, "RachelGreen744");
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ Attr accountID = account.getAttributeNodeNS(PORTAL_ACCOUNT_NS, "accountID");
+ assertTrue(accountID.getTextContent().trim().equals("1"));
- dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
- dbf.setNamespaceAware(true);
- dbf.setValidating(true);
-
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- MyErrorHandler eh = new MyErrorHandler();
- docBuilder.setErrorHandler(eh);
-
- Document document = docBuilder.parse(xmlFile);
- Element account = (Element)document
- .getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "Account").item(0);
- String textContent = account.getTextContent();
- assertTrue(textContent.trim().regionMatches(0, "Rachel", 0, 6));
- assertEquals(textContent, "RachelGreen744");
-
- Attr accountID = account.getAttributeNodeNS(PORTAL_ACCOUNT_NS, "accountID");
- assertTrue(accountID.getTextContent().trim().equals("1"));
-
- assertFalse(eh.isAnyError());
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
+ assertFalse(eh.isAnyError());
}
/**
@@ -204,83 +184,73 @@
* into an XML file which is validated by the schema This covers Row 5
* for the table
* http://javaweb.sfbay/~jsuttor/JSR206/jsr-206-html/ch03s05.html. Filed
- * bug 4893745 because there was a difference in behavior
+ * bug 4893745 because there was a difference in behavior.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testCreateUserAccount() {
- System.out.println("Creating user account");
+ public void testCreateUserAccount() throws Exception {
String userXmlFile = XML_DIR + "userInfo.xml";
String accountXmlFile = XML_DIR + "accountInfo.xml";
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ dbf.setValidating(true);
+
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ MyErrorHandler eh = new MyErrorHandler();
+ docBuilder.setErrorHandler(eh);
+
+ Document document = docBuilder.parse(userXmlFile);
+ Element user = (Element) document.getElementsByTagName("FirstName").item(0);
+ // Set schema after parsing userInfo.xml. Otherwise it will conflict
+ // with DTD validation.
+ dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
+ DocumentBuilder docBuilder1 = dbf.newDocumentBuilder();
+ docBuilder1.setErrorHandler(eh);
+ Document accDocument = docBuilder1.parse(accountXmlFile);
+
+ Element firstName = (Element) accDocument
+ .getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "FirstName").item(0);
+ Element adoptedAccount = (Element) accDocument.adoptNode(user);
+
+ Element parent = (Element) firstName.getParentNode();
+ parent.replaceChild(adoptedAccount, firstName);
+
+ DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
+ DOMImplementationLS impl = (DOMImplementationLS) registry.getDOMImplementation("LS");
+ LSSerializer writer = impl.createLSSerializer();
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- dbf.setValidating(true);
-
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- MyErrorHandler eh = new MyErrorHandler();
- docBuilder.setErrorHandler(eh);
-
- Document document = docBuilder.parse(userXmlFile);
- Element user = (Element) document.getElementsByTagName("FirstName").item(0);
- // Set schema after parsing userInfo.xml. Otherwise it will conflict
- // with DTD validation.
- dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
- DocumentBuilder docBuilder1 = dbf.newDocumentBuilder();
- docBuilder1.setErrorHandler(eh);
- Document accDocument = docBuilder1.parse(accountXmlFile);
-
- Element firstName = (Element) accDocument
- .getElementsByTagNameNS(PORTAL_ACCOUNT_NS, "FirstName").item(0);
- Element adoptedAccount = (Element) accDocument.adoptNode(user);
+ MyDOMOutput mydomoutput = new MyDOMOutput();
+ mydomoutput.setByteStream(System.out);
- Element parent = (Element) firstName.getParentNode();
- parent.replaceChild(adoptedAccount, firstName);
+ writer.write(document, mydomoutput);
+ writer.write(accDocument, mydomoutput);
- DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
- DOMImplementationLS impl = (DOMImplementationLS) registry.getDOMImplementation("LS");
- LSSerializer writer = impl.createLSSerializer();
-
- MyDOMOutput mydomoutput = new MyDOMOutput();
- mydomoutput.setByteStream(System.out);
-
- writer.write(document, mydomoutput);
- writer.write(accDocument, mydomoutput);
-
- assertFalse(eh.isAnyError());
- } catch (ParserConfigurationException | SAXException | IOException
- | ClassNotFoundException | InstantiationException
- | IllegalAccessException | ClassCastException e) {
- failUnexpected(e);
- }
+ assertFalse(eh.isAnyError());
}
/**
* Checking for Row 8 from the schema table when setting the schemaSource
* without the schemaLanguage must report an error.
+ *
+ * @throws Exception If any errors occur.
*/
@Test(expectedExceptions = IllegalArgumentException.class)
- public void testUserError() throws IllegalArgumentException {
- System.out.println("Creating an error in user account");
-
+ public void testUserError() throws Exception {
String xmlFile = XML_DIR + "userInfo.xml";
String schema = "http://java.sun.com/xml/jaxp/properties/schemaSource";
String schemaValue = "http://dummy.com/dummy.xsd";
-
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- dbf.setValidating(true);
- dbf.setAttribute(schema, schemaValue);
-
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- MyErrorHandler eh = new MyErrorHandler();
- docBuilder.setErrorHandler(eh);
- Document document = docBuilder.parse(xmlFile);
- assertFalse(eh.isAnyError());
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
+
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ dbf.setValidating(true);
+ dbf.setAttribute(schema, schemaValue);
+
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ MyErrorHandler eh = new MyErrorHandler();
+ docBuilder.setErrorHandler(eh);
+ docBuilder.parse(xmlFile);
+ assertFalse(eh.isAnyError());
}
/**
@@ -288,10 +258,12 @@
* @see screenName.xml has prefix of
* userName is bound to "http://hibid.com/user" namespace normalization
* will create a namespace of prefix us and attach userEmail.
+ *
+ * @throws Exception If any errors occur.
*/
@Test
- public void testCheckScreenNameExists() {
- String resultFile = CLASS_DIR + "screenName.out";
+ public void testCheckScreenNameExists() throws Exception {
+ String resultFile = USER_DIR + "screenName.out";
String xmlFile = XML_DIR + "screenName.xml";
String goldFile = GOLDEN_DIR + "screenNameGold.xml";
@@ -318,21 +290,7 @@
MyDOMOutput domoutput = new MyDOMOutput();
domoutput.setByteStream(output);
writer.write(document, domoutput);
-
- assertTrue(compareDocumentWithGold(goldFile, resultFile));
- } catch (ClassNotFoundException | InstantiationException
- | IllegalAccessException | ClassCastException | IOException
- | ParserConfigurationException | SAXException e) {
- failUnexpected(e);
- } finally {
- try {
- Path resultPath = Paths.get(resultFile);
- if (Files.exists(resultPath)) {
- Files.delete(resultPath);
- }
- } catch (IOException ex) {
- failCleanup(ex, resultFile);
- }
}
+ assertTrue(compareDocumentWithGold(goldFile, resultFile));
}
}
--- old/test/javax/xml/jaxp/libs/javax/xml/transform/ptests/MyContentHandler.java 2015-01-09 15:41:31.604109027 -0800
+++ new/test/javax/xml/jaxp/libs/javax/xml/transform/ptests/MyContentHandler.java 2015-01-09 15:41:31.529108910 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
--- old/test/javax/xml/jaxp/libs/javax/xml/transform/ptests/TransformerTestConst.java 2015-01-09 15:41:31.933109540 -0800
+++ new/test/javax/xml/jaxp/libs/javax/xml/transform/ptests/TransformerTestConst.java 2015-01-09 15:41:31.856109420 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,40 +23,22 @@
package javax.xml.transform.ptests;
import static jaxp.library.JAXPTestUtilities.FILE_SEP;
-import static jaxp.library.JAXPTestUtilities.USER_DIR;
+import static jaxp.library.JAXPTestUtilities.getPathByClassName;
/**
* This is the Base test class provide basic support for JAXP functional test
*/
public class TransformerTestConst {
/**
- * Current test directory.
+ * XML source file directory.
*/
- public static final String CLASS_DIR
- = System.getProperty("test.classes", ".") + FILE_SEP;
+ public static final String XML_DIR = getPathByClassName(TransformerTestConst.class,
+ ".." + FILE_SEP + "xmlfiles");
+
/**
- * Package name that separates by slash.
+ * Golden validation files directory.
*/
- public static final String PACKAGE_NAME = FILE_SEP +
- TransformerTestConst.class.getPackage().getName().replaceAll("[.]", FILE_SEP);
-
- /**
- * Test base directory. Every package has its own test package directory.
- */
- public static final String BASE_DIR
- = System.getProperty("test.src", USER_DIR).replaceAll("\\" + System.getProperty("file.separator"), "/")
- + PACKAGE_NAME + FILE_SEP + "..";
-
- /**
- * Source XML file directory.
- */
- public static final String XML_DIR = BASE_DIR + FILE_SEP + "xmlfiles" + FILE_SEP;
-
- /**
- * Golden output file directory. We pre-define all expected output in golden
- * output file. Test verifies whether the standard output is same as content
- * of golden file.
- */
- public static final String GOLDEN_DIR = XML_DIR + FILE_SEP + "out" + FILE_SEP;
+ public static final String GOLDEN_DIR = getPathByClassName(TransformerTestConst.class,
+ ".." + FILE_SEP + "xmlfiles" + FILE_SEP + "out");
}
--- old/test/javax/xml/jaxp/libs/javax/xml/xpath/ptests/XPathTestConst.java 2015-01-09 15:41:32.289110095 -0800
+++ new/test/javax/xml/jaxp/libs/javax/xml/xpath/ptests/XPathTestConst.java 2015-01-09 15:41:32.213109977 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,27 +23,15 @@
package javax.xml.xpath.ptests;
import static jaxp.library.JAXPTestUtilities.FILE_SEP;
-import static jaxp.library.JAXPTestUtilities.USER_DIR;
+import static jaxp.library.JAXPTestUtilities.getPathByClassName;
/**
* This is the Base test class provide basic support for XPath functional test
*/
public class XPathTestConst {
/**
- * Package name that separates by slash.
+ * XML source file directory.
*/
- public static final String PACKAGE_NAME = FILE_SEP +
- XPathTestConst.class.getPackage().getName().replaceAll("[.]", FILE_SEP);
-
- /**
- * Test base directory. Every package has its own test package directory.
- */
- public static final String BASE_DIR
- = System.getProperty("test.src", USER_DIR).replaceAll("\\" + System.getProperty("file.separator"), "/")
- + PACKAGE_NAME + FILE_SEP + "..";
-
- /**
- * Source XML file directory.
- */
- public static final String XML_DIR = BASE_DIR + FILE_SEP + "xmlfiles" + FILE_SEP;
+ public static final String XML_DIR = getPathByClassName(XPathTestConst.class,
+ ".." + FILE_SEP + "xmlfiles");
}
--- old/test/javax/xml/jaxp/libs/jaxp/library/JAXPTestUtilities.java 2015-01-09 15:41:32.659110672 -0800
+++ new/test/javax/xml/jaxp/libs/jaxp/library/JAXPTestUtilities.java 2015-01-09 15:41:32.551110504 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 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
@@ -23,21 +23,34 @@
package jaxp.library;
import java.io.ByteArrayInputStream;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.io.StringWriter;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.nio.charset.UnsupportedCharsetException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.regex.Pattern;
import java.util.stream.Collectors;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
import static org.testng.Assert.fail;
import org.w3c.dom.Document;
+import org.w3c.dom.Node;
import org.xml.sax.SAXException;
/**
@@ -59,16 +72,19 @@
* Windows platform.
*/
public static final String FILE_SEP = "/";
-
+
/**
- * User home.
+ * Current test directory.
*/
- public static final String USER_DIR = System.getProperty("user.dir", ".");
+ public static final String USER_DIR =
+ System.getProperty("user.dir", ".") + FILE_SEP;;
/**
- * TEMP file directory.
+ * A map storing every test's current test file pointer. File number should
+ * be incremental and it's a thread-safe reading on this file number.
*/
- public static final String TEMP_DIR = System.getProperty("java.io.tmpdir", ".");
+ private static final ConcurrentHashMap currentFileNumber
+ = new ConcurrentHashMap<>();
/**
* BOM table for storing BOM header.
@@ -88,36 +104,84 @@
/**
* Compare contents of golden file with test output file line by line.
- * return true if they're identical.
+ * return true if they're identical.
* @param goldfile Golden output file name
* @param outputfile Test output file name
* @return true if two files are identical.
* false if two files are not identical.
- * @throws IOException if an I/O error occurs reading from the file or a
- * malformed or unmappable byte sequence is read
+ * @throws IOException if an I/O error occurs reading from the file or a
+ * malformed or unmappable byte sequence is read.
*/
public static boolean compareWithGold(String goldfile, String outputfile)
throws IOException {
+ return compareWithGold(goldfile, outputfile, StandardCharsets.UTF_8);
+ }
+
+ /**
+ * Compare contents of golden file with test output file line by line.
+ * return true if they're identical.
+ * @param goldfile Golden output file name.
+ * @param outputfile Test output file name.
+ * @param cs the charset to use for decoding.
+ * @return true if two files are identical.
+ * false if two files are not identical.
+ * @throws IOException if an I/O error occurs reading from the file or a
+ * malformed or unmappable byte sequence is read.
+ */
+ public static boolean compareWithGold(String goldfile, String outputfile,
+ Charset cs) throws IOException {
return Files.readAllLines(Paths.get(goldfile)).
- equals(Files.readAllLines(Paths.get(outputfile)));
+ equals(Files.readAllLines(Paths.get(outputfile), cs));
+ }
+
+ /**
+ * Compare contents of golden file with test output list line by line.
+ * return true if they're identical.
+ * @param goldfile Golden output file name.
+ * @param lines test output list.
+ * @return true if file's content is identical to given list.
+ * false if file's content is not identical to given list.
+ * @throws IOException if an I/O error occurs reading from the file or a
+ * malformed or unmappable byte sequence is read
+ */
+ public static boolean compareLinesWithGold(String goldfile, List lines)
+ throws IOException {
+ return Files.readAllLines(Paths.get(goldfile)).equals(lines);
+ }
+
+ /**
+ * Compare contents of golden file with a test output string.
+ * return true if they're identical.
+ * @param goldfile Golden output file name.
+ * @param string test string.
+ * @return true if file's content is identical to given string.
+ * false if file's content is not identical to given string.
+ * @throws IOException if an I/O error occurs reading from the file or a
+ * malformed or unmappable byte sequence is read
+ */
+ public static boolean compareStringWithGold(String goldfile, String string)
+ throws IOException {
+ return Files.readAllLines(Paths.get(goldfile)).stream().collect(
+ Collectors.joining(System.getProperty("line.separator")))
+ .equals(string);
}
/**
* Compare contents of golden file with test output file by their document
- * representation.
- * Here we ignore the white space and comments. return true if they're
- * lexical identical.
+ * representation.
+ * Here we ignore the white space and comments. return true if they're
+ * lexical identical.
* @param goldfile Golden output file name.
* @param resultFile Test output file name.
* @return true if two file's document representation are identical.
* false if two file's document representation are not identical.
- * @throws javax.xml.parsers.ParserConfigurationException if the
+ * @throws javax.xml.parsers.ParserConfigurationException if the
* implementation is not available or cannot be instantiated.
* @throws SAXException If any parse errors occur.
- * @throws IOException if an I/O error occurs reading from the file or a
- * malformed or unmappable byte sequence is read .
+ * @throws IOException if an I/O error occurs reading from the file or a
+ * malformed or unmappable byte sequence is read .
*/
- public static boolean compareDocumentWithGold(String goldfile, String resultFile)
+ public static boolean compareDocumentWithGold(String goldfile, String resultFile)
throws ParserConfigurationException, SAXException, IOException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
@@ -132,19 +196,48 @@
resultD.normalizeDocument();
return goldD.isEqualNode(resultD);
}
+
/**
- * Convert stream to ByteArrayInputStream by given character set.
+ * Compare contents of golden file with the serialization represent by given
+ * DOM node.
+ * Here we ignore the white space and comments. return true if they're
+ * lexical identical.
+ * @param goldfile Golden output file name.
+ * @param node A DOM node instance.
+ * @return true if file's content is identical to given node's serialization
+ * represent.
+ * false if file's content is not identical to given node's
+ * serialization represent.
+ * @throws TransformerException If an unrecoverable error occurs during the
+ * course of the transformation..
+ * @throws IOException if an I/O error occurs reading from the file or a
+ * malformed or unmappable byte sequence is read .
+ */
+ public static boolean compareSerializeDOMWithGold(String goldfile, Node node)
+ throws TransformerException, IOException {
+ TransformerFactory factory = TransformerFactory.newInstance();
+ // Use identity transformer to serialize
+ Transformer identityTransformer = factory.newTransformer();
+ StringWriter sw = new StringWriter();
+ StreamResult streamResult = new StreamResult(sw);
+ DOMSource nodeSource = new DOMSource(node);
+ identityTransformer.transform(nodeSource, streamResult);
+ return compareStringWithGold(goldfile, sw.toString());
+ }
+
+ /**
+ * Convert stream to ByteArrayInputStream by given character set.
* @param charset target character set.
* @param file a file that contains no BOM head content.
* @return a ByteArrayInputStream contains BOM heads and bytes in original
* stream
- * @throws IOException I/O operation failed or unsupported character set.
+ * @throws IOException I/O operation failed or unsupported character set.
*/
public static InputStream bomStream(String charset, String file)
throws IOException {
String localCharset = charset;
if (charset.equals("UTF-16") || charset.equals("UTF-32")) {
- localCharset
+ localCharset
+= ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN ? "BE" : "LE";
}
if (!bom.containsKey(localCharset))
@@ -158,10 +251,40 @@
bb.put(content);
return new ByteArrayInputStream(bb.array());
}
+
+ /**
+ * Worker method to detect common absolute URLs.
+ *
+ * @param s String path\filename or URL (or any, really)
+ * @return true if s starts with a common URI scheme (namely
+ * the ones found in the examples of RFC2396); false otherwise
+ */
+ protected static boolean isCommonURL(String s) {
+ if (null == s)
+ return false;
+ return Pattern.compile("^(file:|http:|ftp:|gopher:|mailto:|news:|telnet:)")
+ .matcher(s).matches();
+ }
+
+ /**
+ * Utility method to translate a String filename to URL.
+ *
+ * If the name starts with a common URI scheme (namely the ones
+ * found in the examples of RFC2396), then simply return the
+ * name as-is (the assumption is that it's already a URL).
+ * Otherwise we attempt (cheaply) to convert to a file:/ URL.
+ *
+ * @param filename local path/filename of a file.
+ * @return a file:/ URL if filename represent a file, the same string if
+ * it appears to already be a URL.
+ */
+ public static String filenameToURL(String filename) {
+ return Paths.get(filename).toUri().toASCIIString();
+ }
/**
* Prints error message if an exception is thrown
- * @param ex The exception is thrown by test.
+ * @param ex The exception is thrown by test.
*/
public static void failUnexpected(Throwable ex) {
fail(ERROR_MSG_HEADER, ex);
@@ -169,10 +292,44 @@
/**
* Prints error message if an exception is thrown when clean up a file.
- * @param ex The exception is thrown in cleaning up a file.
- * @param name Cleaning up file name.
+ * @param ex The exception is thrown in cleaning up a file.
+ * @param name Cleaning up file name.
*/
public static void failCleanup(IOException ex, String name) {
fail(String.format(ERROR_MSG_CLEANUP, name), ex);
}
+
+ /**
+ * Retrieve next test output file name. This method is a thread-safe method.
+ * @param clazz test class.
+ * @return next test output file name.
+ */
+ public static String getNextFile(Class clazz) {
+ int nextNumber = currentFileNumber.contains(clazz)
+ ? currentFileNumber.get(clazz) + 1 : 1;
+ Integer i = currentFileNumber.putIfAbsent(clazz, nextNumber);
+ if (i != null && i != nextNumber) {
+ do {
+ nextNumber = currentFileNumber.get(clazz) + 1;
+ } while (currentFileNumber.replace(clazz, nextNumber -1, nextNumber));
+ }
+ return USER_DIR + clazz.getName() + nextNumber + ".out";
+ }
+
+ /**
+ * Acquire a full path string by given class name and relative path string.
+ * @param clazz Class name for the test.
+ * @param relativeDir relative path between java source file and expected
+ * path.
+ * @return a string represents the full path of accessing path.
+ */
+ public static String getPathByClassName(Class clazz, String relativeDir) {
+ String packageName = FILE_SEP +
+ clazz.getPackage().getName().replaceAll("[.]", FILE_SEP);
+ String javaSourcePath = System.getProperty("test.src").replaceAll("\\" + File.separator, FILE_SEP)
+ + packageName + FILE_SEP;
+ String normalizedPath = Paths.get(javaSourcePath, relativeDir).normalize().
+ toAbsolutePath().toString();
+ return normalizedPath.replace("\\", FILE_SEP) + FILE_SEP;
+ }
}
--- old/test/javax/xml/jaxp/libs/org/xml/sax/ptests/SAXTestConst.java 2015-01-09 15:41:33.012111223 -0800
+++ new/test/javax/xml/jaxp/libs/org/xml/sax/ptests/SAXTestConst.java 2015-01-09 15:41:32.935111102 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -23,7 +23,7 @@
package org.xml.sax.ptests;
import static jaxp.library.JAXPTestUtilities.FILE_SEP;
-import static jaxp.library.JAXPTestUtilities.USER_DIR;
+import static jaxp.library.JAXPTestUtilities.getPathByClassName;
/**
* This is the Base test class provide basic support for JAXP SAX functional
@@ -32,33 +32,15 @@
*/
public class SAXTestConst {
/**
- * Current test directory.
+ * XML source file directory.
*/
- public static final String CLASS_DIR
- = System.getProperty("test.classes", ".") + FILE_SEP;
+ public static final String XML_DIR = getPathByClassName(SAXTestConst.class,
+ ".." + FILE_SEP + "xmlfiles");
+
/**
- * Package name that separates by slash.
+ * Golden validation files directory.
*/
- public static final String PACKAGE_NAME = FILE_SEP +
- SAXTestConst.class.getPackage().getName().replaceAll("[.]", FILE_SEP);
-
- /**
- * Test base directory. Every package has its own test package directory.
- */
- public static final String BASE_DIR
- = System.getProperty("test.src", USER_DIR).replaceAll("\\" + System.getProperty("file.separator"), "/")
- + PACKAGE_NAME + FILE_SEP + "..";
-
- /**
- * Source XML file directory.
- */
- public static final String XML_DIR = BASE_DIR + FILE_SEP + "xmlfiles" + FILE_SEP;
-
- /**
- * Golden output file directory. We pre-define all expected output in golden
- * output file. Test verifies whether the standard output is same as content
- * of golden file.
- */
- public static final String GOLDEN_DIR = XML_DIR + FILE_SEP + "out" + FILE_SEP;
+ public static final String GOLDEN_DIR = getPathByClassName(SAXTestConst.class,
+ ".." + FILE_SEP + "xmlfiles" + FILE_SEP + "out");
}
--- old/test/javax/xml/jaxp/libs/test/auctionportal/HiBidConstants.java 2015-01-09 15:41:33.360111765 -0800
+++ new/test/javax/xml/jaxp/libs/test/auctionportal/HiBidConstants.java 2015-01-09 15:41:33.283111645 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,44 +22,21 @@
*/
package test.auctionportal;
-import static jaxp.library.JAXPTestUtilities.FILE_SEP;
-import static jaxp.library.JAXPTestUtilities.USER_DIR;
+import static jaxp.library.JAXPTestUtilities.getPathByClassName;
/**
* This is the Base test class provide basic support for Auction portal test.
*/
public class HiBidConstants {
/**
- * Current test directory.
+ * XML source file directory.
*/
- public static final String CLASS_DIR
- = System.getProperty("test.classes", ".") + FILE_SEP;
+ public static final String XML_DIR = getPathByClassName(HiBidConstants.class, "content");
/**
- * Package name that separates by slash.
+ * Golden validation files directory.
*/
- public static final String PACKAGE_NAME = FILE_SEP +
- HiBidConstants.class.getPackage().getName().replaceAll("[.]", FILE_SEP);
-
-
- /**
- * Java source directory.
- */
- public static final String SRC_DIR = System.getProperty("test.src", USER_DIR)
- .replaceAll("\\" + System.getProperty("file.separator"), "/")
- + PACKAGE_NAME + FILE_SEP;
-
- /**
- * Source XML file directory.
- */
- public static final String XML_DIR = SRC_DIR + "content" + FILE_SEP;
-
- /**
- * Golden output file directory.
- * We pre-define all expected output in golden output file. Test verifies
- * whether the standard output is same as content of golden file.
- */
- public static final String GOLDEN_DIR = SRC_DIR + "golden" + FILE_SEP;
+ public static final String GOLDEN_DIR = getPathByClassName(HiBidConstants.class, "golden");
/**
* Name space for account operation.
--- old/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactory01.java 2015-01-09 15:41:33.742112361 -0800
+++ /dev/null 2014-09-08 10:45:56.830930409 -0700
@@ -1,451 +0,0 @@
-/*
- * Copyright (c) 2014, 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.parsers.ptests;
-
-import static jaxp.library.JAXPTestUtilities.FILE_SEP;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileReader;
-import java.io.IOException;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.testng.annotations.Test;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * This checks the methods of DocumentBuilderFactoryImpl
- */
-public class DocumentBuilderFactory01 {
- /**
- * Testcase to test the default functionality of schema support method.
- */
- @Test
- public void testCheckSchemaSupport1() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setValidating(true);
- dbf.setNamespaceAware(true);
- dbf.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
- MyErrorHandler eh = MyErrorHandler.newInstance();
- DocumentBuilder db = dbf.newDocumentBuilder();
- db.setErrorHandler(eh);
- Document doc = db.parse(new File(TestUtils.XML_DIR, "test.xml"));
- assertFalse(eh.errorOccured);
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
- }
-
- /**
- * Testcase to test the default functionality of schema support method. In
- * this case the schema source property is set.
- */
- @Test
- public void testCheckSchemaSupport2() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setValidating(true);
- dbf.setNamespaceAware(true);
- dbf.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
- dbf.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaSource", new InputSource(new FileInputStream(
- new File(TestUtils.XML_DIR, "test.xsd"))));
- MyErrorHandler eh = MyErrorHandler.newInstance();
- DocumentBuilder db = dbf.newDocumentBuilder();
- db.setErrorHandler(eh);
- Document doc = db.parse(new File(TestUtils.XML_DIR, "test1.xml"));
- assertFalse(eh.errorOccured);
- } catch (IllegalArgumentException | ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
-
- }
-
- /**
- * Testcase to test the default functionality of schema support method. In
- * this case the schema source property is set.
- */
- @Test
- public void testCheckSchemaSupport3() {
- try {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- spf.setValidating(true);
- spf.setNamespaceAware(true);
- SAXParser sp = spf.newSAXParser();
- sp.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
- sp.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource",
- new InputSource(new FileInputStream(new File(TestUtils.XML_DIR, "test.xsd"))));
- DefaultHandler dh = new DefaultHandler();
- sp.parse(new File(TestUtils.XML_DIR, "test1.xml"), dh);
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
- }
-
- /**
- * Testcase to test the default functionality of newInstance method. To test
- * the isCoalescing method and setCoalescing This checks to see if the CDATA
- * and text nodes got combined In that case it will print "<xml>This
- * is not parsed</xml> yet".
- */
- @Test
- public void testCheckDocumentBuilderFactory02() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setCoalescing(true);
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- Document doc = docBuilder.parse(new File(TestUtils.XML_DIR, "DocumentBuilderFactory01.xml"));
- Element e = (Element) doc.getElementsByTagName("html").item(0);
- NodeList nl = e.getChildNodes();
- assertEquals(nl.item(0).getNodeValue().trim(), "This is not parsed yet");
- } catch (IOException | SAXException | ParserConfigurationException e) {
- failUnexpected(e);
- }
- }
-
- /**
- * Testcase to test the isIgnoringComments. By default it is false.
- */
- @Test
- public void testCheckDocumentBuilderFactory03() {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- assertFalse(dbf.isIgnoringComments());
- }
-
- /**
- * Testcase to test the isValidating. By default it is false, set it to true
- * and then use a document which is not valid. It should throw a warning or
- * an error at least. The test passes in case retval 0 is set in the error
- * method .
- */
- @Test
- public void testCheckDocumentBuilderFactory04() {
- try {
- MyErrorHandler eh = MyErrorHandler.newInstance();
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setValidating(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- db.setErrorHandler(eh);
- Document doc = db.parse(new File(TestUtils.XML_DIR, "DocumentBuilderFactory05.xml"));
- assertTrue(eh.errorOccured);
- } catch (ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
- }
- }
-
- /**
- * Testcase to test the setValidating. By default it is false, use a
- * document which is not valid. It should not throw a warning or an error.
- * The test passes in case the retval equals 1 .
- */
- @Test
- public void testCheckDocumentBuilderFactory16() {
- try {
- MyErrorHandler eh = MyErrorHandler.newInstance();
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- DocumentBuilder db = dbf.newDocumentBuilder();
- db.setErrorHandler(eh);
- Document doc = db.parse(new File(TestUtils.XML_DIR, "DocumentBuilderFactory05.xml"));
- assertFalse(eh.errorOccured);
- } catch (ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
- }
-
- }
-
- /**
- * Testcase to test the setValidating. By default it is false, use a
- * document which is valid. It should not throw a warning or an error. The
- * test passes in case the retval equals 1.
- */
- @Test
- public void testCheckDocumentBuilderFactory17() {
- try {
- MyErrorHandler eh = MyErrorHandler.newInstance();
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- DocumentBuilder db = dbf.newDocumentBuilder();
- db.setErrorHandler(eh);
- Document doc = db.parse(new File(TestUtils.XML_DIR, "DocumentBuilderFactory04.xml"));
- assertFalse(eh.errorOccured);
- } catch (ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
- }
-
- }
-
- /**
- * To test the isExpandEntityReferences. By default it is true.
- */
- @Test
- public void testCheckDocumentBuilderFactory05() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- Document doc = docBuilder.parse(new FileInputStream(new File(TestUtils.XML_DIR, "DocumentBuilderFactory02.xml")));
- Element e = (Element) doc.getElementsByTagName("title").item(0);
- NodeList nl = e.getChildNodes();
- assertTrue(dbf.isExpandEntityReferences());
- assertEquals(nl.item(0).getNodeValue().trim().charAt(0), 'W');
- } catch (ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
- }
- }
-
- /**
- * Testcase to test the default functionality of setValidating method. The
- * xml file has a DTD which has namespaces defined. The parser takes care to
- * check if the namespaces using elements and defined attributes are there
- * or not.
- */
- @Test
- public void testCheckDocumentBuilderFactory06() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setValidating(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- MyErrorHandler eh = MyErrorHandler.newInstance();
- db.setErrorHandler(eh);
- Document doc = db.parse(new File(TestUtils.XML_DIR, "DocumentBuilderFactory04.xml"));
- assertTrue(doc instanceof Document);
- assertFalse(eh.errorOccured);
- } catch (ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
- }
-
- }
-
- /**
- * Testcase to test the setExpandEntityReferences.
- */
- @Test
- public void testCheckDocumentBuilderFactory07() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setExpandEntityReferences(true);
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- Document doc = docBuilder.parse(new FileInputStream(new File(TestUtils.XML_DIR, "DocumentBuilderFactory02.xml")));
- Element e = (Element) doc.getElementsByTagName("title").item(0);
- NodeList nl = e.getChildNodes();
- assertTrue(dbf.isExpandEntityReferences());
- assertEquals(nl.item(0).getNodeValue().trim().charAt(0), 'W');
- } catch (ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
- }
- }
-
- /**
- * Testcase to test the setExpandEntityReferences.
- */
- @Test
- public void testCheckDocumentBuilderFactory08() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setExpandEntityReferences(false);
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- Document doc = docBuilder.parse(new FileInputStream(new File(TestUtils.XML_DIR, "DocumentBuilderFactory02.xml")));
- Element e = (Element) doc.getElementsByTagName("title").item(0);
- NodeList nl = e.getChildNodes();
- assertNull(nl.item(0).getNodeValue());
- } catch (ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
- }
- }
-
- /**
- * Testcase to test the setIgnoringComments. By default it is set to false.
- * explicitly setting it to false, it recognizes the comment which is in
- * Element Node Hence the Element's child node is not null.
- */
- @Test
- public void testCheckDocumentBuilderFactory09() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setIgnoringComments(false);
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- Document doc = docBuilder.parse(new FileInputStream(new File(TestUtils.XML_DIR, "DocumentBuilderFactory07.xml")));
- Element e = (Element) doc.getElementsByTagName("body").item(0);
- NodeList nl = e.getChildNodes();
- assertNotNull(nl.item(0).getNodeValue());
- } catch (ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
- }
-
- }
-
- /**
- * This tests for the parse(InputSource).
- */
- @Test
- public void testCheckDocumentBuilderFactory10() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- Document doc = docBuilder.parse(new InputSource(new BufferedReader(new FileReader(new File(TestUtils.XML_DIR, "DocumentBuilderFactory07.xml")))));
- assertTrue(doc instanceof Document);
- } catch (IllegalArgumentException | ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
- }
- }
-
- /**
- * This tests for the parse InputStream with SystemID as a second parameter.
- */
- @Test
- public void testCheckDocumentBuilderFactory11() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- Document doc = docBuilder.parse(new FileInputStream(new File(TestUtils.XML_DIR, "dbf10import.xsl")), new File(TestUtils.XML_DIR).toURI()
- .toASCIIString());
- assertTrue(doc instanceof Document);
- } catch (IllegalArgumentException | ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
- }
- }
-
- /**
- * This tests for the parse InputStream with empty SystemID as a second
- * parameter.
- */
- @Test
- public void testCheckDocumentBuilderFactory12() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- Document doc = docBuilder.parse(new FileInputStream(new File(TestUtils.XML_DIR, "dbf10import.xsl")), " ");
- assertTrue(doc instanceof Document);
- } catch (IllegalArgumentException | ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
- }
- }
-
- /**
- * This tests for the parse(uri).
- */
- @Test
- public void testCheckDocumentBuilderFactory13() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- Document doc = docBuilder.parse(new File(TestUtils.XML_DIR + FILE_SEP + "dbf10import.xsl").toURI().toASCIIString());
- assertTrue(doc instanceof Document);
- } catch (IllegalArgumentException | ParserConfigurationException | IOException | SAXException e) {
- failUnexpected(e);
- }
- }
-
- /**
- * This tests for the parse (uri) with empty string as parameter should
- * throw Sax Exception.
- *
- * @throws SAXException
- * If any parse errors occur.
- */
- @Test(expectedExceptions = SAXException.class)
- public void testCheckDocumentBuilderFactory14() throws SAXException {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- docBuilder.parse("");
- } catch (ParserConfigurationException | IOException e) {
- failUnexpected(e);
- }
- }
-
- /**
- * This tests for the parse (uri) with null uri as parameter should throw
- * IllegalArgumentException.
- *
- */
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testCheckDocumentBuilderFactory15() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- String uri = null;
- docBuilder.parse(uri);
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
- }
-
- /**
- * Testcase to test the setIgnoringComments. By default it is set to false,
- * setting this to true, It does not recognize the comment, Here the
- * nodelist has a length 0 because the ignoring comments is true.
- */
- @Test
- public void testCheckIgnoringComments() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setIgnoringComments(true);
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- Document doc = docBuilder.parse(new FileInputStream(new File(TestUtils.XML_DIR, "DocumentBuilderFactory08.xml")));
- Element e = (Element) doc.getElementsByTagName("body").item(0);
- NodeList nl = e.getChildNodes();
- assertEquals(nl.getLength(), 0);
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
-
- }
-
- /**
- * Testcase to test the default behaviour of setIgnoringComments. By default
- * it is set to false, this is similar to case 9 but not setIgnoringComments
- * explicitly, it does not recognize the comment.
- */
- @Test
- public void testCheckIgnoringComments1() {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder = dbf.newDocumentBuilder();
- Document doc = docBuilder.parse(new FileInputStream(new File(TestUtils.XML_DIR, "DocumentBuilderFactory07.xml")));
- Element e = (Element) doc.getElementsByTagName("body").item(0);
- NodeList nl = e.getChildNodes();
- assertFalse(dbf.isIgnoringComments());
- assertNotNull(nl.item(0).getNodeValue());
- } catch (ParserConfigurationException | SAXException | IOException e) {
- failUnexpected(e);
- }
- }
-}
--- /dev/null 2014-09-08 10:45:56.830930409 -0700
+++ new/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactoryTest.java 2015-01-09 15:41:33.621112172 -0800
@@ -0,0 +1,462 @@
+/*
+ * 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.parsers.ptests;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FilePermission;
+import java.io.FileReader;
+import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import static javax.xml.parsers.ptests.ParserTestConst.GOLDEN_DIR;
+import static javax.xml.parsers.ptests.ParserTestConst.XML_DIR;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.sax.SAXResult;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
+import static jaxp.library.JAXPTestUtilities.compareWithGold;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+import org.testng.annotations.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * This checks the methods of DocumentBuilderFactoryImpl.
+ */
+public class DocumentBuilderFactoryTest extends JAXPFileBaseTest {
+ /**
+ * Test the default functionality of schema support method.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckSchemaSupport1() throws Exception {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setValidating(true);
+ dbf.setNamespaceAware(true);
+ dbf.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage",
+ W3C_XML_SCHEMA_NS_URI);
+ MyErrorHandler eh = MyErrorHandler.newInstance();
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ db.setErrorHandler(eh);
+ db.parse(new File(XML_DIR, "test.xml"));
+ assertFalse(eh.isErrorOccured());
+ }
+
+ /**
+ * Test the default functionality of schema support method. In
+ * this case the schema source property is set.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckSchemaSupport2() throws Exception {
+ try (FileInputStream fis = new FileInputStream(new File(
+ XML_DIR, "test.xsd"))) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setValidating(true);
+ dbf.setNamespaceAware(true);
+ dbf.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage",
+ W3C_XML_SCHEMA_NS_URI);
+ dbf.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaSource",
+ new InputSource(fis));
+ MyErrorHandler eh = MyErrorHandler.newInstance();
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ db.setErrorHandler(eh);
+ db.parse(new File(XML_DIR, "test1.xml"));
+ assertFalse(eh.isErrorOccured());
+ }
+ }
+
+ /**
+ * Test the default functionality of schema support method. In
+ * this case the schema source property is set.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckSchemaSupport3() throws Exception {
+ try (FileInputStream fis = new FileInputStream(new File(
+ XML_DIR, "test.xsd"))) {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setNamespaceAware(true);
+ spf.setValidating(true);
+ spf.setNamespaceAware(true);
+ SAXParser sp = spf.newSAXParser();
+ sp.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage",
+ W3C_XML_SCHEMA_NS_URI);
+ sp.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource",
+ new InputSource(fis));
+ DefaultHandler dh = new DefaultHandler();
+ // Not expect any unrecoverable error here.
+ sp.parse(new File(XML_DIR, "test1.xml"), dh);
+ }
+ }
+
+ /**
+ * Test the default functionality of newInstance method. To test
+ * the isCoalescing method and setCoalescing This checks to see if the CDATA
+ * and text nodes got combined In that case it will print "<xml>This
+ * is not parsed</xml> yet".
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory02() throws Exception {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setCoalescing(true);
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ Document doc = docBuilder.parse(new File(XML_DIR, "DocumentBuilderFactory01.xml"));
+ Element e = (Element) doc.getElementsByTagName("html").item(0);
+ NodeList nl = e.getChildNodes();
+ assertEquals(nl.getLength(), 1);
+ }
+
+ /**
+ * Test the isIgnoringComments. By default it is false.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory03() {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ assertFalse(dbf.isIgnoringComments());
+ }
+
+ /**
+ * Test the isValidating. By default it is false, set it to true and then
+ * use a document which is not valid. It should throw a warning or
+ * an error at least. The test passes in case retval 0 is set in the error
+ * method .
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory04() throws Exception {
+ MyErrorHandler eh = MyErrorHandler.newInstance();
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setValidating(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ db.setErrorHandler(eh);
+ db.parse(new File(XML_DIR, "DocumentBuilderFactory05.xml"));
+ assertTrue(eh.isErrorOccured());
+ }
+
+ /**
+ * Test the setValidating. By default it is false, use a
+ * document which is not valid. It should not throw a warning or an error.
+ * The test passes in case the return value equals 1.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory16() throws Exception {
+ MyErrorHandler eh = MyErrorHandler.newInstance();
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ db.setErrorHandler(eh);
+ db.parse(new File(XML_DIR, "DocumentBuilderFactory05.xml"));
+ assertFalse(eh.isErrorOccured());
+ }
+
+ /**
+ * Test the setValidating. By default it is false, use a
+ * document which is valid. It should not throw a warning or an error. The
+ * test passes in case the return value equals 1.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory17() throws Exception {
+ MyErrorHandler eh = MyErrorHandler.newInstance();
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ db.setErrorHandler(eh);
+ db.parse(new File(XML_DIR, "DocumentBuilderFactory04.xml"));
+ assertFalse(eh.isErrorOccured());
+ }
+
+ /**
+ * Test the isExpandEntityReferences. By default it is true.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory05() throws Exception {
+ try(FileInputStream fis = new FileInputStream(new File(
+ XML_DIR, "DocumentBuilderFactory02.xml"))) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ Document doc = docBuilder.parse(fis);
+ Element e = (Element) doc.getElementsByTagName("title").item(0);
+ NodeList nl = e.getChildNodes();
+ assertTrue(dbf.isExpandEntityReferences());
+ assertEquals(nl.item(0).getNodeValue().trim().charAt(0), 'W');
+ }
+ }
+
+ /**
+ * Test the default functionality of setValidating method. The
+ * XML file has a DTD which has namespaces defined. The parser takes care to
+ * check if the namespaces using elements and defined attributes are there
+ * or not.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory06() throws Exception {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setValidating(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ MyErrorHandler eh = MyErrorHandler.newInstance();
+ db.setErrorHandler(eh);
+ Document doc = db.parse(new File(XML_DIR, "DocumentBuilderFactory04.xml"));
+ assertTrue(doc instanceof Document);
+ assertFalse(eh.isErrorOccured());
+ }
+
+ /**
+ * Test the setExpandEntityReferences.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory07() throws Exception {
+ try (FileInputStream fis = new FileInputStream(new File(
+ XML_DIR, "DocumentBuilderFactory02.xml"))) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setExpandEntityReferences(true);
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ Document doc = docBuilder.parse(fis);
+ Element e = (Element) doc.getElementsByTagName("title").item(0);
+ NodeList nl = e.getChildNodes();
+ assertTrue(dbf.isExpandEntityReferences());
+ assertEquals(nl.item(0).getNodeValue().trim().charAt(0), 'W');
+ }
+ }
+
+ /**
+ * Test the setExpandEntityReferences.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory08() throws Exception {
+ try (FileInputStream fis = new FileInputStream(new File(
+ XML_DIR, "DocumentBuilderFactory02.xml"))) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setExpandEntityReferences(false);
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ Document doc = docBuilder.parse(fis);
+ Element e = (Element) doc.getElementsByTagName("title").item(0);
+ NodeList nl = e.getChildNodes();
+ assertNull(nl.item(0).getNodeValue());
+ }
+ }
+
+ /**
+ * Test the setIgnoringComments. By default it is set to false.
+ * explicitly setting it to false, it recognizes the comment which is in
+ * Element Node Hence the Element's child node is not null.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory09() throws Exception {
+ try (FileInputStream fis = new FileInputStream(new File(
+ XML_DIR, "DocumentBuilderFactory07.xml"))) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setIgnoringComments(false);
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ Document doc = docBuilder.parse(fis);
+ Element e = (Element) doc.getElementsByTagName("body").item(0);
+ NodeList nl = e.getChildNodes();
+ assertNotNull(nl.item(0).getNodeValue());
+ }
+ }
+
+ /**
+ * This tests for the parse(InputSource).
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory10() throws Exception {
+ try (BufferedReader br = new BufferedReader(new FileReader(new File(
+ XML_DIR, "DocumentBuilderFactory07.xml")))) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ Document doc = docBuilder.parse(new InputSource(br));
+ assertNotNull(doc);
+ }
+ }
+
+ /**
+ * This tests for the parse InputStream with SystemID as a second parameter.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory11() throws Exception {
+ try (FileInputStream fis = new FileInputStream(new File(
+ XML_DIR, "dbf10import.xsl"))) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ Document doc = docBuilder.parse(fis, new File(XML_DIR).toURI()
+ .toASCIIString());
+ assertNotNull(doc);
+ }
+ }
+
+ /**
+ * This tests for the parse InputStream with empty SystemID as a second
+ * parameter.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory12() throws Exception {
+ try (FileInputStream fis = new FileInputStream(new File(
+ XML_DIR, "dbf10import.xsl"))) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ Document doc = docBuilder.parse(fis, " ");
+ assertNotNull(doc);
+ }
+ }
+
+ /**
+ * This tests for the parse(uri).
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckDocumentBuilderFactory13() throws Exception {
+ // Accesing default working directory.
+ String workingDir = getSystemProperty("user.dir");
+ setPermissions(new FilePermission(workingDir + "/*", "read"));
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ Document doc = docBuilder.parse(new File(XML_DIR + "dbf10import.xsl")
+ .toURI().toASCIIString());
+ assertNotNull(doc);
+ }
+
+ /**
+ * This tests for the parse(uri) with empty string as parameter should
+ * throw Sax Exception.
+ * @throws Exception If any errors occur.
+ */
+ @Test(expectedExceptions = SAXException.class)
+ public void testCheckDocumentBuilderFactory14() throws Exception {
+ // Accesing default working directory.
+ String workingDir = getSystemProperty("user.dir");
+ setPermissions(new FilePermission(workingDir, "read"));
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ docBuilder.parse("");
+ }
+
+ /**
+ * This tests for the parse (uri) with null uri as parameter should throw
+ * IllegalArgumentException.
+ * @throws Exception If any errors occur.
+ *
+ */
+ @Test(expectedExceptions = IllegalArgumentException.class)
+ public void testCheckDocumentBuilderFactory15() throws Exception {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ String uri = null;
+ docBuilder.parse(uri);
+ }
+
+ /**
+ * Test the setIgnoringComments. By default it is set to false,
+ * setting this to true, It does not recognize the comment, Here the
+ * nodelist has a length 0 because the ignoring comments is true.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckIgnoringComments() throws Exception {
+ try (FileInputStream fis = new FileInputStream(new File(
+ XML_DIR, "DocumentBuilderFactory08.xml"))) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setIgnoringComments(true);
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ Document doc = docBuilder.parse(fis);
+ Element e = (Element) doc.getElementsByTagName("body").item(0);
+ NodeList nl = e.getChildNodes();
+ assertEquals(nl.getLength(), 0);
+ }
+ }
+
+ /**
+ * Test the default behaviour of setIgnoringComments. By default
+ * it is set to false, this is similar to case 9 but not setIgnoringComments
+ * explicitly, it does not recognize the comment.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckIgnoringComments1() throws Exception {
+ try (FileInputStream fis = new FileInputStream(new File(
+ XML_DIR, "DocumentBuilderFactory07.xml"))) {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+ Document doc = docBuilder.parse(fis);
+ Element e = (Element) doc.getElementsByTagName("body").item(0);
+ NodeList nl = e.getChildNodes();
+ assertFalse(dbf.isIgnoringComments());
+ assertNotNull(nl.item(0).getNodeValue());
+ }
+ }
+
+ /**
+ * Test for the isIgnoringElementContentWhitespace and the
+ * setIgnoringElementContentWhitespace. The xml file has all kinds of
+ * whitespace,tab and newline characters, it uses the MyNSContentHandler
+ * which does not invoke the characters callback when this
+ * setIgnoringElementContentWhitespace is set to true.
+ * @throws Exception If any errors occur.
+ */
+ @Test
+ public void testCheckElementContentWhitespace() throws Exception {
+ String goldFile = GOLDEN_DIR + "dbfactory02GF.out";
+ String outputFile = USER_DIR + "dbfactory02.out";
+ MyErrorHandler eh = MyErrorHandler.newInstance();
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setValidating(true);
+ assertFalse(dbf.isIgnoringElementContentWhitespace());
+ dbf.setIgnoringElementContentWhitespace(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ db.setErrorHandler(eh);
+ Document doc = db.parse(new File(XML_DIR, "DocumentBuilderFactory06.xml"));
+ assertFalse(eh.isErrorOccured());
+ DOMSource domSource = new DOMSource(doc);
+ TransformerFactory tfactory = TransformerFactory.newInstance();
+ Transformer transformer = tfactory.newTransformer();
+ SAXResult saxResult = new SAXResult();
+ try(MyCHandler handler = MyCHandler.newInstance(new File(outputFile))) {
+ saxResult.setHandler(handler);
+ transformer.transform(domSource, saxResult);
+ }
+ assertTrue(compareWithGold(goldFile, outputFile));
+ }
+}
\ No newline at end of file
--- old/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/DOMResultTest01.java 2015-01-09 15:41:34.118112947 -0800
+++ /dev/null 2014-09-08 10:45:56.830930409 -0700
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 2014, 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.transform.ptests;
-
-import java.io.BufferedWriter;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMResult;
-import static javax.xml.transform.ptests.TransformerTestConst.CLASS_DIR;
-import static javax.xml.transform.ptests.TransformerTestConst.GOLDEN_DIR;
-import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.sax.SAXTransformerFactory;
-import javax.xml.transform.sax.TransformerHandler;
-import static jaxp.library.JAXPTestUtilities.compareWithGold;
-import static jaxp.library.JAXPTestUtilities.failCleanup;
-import static jaxp.library.JAXPTestUtilities.failUnexpected;
-import static org.testng.Assert.assertTrue;
-import org.testng.annotations.Test;
-import org.w3c.dom.Attr;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-/**
- * DOM parse on test file to be compared with golden output file. No Exception
- * is expected.
- */
-public class DOMResultTest01 {
- /**
- * Unit test for simple DOM parsing.
- */
- @Test
- public void testcase01() {
- String resultFile = CLASS_DIR + "domresult01.out";
- String goldFile = GOLDEN_DIR + "domresult01GF.out";
- String xsltFile = XML_DIR + "cities.xsl";
- String xmlFile = XML_DIR + "cities.xml";
-
- try {
- XMLReader reader = XMLReaderFactory.createXMLReader();
- SAXTransformerFactory saxTFactory
- = (SAXTransformerFactory) TransformerFactory.newInstance();
- SAXSource saxSource = new SAXSource(new InputSource(xsltFile));
- TransformerHandler handler
- = saxTFactory.newTransformerHandler(saxSource);
-
- DOMResult result = new DOMResult();
-
- handler.setResult(result);
- reader.setContentHandler(handler);
- reader.parse(xmlFile);
-
- Node node = result.getNode();
- try (BufferedWriter writer = new BufferedWriter(new FileWriter(resultFile))) {
- writeNodes(node, writer);
- }
- assertTrue(compareWithGold(goldFile, resultFile));
- } catch (SAXException | TransformerConfigurationException
- | IllegalArgumentException | IOException ex) {
- failUnexpected(ex);
- } finally {
- try {
- Path resultPath = Paths.get(resultFile);
- if(Files.exists(resultPath))
- Files.delete(resultPath);
- } catch (IOException ex) {
- failCleanup(ex, resultFile);
- }
- }
- }
-
- /**
- * Prints all node names, attributes to file
- * @param node a node that need to be recursively access.
- * @param bWriter file writer.
- * @throws IOException if writing file failed.
- */
- private void writeNodes(Node node, BufferedWriter bWriter) throws IOException {
- String str = "Node: " + node.getNodeName();
- bWriter.write( str, 0,str.length());
- bWriter.newLine();
-
- NamedNodeMap nnm = node.getAttributes();
- if (nnm != null && nnm.getLength() > 0)
- for (int i=0; i 0)
+ for (int i=0; i {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- DocumentBuilder db = dbf.newDocumentBuilder();
- Document document = db.parse(new File(xslFile));
- DOMSource domSource = new DOMSource(document);
- StreamSource streamSource = new StreamSource(new FileInputStream(xmlFile));
-
- File streamResultFile = new File(CLASS_DIR + file);
- StreamResult streamResult = new StreamResult(streamResultFile);
-
- Transformer transformer = TransformerFactory.newInstance().newTransformer(domSource);
- transformer.setOutputProperties(transformProperties);
- transformer.transform(streamSource, streamResult);
- } catch (SAXException | IOException | ParserConfigurationException
- | TransformerException ex) {
- failUnexpected(ex);
- }
- });
- }
-}
--- /dev/null 2014-09-08 10:45:56.830930409 -0700
+++ new/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/StreamResultTest.java 2015-01-09 15:41:35.120114509 -0800
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2003, 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.transform.ptests;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Properties;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
+import static jaxp.library.JAXPTestUtilities.failUnexpected;
+import org.testng.annotations.Test;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+/**
+ * Test a StreamResult using a file name that contains URL characters that need
+ * to be encoded.
+ */
+public class StreamResultTest extends JAXPFileBaseTest {
+ /**
+ * Unit test for StreamResult.
+ */
+ @Test
+ public void testcase01() {
+ // Set Transformer properties
+ Properties transformProperties = new Properties();
+ transformProperties.put("method", "xml");
+ transformProperties.put("encoding", "UTF-8");
+ transformProperties.put("omit-xml-declaration", "yes");
+ transformProperties.put("{http://xml.apache.org/xslt}indent-amount", "0");
+ transformProperties.put("indent", "no");
+ transformProperties.put("standalone", "no");
+ transformProperties.put("version", "1.0");
+ transformProperties.put("media-type", "text/xml");
+
+ String[] fileNames = {
+ "StreamResult01.out",
+ "StreamResult 02.out",
+ "StreamResult#03.out"
+ };
+
+ String xslFile = XML_DIR + "cities.xsl";
+ String xmlFile = XML_DIR + "cities.xml";
+
+ Arrays.stream(fileNames).forEach(file -> {
+ try {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document document = db.parse(new File(xslFile));
+ DOMSource domSource = new DOMSource(document);
+ StreamSource streamSource = new StreamSource(new FileInputStream(xmlFile));
+
+ File streamResultFile = new File(USER_DIR + file);
+ StreamResult streamResult = new StreamResult(streamResultFile);
+
+ Transformer transformer = TransformerFactory.newInstance().newTransformer(domSource);
+ transformer.setOutputProperties(transformProperties);
+ transformer.transform(streamSource, streamResult);
+ } catch (SAXException | IOException | ParserConfigurationException
+ | TransformerException ex) {
+ failUnexpected(ex);
+ }
+ });
+ }
+}
--- /dev/null 2014-09-08 10:45:56.830930409 -0700
+++ new/test/javax/xml/jaxp/functional/org/apache/qetest/dtm/TestDTM.java 2015-01-09 15:41:35.476115064 -0800
@@ -0,0 +1,146 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qetest.dtm;
+
+import com.sun.org.apache.xml.internal.dtm.DTM;
+import java.io.FilePermission;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import jaxp.library.JAXPBaseTest;
+import static jaxp.library.JAXPTestUtilities.compareLinesWithGold;
+import static org.apache.qetest.dtm.QeDtmConst.GOLDEN_DIR;
+import static org.apache.qetest.dtm.QeDtmConst.TYPENAME;
+import static org.apache.qetest.dtm.QeDtmConst.generateDTM;
+import org.testng.annotations.Test;
+
+/**
+ * Loads an XML document from a file (or, if no filename is supplied,
+ * an internal string), then dumps its contents. Replaces the old
+ * version, which was specific to the ultra-compressed implementation.
+ * (Which, by the way, we probably ought to revisit as part of our ongoing
+ * speed/size performance evaluation.)
+ */
+public class TestDTM extends JAXPBaseTest {
+ /**
+ * Create AxisIterator and walk CHILD axis. Dump every walked node and
+ * compare with expected golden file.
+ *
+ * @throws IOException if any I/O operation error.
+ */
+ @Test
+ public void test() throws IOException {
+ setPermissions(new RuntimePermission("accessClassInPackage.com.sun.org.apache.xml.internal.utils"),
+ new RuntimePermission("accessClassInPackage.com.sun.org.apache.xpath.internal.objects"));
+ String goldFile = GOLDEN_DIR + "DTM_testcase1.out";
+
+ // Create dtm and generate initial context
+ DTM dtm = generateDTM();
+
+ // DTM -- which will always be true for a node obtained this way, but
+ // won't be true for "shared" DTMs used to hold XSLT variables
+ int rootNode = dtm.getDocument();
+ List lines = new ArrayList<>();
+ lines.add("DOCUMENT PROPERTIES:");
+ lines.add("DocURI=\"" + dtm.getDocumentBaseURI() + "\" \"SystemID=\""
+ + dtm.getDocumentSystemIdentifier(rootNode) + "\"");
+ lines.add("StandAlone=\"" + dtm.getDocumentStandalone(rootNode)
+ + "\" DocVersion=\"" + dtm.getDocumentVersion(rootNode) + "\"");
+ lines.add("");
+ lines.add("DOCUMENT DATA:");
+ // Simple test: Recursively dump the DTM's content.
+ // We'll want to replace this with more serious examples
+ lines.add("DOCUMENT DATA:");
+
+ recursiveDumpNode(dtm, rootNode, lines);
+ setPermissions(new FilePermission(goldFile, "read"));
+ compareLinesWithGold(goldFile, lines);
+ }
+
+ /**
+ * Format node info to a string list.
+ * @param dtm DTM instance.
+ * @param nodeHandle node handle that represent node will be dumped.
+ * @param indent a format indention.
+ * @return
+ */
+ private List getNodeInfo(DTM dtm, int nodeHandle, String indent) {
+ List nodeLines = new ArrayList<>();
+ String value = dtm.getNodeValue(nodeHandle);
+ String vq = (value == null) ? "" : "\"";
+
+ // Skip outputing of text nodes. In most cases they clutter the output,
+ // besides I'm only interested in the elemental structure of the dtm.
+ nodeLines.add(indent + nodeHandle + ": "
+ + TYPENAME[dtm.getNodeType(nodeHandle)] + " "
+ + dtm.getNodeNameX(nodeHandle) + " : "
+ + dtm.getNodeName(nodeHandle) + "\""
+ + " E-Type=" + dtm.getExpandedTypeID(nodeHandle)
+ + " Level=" + dtm.getLevel(nodeHandle)
+ + " Value=" + vq + value + vq);
+
+ nodeLines.add(indent + "\tPrefix= " + "\"" + dtm.getPrefix(nodeHandle) + "\""
+ + " Name= " + "\"" + dtm.getLocalName(nodeHandle) + "\""
+ + " URI= " + "\"" + dtm.getNamespaceURI(nodeHandle) + "\""
+ + " Parent=" + dtm.getParent(nodeHandle)
+ + " 1stChild=" + dtm.getFirstChild(nodeHandle)
+ + " NextSib=" + dtm.getNextSibling(nodeHandle));
+ return nodeLines;
+ }
+
+ /**
+ * Recursively access every children of the node. Dump every information of
+ * every node to given string list.
+ * @param dtm DTM instance.
+ * @param nodeHandle node handle that will be accessed.
+ * @param lines a string list that recursive accessed node information will
+ * be dumped.
+ */
+ private void recursiveDumpNode(DTM dtm, int nodeHandle, List lines) {
+ // ITERATE over siblings
+ while (DTM.NULL != nodeHandle) {
+ lines.addAll(getNodeInfo(dtm, nodeHandle, ""));
+
+ // List the namespaces, if any. Include only node's local
+ // namespaces, not inherited
+ int kid = dtm.getFirstNamespaceNode(nodeHandle, false);
+ if (kid != DTM.NULL) {
+ lines.add("\tNAMESPACES:");
+ //builder.append("\n\tNAMESPACES:");
+ for (; kid != DTM.NULL; kid = dtm.getNextNamespaceNode(nodeHandle, kid, false)) {
+ lines.addAll(getNodeInfo(dtm, kid, "\t"));
+ }
+ }
+
+ // List the attributes, if any
+ kid = dtm.getFirstAttribute(nodeHandle);
+ if (kid != DTM.NULL) {
+ lines.add("\tATTRIBUTES:");
+ for (; kid != DTM.NULL; kid = dtm.getNextSibling(kid)) {
+ lines.addAll(getNodeInfo(dtm, kid, "\t"));
+ }
+ }
+
+ // Recurse into the children, if any
+ recursiveDumpNode(dtm, dtm.getFirstChild(nodeHandle), lines);
+ nodeHandle = dtm.getNextSibling(nodeHandle);
+ }
+ }
+}
--- /dev/null 2014-09-08 10:45:56.830930409 -0700
+++ new/test/javax/xml/jaxp/functional/org/apache/qetest/dtm/TestDTMIter.java 2015-01-09 15:41:35.738115473 -0800
@@ -0,0 +1,221 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qetest.dtm;
+
+import com.sun.org.apache.xml.internal.dtm.Axis;
+import com.sun.org.apache.xml.internal.dtm.DTM;
+import com.sun.org.apache.xml.internal.dtm.DTMAxisIterator;
+import java.io.IOException;
+import jaxp.library.JAXPBaseTest;
+import static org.apache.qetest.dtm.QeDtmConst.generateDTM;
+import static org.apache.qetest.dtm.QeDtmConst.getNodeName;
+import static org.testng.Assert.assertEquals;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * Test for Axis Iterator walking.
+ */
+public class TestDTMIter extends JAXPBaseTest {
+ /**
+ * DTM instance.
+ */
+ private final DTM dtm;
+
+ /*
+ * Intiate by creating DTM instance and generate initial context.
+ *
+ */
+ public TestDTMIter() {
+ dtm = generateDTM();
+ }
+
+ /**
+ * A data provider that provide validation parameters and expected lines.
+ *
+ * @return an two dimensional array that provide axis type and expected
+ * lines.
+ */
+ @DataProvider
+ public Object[][] iterProvider() {
+ final Object[][] chkChild = new Object[][] {
+ { 65542, "COMMENT", "#comment", 3, " Default test document " },
+ { 65543, "PROCESSING_INSTRUCTION", "api", 3, "a1=\"yes\" a2=\"no\"" },
+ { 65544, "ELEMENT", "A", 3, null },
+ { 65554, "ELEMENT", "Aa", 3, null },
+ { 65555, "ELEMENT", "Ab", 3, null },
+ { 65556, "ELEMENT", "Ac", 3, null },
+ { 65558, "ELEMENT", "Ad", 3, null }
+ };
+
+ final Object[][] chkParent = new Object[][]{
+ {65537, "ELEMENT", "Document", 2, null}
+ };
+
+ Object[][] chkSelf = new Object[][]{
+ {65558, "ELEMENT", "Ad", 3, null}
+ };
+
+ final Object[][] chkNamespace = new Object[][]{
+ {65538, "NAMESPACE", "xmlns:xml", 3, "http://www.w3.org/XML/1998/namespace"},
+ {65539, "NAMESPACE", "xmlns:d", 3, "www.d.com"},
+ {65559, "NAMESPACE", "xmlns:Ad", 4, "www.Ad.com"},
+ {65560, "NAMESPACE", "xmlns:y", 4, "www.y.com"},
+ {65561, "NAMESPACE", "xmlns:z", 4, "www.z.com"}
+ };
+
+ final Object[][] chkPreceding = new Object[][]{
+ { 65542, "COMMENT", "#comment", 3, " Default test document "},
+ { 65543, "PROCESSING_INSTRUCTION", "api", 3, "a1=\"yes\" a2=\"no\""},
+ { 65544, "ELEMENT", "A", 3, null},
+ { 65545, "COMMENT", "#comment", 4, " A Subtree "},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65549, "ELEMENT", "E", 7, null},
+ { 65550, "ELEMENT", "F", 8, null},
+ { 65554, "ELEMENT", "Aa", 3, null},
+ { 65555, "ELEMENT", "Ab", 3, null},
+ { 65556, "ELEMENT", "Ac", 3, null},
+ { 65557, "ELEMENT", "Ac1", 4, null}
+ };
+
+ final Object[][] chkPrecedingsibling = new Object[][]{
+ {65542, "COMMENT", "#comment", 3, " Default test document "},
+ {65543, "PROCESSING_INSTRUCTION", "api", 3, "a1=\"yes\" a2=\"no\""},
+ {65544, "ELEMENT", "A", 3, null},
+ {65554, "ELEMENT", "Aa", 3, null},
+ {65555, "ELEMENT", "Ab", 3, null},
+ {65556, "ELEMENT", "Ac", 3, null}
+ };
+
+ final Object[][] chkFollowing = new Object[][]{
+ { 65554, "ELEMENT", "Aa", 3, null},
+ { 65555, "ELEMENT", "Ab", 3, null},
+ { 65556, "ELEMENT", "Ac", 3, null},
+ { 65557, "ELEMENT", "Ac1", 4, null},
+ { 65558, "ELEMENT", "Ad", 3, null},
+ { 65562, "ELEMENT", "Ad1", 4, null}
+ };
+
+ final Object[][] checkFollowingSibling = new Object[][]{
+ { 65554, "ELEMENT", "Aa", 3, null},
+ { 65555, "ELEMENT", "Ab", 3, null},
+ { 65556, "ELEMENT", "Ac", 3, null},
+ { 65558, "ELEMENT", "Ad", 3, null},
+ };
+
+ final Object[][] checkDescendant = new Object[][]{
+ { 65545, "COMMENT", "#comment", 4, " A Subtree "},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65549, "ELEMENT", "E", 7, null},
+ { 65550, "ELEMENT", "F", 8, null}
+ };
+
+ final Object[][] checkDescendantSelf = new Object[][]{
+ { 65544, "ELEMENT", "A", 3, null},
+ { 65545, "COMMENT", "#comment", 4, " A Subtree "},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65549, "ELEMENT", "E", 7, null},
+ { 65550, "ELEMENT", "F", 8, null}
+ };
+
+ final Object[][] checkAncestor = new Object[][]{
+ { 65536, "DOCUMENT", "#document", 1, null},
+ { 65537, "ELEMENT", "Document", 2, null},
+ { 65544, "ELEMENT", "A", 3, null},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65549, "ELEMENT", "E", 7, null}
+ };
+
+ final Object[][] checkAncestorSelf = new Object[][]{
+ { 65536, "DOCUMENT", "#document", 1, null},
+ { 65537, "ELEMENT", "Document", 2, null},
+ { 65544, "ELEMENT", "A", 3, null},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65549, "ELEMENT", "E", 7, null},
+ { 65550, "ELEMENT", "F", 8, null}
+ };
+ return new Object[][]{
+ {65537, Axis.CHILD, "Document", false, chkChild},
+ {65558, Axis.PARENT, "Ad", false, chkParent},
+ {65558, Axis.SELF, "Ad", false, chkSelf},
+ {65558, Axis.NAMESPACE, "Ad", false, chkNamespace},
+ {65558, Axis.PRECEDING, "Ad", true, chkPreceding},
+ {65558, Axis.PRECEDINGSIBLING, "Ad", true, chkPrecedingsibling},
+ {65558, Axis.FOLLOWING, "Ad", false, chkFollowing},
+ {65558, Axis.FOLLOWINGSIBLING, "Ad", false, checkFollowingSibling},
+ {65544, Axis.DESCENDANT, "A", false, checkDescendant},
+ {65544, Axis.DESCENDANTORSELF, "A", false, checkDescendantSelf} ,
+ {65550, Axis.ANCESTOR, "F", true, checkAncestor},
+ {65550, Axis.ANCESTORORSELF, "F", true, checkAncestorSelf}
+ };
+ }
+
+ /**
+ * Walk all kind of AxisIterator and checking API as expected.
+ *
+ * @param startNode node id to get AxisIterator.
+ * @param axisType Axis type.
+ * @param expectedName expected node name.
+ * @param reversable expected boolean value for checking if the AxisIterator
+ * is revertible.
+ * @param expectedLines an two dimensional array that will be validate
+ * traversal of AxisIterator
+ * @throws IOException if any I/O operation error.
+ */
+ @Test(dataProvider = "iterProvider")
+ public void test(int startNode, int axisType, String expectedName,
+ boolean reversable, Object[][] expectedLines) throws IOException {
+ // This permission is special for the testing.
+ setPermissions(
+ new RuntimePermission("accessClassInPackage.com.sun.org.apache.xml.internal.utils"),
+ new RuntimePermission("accessClassInPackage.com.sun.org.apache.xpath.internal.objects"));
+
+ // Get a Iterator by given Axis type.
+ DTMAxisIterator iter = dtm.getAxisIterator(axisType);
+ iter.setStartNode(startNode);
+
+ // Print out info about the axis
+ assertEquals(dtm.getNodeName(startNode), expectedName);
+ assertEquals(iter.isReverse(), reversable);
+
+ // Iterate the axis and write node info to output file
+ int line = 0;
+ for (int itNode = iter.next(); DTM.NULL != itNode;
+ itNode = iter.next(), line++) {
+ assertEquals(itNode, expectedLines[line][0]);
+ assertEquals(getNodeName(dtm, itNode), expectedLines[line][1]);
+ assertEquals(dtm.getNodeName(itNode), expectedLines[line][2]);
+ Integer expectedLevel = (Integer)expectedLines[line][3];
+ assertEquals(dtm.getLevel(itNode), expectedLevel.shortValue());
+ assertEquals(dtm.getNodeValue(itNode), expectedLines[line][4]);
+ }
+ }
+}
--- /dev/null 2014-09-08 10:45:56.830930409 -0700
+++ new/test/javax/xml/jaxp/functional/org/apache/qetest/dtm/TestDTMIterDeep.java 2015-01-09 15:41:35.998115878 -0800
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qetest.dtm;
+
+import com.sun.org.apache.xml.internal.dtm.Axis;
+import com.sun.org.apache.xml.internal.dtm.DTM;
+import com.sun.org.apache.xml.internal.dtm.DTMAxisIterator;
+import java.io.FilePermission;
+import java.util.ArrayList;
+import java.util.List;
+import jaxp.library.JAXPBaseTest;
+import static org.apache.qetest.dtm.QeDtmConst.XML_DIR;
+import static org.apache.qetest.dtm.QeDtmConst.createDTM;
+import static org.testng.Assert.assertEquals;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+/**
+ * Basic API test for DTMAxisIterator. Iterator on different Axis type.
+ *
+ */
+public class TestDTMIterDeep extends JAXPBaseTest {
+ /**
+ * Iterator on different Axis type.
+ *
+ * @param axisType axis type.
+ * @param expectedLastNode expected last node we will validate.
+ * @param expectedTotal expected total node number we will validate.
+ */
+ @Test(dataProvider = "axisProvider")
+ public void test(int axisType, int expectedLastNode, int expectedTotal) {
+ setPermissions(new RuntimePermission("accessClassInPackage.com.sun.org.apache.xml.internal.utils"),
+ new RuntimePermission("accessClassInPackage.com.sun.org.apache.xpath.internal.objects"),
+ new FilePermission(System.getProperty("test.src") + "/-", "read"));
+ String deepFile = XML_DIR + "xtestdata/elem10kdeep.xml";
+ List lines = new ArrayList<>();
+ lines.add("Axis is " + Axis.getNames(axisType).toUpperCase());
+ DTM dtm = createDTM(0, deepFile, lines);
+
+ // Get various nodes to use as context nodes.
+ int DNode = dtm.getFirstChild(dtm.getDocument());
+ assertEquals(dtm.getNodeName(dtm.getFirstChild(DNode)), "e1");
+
+ // Get an iterator for Descendant:: axis.
+ DTMAxisIterator iter = dtm.getAxisIterator(axisType);
+ iter.setStartNode(DNode);
+ int lastNode = 0;
+ int numOfNodes = 0;
+ for (int atNode = iter.next(); DTM.NULL != atNode; atNode = iter.next()) {
+ lastNode = atNode;
+ numOfNodes = numOfNodes + 1; // Need to know that we Iterated the whole tree
+ }
+ assertEquals(lastNode, expectedLastNode);
+ assertEquals(numOfNodes, expectedTotal);
+ }
+
+ /**
+ * Axis types for testing.
+ * @return an array contains axis type and its expected number.
+ */
+ @DataProvider
+ public Object[][] axisProvider(){
+ return new Object[][]{
+ {Axis.DESCENDANT, 75538, 10000},
+ {Axis.DESCENDANTORSELF, 75538, 10001},
+ {Axis.ANCESTOR, 65536, 1},
+ {Axis.ANCESTORORSELF, 65537, 2},
+ };
+ }
+}
--- /dev/null 2014-09-08 10:45:56.830930409 -0700
+++ new/test/javax/xml/jaxp/functional/org/apache/qetest/dtm/TestDTMIterator.java 2015-01-09 15:41:36.259116285 -0800
@@ -0,0 +1,251 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qetest.dtm;
+
+import com.sun.org.apache.xml.internal.dtm.Axis;
+import com.sun.org.apache.xml.internal.dtm.DTM;
+import com.sun.org.apache.xml.internal.dtm.DTMAxisIterator;
+import com.sun.org.apache.xml.internal.dtm.DTMManager;
+import com.sun.org.apache.xml.internal.dtm.DTMWSFilter;
+import com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault;
+import com.sun.org.apache.xpath.internal.objects.XMLStringFactoryImpl;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringReader;
+import javax.xml.transform.Source;
+import javax.xml.transform.stream.StreamSource;
+import jaxp.library.JAXPFileBaseTest;
+import static jaxp.library.JAXPTestUtilities.compareWithGold;
+import static jaxp.library.JAXPTestUtilities.getNextFile;
+import static org.apache.qetest.dtm.QeDtmConst.GOLDEN_DIR;
+import static org.apache.qetest.dtm.QeDtmConst.TYPENAME;
+import static org.testng.Assert.assertTrue;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * Loads an XML document from a file (or, if no filename is supplied,
+ * an internal string), then dumps its contents. Replaces the old
+ * version, which was specific to the ultra-compressed implementation.
+ */
+public class TestDTMIterator extends JAXPFileBaseTest {
+ /**
+ * Test DTMIterator on a well-formed XML string. Checking on expected output.
+ * @throws IOException if any error on File I/O operation.
+ */
+ @Test
+ public void test() throws IOException {
+ setPermissions(new RuntimePermission("accessClassInPackage.com.sun.org.apache.xml.internal.utils"),
+ new RuntimePermission("accessClassInPackage.com.sun.org.apache.xpath.internal.objects"));
+ String goldFile = GOLDEN_DIR + "TestDTMIterator.out";
+
+ String defaultSource = "\n"
+ + ""
+ + ""
+ + ""
+ + ""
+ + ""
+ + ""
+ + " "
+ + ""
+ + ""
+ + "";
+
+ try(StringReader sw = new StringReader(defaultSource)) {
+ Source source = new StreamSource(sw);
+
+ // Get a DTM manager, and ask it to load the DTM "uniquely",
+ // with no whitespace filtering, nonincremental, but _with_
+ // indexing (a fairly common case, and avoids the special
+ // mode used for RTF DTMs).
+ // For testing with some of David Marston's files I do want to strip whitespace.
+ DTMManager manager = DTMManagerDefault.newInstance(new XMLStringFactoryImpl());
+ DTM dtm = manager.getDTM(source, true, (e, d) -> DTMWSFilter.STRIP, false, true);
+
+ // Get various nodes to use as context nodes.
+ int dtmRoot = dtm.getDocument(); // #document
+ int DNode = dtm.getFirstChild(dtmRoot); //
+ int CNode = dtm.getFirstChild(DNode); //
+ int PINode = dtm.getNextSibling(CNode); //
+ int ANode = dtm.getNextSibling(PINode); //
+ int lastNode = 0;
+
+ // Get a Iterator for CHILD:: axis.
+ DTMAxisIterator iter = dtm.getAxisIterator(Axis.CHILD);
+ iter.setStartNode(DNode);
+
+ String outputFile = getNextFile(this.getClass());
+
+ try(PrintWriter pw = new PrintWriter(outputFile)) {
+ // Iterate the axis and print out node info.
+ for (int itNode = iter.next(); DTM.NULL != itNode;
+ itNode = iter.next()) {
+ printNode(dtm, itNode, " ", pw);
+ lastNode = itNode;
+ }
+
+ // Get iterator for PARENT:: Axis
+ iter = dtm.getAxisIterator(Axis.PARENT);
+ iter.setStartNode(lastNode);
+
+ // Iterate the axis and print out node info.
+ for (int itNode = iter.next(); DTM.NULL != itNode;
+ itNode = iter.next()) {
+ printNode(dtm, itNode, " ", pw);
+ }
+
+ // Get iterator for SELF:: Axis
+ iter = dtm.getAxisIterator(Axis.SELF);
+ iter.setStartNode(lastNode);
+
+ // Iterate the axis and print out node info.
+ for (int itNode = iter.next(); DTM.NULL != itNode;
+ itNode = iter.next()) {
+ printNode(dtm, itNode, " ", pw);
+ }
+
+ // Get iterator for NAMESPACE:: Axis
+ iter = dtm.getAxisIterator(Axis.NAMESPACE);
+ iter.setStartNode(lastNode);
+
+ // Iterate the axis and print out node info.
+ for (int itNode = iter.next(); DTM.NULL != itNode;
+ itNode = iter.next()) {
+ printNode(dtm, itNode, " ", pw);
+ }
+
+ // Get iterator for PRECEDING:: Axis
+ iter = dtm.getAxisIterator(Axis.PRECEDING);
+ iter.setStartNode(lastNode);
+
+ // Iterate the axis and print out node info.
+ for (int itNode = iter.next(); DTM.NULL != itNode;
+ itNode = iter.next()) {
+ printNode(dtm, itNode, " ", pw);
+ }
+
+ // Get iterator for PRECEDINGSIBLING:: Axis
+ iter = dtm.getAxisIterator(Axis.PRECEDINGSIBLING);
+ iter.setStartNode(lastNode);
+
+ // Iterate the axis and print out node info.
+ for (int itNode = iter.next(); DTM.NULL != itNode;
+ itNode = iter.next()) {
+ printNode(dtm, itNode, " ", pw);
+ }
+
+ // Get iterator for FOLLOWING:: Axis
+ iter = dtm.getAxisIterator(Axis.FOLLOWING);
+ iter.setStartNode(ANode);
+
+ // Iterate the axis and print out node info.
+ for (int itNode = iter.next(); DTM.NULL != itNode;
+ itNode = iter.next()) {
+ printNode(dtm, itNode, " ", pw);
+ }
+
+ // Get iterator for FOLLOWINGSIBLING:: Axis
+ iter = dtm.getAxisIterator(Axis.FOLLOWINGSIBLING);
+ iter.setStartNode(ANode);
+
+ // Iterate the axis and print out node info.
+ for (int itNode = iter.next(); DTM.NULL != itNode;
+ itNode = iter.next()) {
+ printNode(dtm, itNode, " ", pw);
+ }
+
+ // Get a iterator for DESCENDANT:: axis.
+ iter = dtm.getAxisIterator(Axis.DESCENDANT);
+ iter.setStartNode(ANode);
+
+ // Iterate the axis and print out node info.
+ for (int itNode = iter.next(); DTM.NULL != itNode;
+ itNode = iter.next()) {
+ printNode(dtm, itNode, " ", pw);
+ lastNode = itNode;
+ }
+
+ // Get iterator for DESCENDANTORSELF:: Axis
+ iter = dtm.getAxisIterator(Axis.DESCENDANTORSELF);
+ iter.setStartNode(ANode);
+
+ // Iterate the axis and print out node info.
+ for (int itNode = iter.next(); DTM.NULL != itNode;
+ itNode = iter.next()) {
+ printNode(dtm, itNode, " ", pw);
+ lastNode = itNode;
+ }
+
+ // The output from Ancestor and Ancestor-or-self is the topic
+ // of Bugzilla 7886
+ // Get iterator for ANCESTOR:: Axis
+ iter = dtm.getAxisIterator(Axis.ANCESTOR);
+ iter.setStartNode(lastNode);
+
+ // Iterate the axis and print out node info.
+ for (int itNode = iter.next(); DTM.NULL != itNode;
+ itNode = iter.next()) {
+ printNode(dtm, itNode, " ", pw);
+ }
+
+ // Get iterator for ANCESTORORSELF:: Axis
+ iter = dtm.getAxisIterator(Axis.ANCESTORORSELF);
+ iter.setStartNode(lastNode);
+
+ // Iterate the axis and print out node info.
+ for (int itNode = iter.next(); DTM.NULL != itNode;
+ itNode = iter.next()) {
+ printNode(dtm, itNode, " ", pw);
+ }
+ }
+ assertTrue(compareWithGold(goldFile, outputFile));
+ }
+ }
+
+ /**
+ * Print a node info by given node handle.
+ * @param dtm DTM instance.
+ * @param nodeHandle node handle.
+ * @param indent a format indention.
+ */
+ private void printNode(DTM dtm, int nodeHandle, String indent, PrintWriter pw) {
+ // Briefly display this node
+ // Don't bother displaying namespaces or attrs; we do that at the
+ // next level up.
+ // %REVIEW% Add namespace info, type info, ...
+
+ // Formatting hack -- suppress quotes when value is null, to distinguish
+ // it from "null".
+ String value = dtm.getNodeValue(nodeHandle);
+ String vq = (value == null) ? "" : "\"";
+
+ // Skip outputing of text nodes. In most cases they clutter the output,
+ // besides I'm only interested in the elemental structure of the dtm.
+ if (!"TEXT".equals(TYPENAME[dtm.getNodeType(nodeHandle)])) {
+ pw.println(indent
+ + +nodeHandle + ": "
+ + TYPENAME[dtm.getNodeType(nodeHandle)] + " "
+ + dtm.getNodeName(nodeHandle) + " "
+ + " Level=" + dtm.getLevel(nodeHandle) + " "
+ + "\tValue=" + vq + value + vq
+ );
+ }
+ }
+}
--- /dev/null 2014-09-08 10:45:56.830930409 -0700
+++ new/test/javax/xml/jaxp/functional/org/apache/qetest/dtm/TestDTMTrav.java 2015-01-09 15:41:36.535116716 -0800
@@ -0,0 +1,328 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qetest.dtm;
+
+import com.sun.org.apache.xml.internal.dtm.Axis;
+import com.sun.org.apache.xml.internal.dtm.DTM;
+import com.sun.org.apache.xml.internal.dtm.DTMAxisTraverser;
+import java.io.IOException;
+import jaxp.library.JAXPBaseTest;
+import static org.apache.qetest.dtm.QeDtmConst.generateDTM;
+import static org.apache.qetest.dtm.QeDtmConst.getNodeName;
+import static org.testng.Assert.assertEquals;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * Test for Axis Traverser walking.
+ */
+public class TestDTMTrav extends JAXPBaseTest {
+ /**
+ * DTM instance.
+ */
+ private final DTM dtm;
+
+ /*
+ * Intiate by creating DTM instance and generate initial context.
+ *
+ */
+ public TestDTMTrav() {
+ dtm = generateDTM();
+ }
+
+ /**
+ * A provider that provides validation parameters and expected lines.
+ *
+ * @return an two dimensional array that provide axis type and expected
+ * lines.
+ */
+ @DataProvider
+ public Object[][] travProvider(){
+ final Object[][] chkChild = new Object[][] {
+ { 65542, "COMMENT", "#comment", 3, " Default test document " },
+ { 65543, "PROCESSING_INSTRUCTION", "api", 3, "a1=\"yes\" a2=\"no\"" },
+ { 65544, "ELEMENT", "A", 3, null },
+ { 65554, "ELEMENT", "Aa", 3, null },
+ { 65555, "ELEMENT", "Ab", 3, null },
+ { 65556, "ELEMENT", "Ac", 3, null },
+ { 65558, "ELEMENT", "Ad", 3, null }
+ };
+
+ final Object[][] chkParent = new Object[][]{
+ {65537, "ELEMENT", "Document", 2, null}
+ };
+
+ Object[][] chkSelf = new Object[][]{
+ {65558, "ELEMENT", "Ad", 3, null}
+ };
+
+ final Object[][] chkNamespace = new Object[][]{
+ {65538, "NAMESPACE", "xmlns:xml", 3, "http://www.w3.org/XML/1998/namespace"},
+ {65539, "NAMESPACE", "xmlns:d", 3, "www.d.com"},
+ {65559, "NAMESPACE", "xmlns:Ad", 4, "www.Ad.com"},
+ {65560, "NAMESPACE", "xmlns:y", 4, "www.y.com"},
+ {65561, "NAMESPACE", "xmlns:z", 4, "www.z.com"}
+ };
+
+ final Object[][] chkNamespaceDecls = new Object[][]{
+ {65559, "NAMESPACE", "xmlns:Ad", 4, "www.Ad.com"},
+ {65560, "NAMESPACE", "xmlns:y", 4, "www.y.com"},
+ {65561, "NAMESPACE", "xmlns:z", 4, "www.z.com"}
+ };
+
+ final Object[][] chkPreceding = new Object[][]{
+ { 65557, "ELEMENT", "Ac1", 4, null},
+ { 65556, "ELEMENT", "Ac", 3, null},
+ { 65555, "ELEMENT", "Ab", 3, null},
+ { 65554, "ELEMENT", "Aa", 3, null},
+ { 65550, "ELEMENT", "F", 8, null},
+ { 65549, "ELEMENT", "E", 7, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65545, "COMMENT", "#comment", 4, " A Subtree "},
+ { 65544, "ELEMENT", "A", 3, null},
+ { 65543, "PROCESSING_INSTRUCTION", "api", 3, "a1=\"yes\" a2=\"no\""},
+ { 65542, "COMMENT", "#comment", 3, " Default test document "},
+ };
+
+ final Object[][] chkPrecedingsibling = new Object[][]{
+ { 65556, "ELEMENT", "Ac", 3, null},
+ { 65555, "ELEMENT", "Ab", 3, null},
+ { 65554, "ELEMENT", "Aa", 3, null},
+ { 65544, "ELEMENT", "A", 3, null},
+ { 65543, "PROCESSING_INSTRUCTION", "api", 3, "a1=\"yes\" a2=\"no\""},
+ { 65542, "COMMENT", "#comment", 3, " Default test document "}
+ };
+
+ final Object[][] chkFollowing = new Object[][]{
+ { 65554, "ELEMENT", "Aa", 3, null},
+ { 65555, "ELEMENT", "Ab", 3, null},
+ { 65556, "ELEMENT", "Ac", 3, null},
+ { 65557, "ELEMENT", "Ac1", 4, null},
+ { 65558, "ELEMENT", "Ad", 3, null},
+ { 65562, "ELEMENT", "Ad1", 4, null}
+ };
+
+ final Object[][] checkFollowingSibling = new Object[][]{
+ { 65554, "ELEMENT", "Aa", 3, null},
+ { 65555, "ELEMENT", "Ab", 3, null},
+ { 65556, "ELEMENT", "Ac", 3, null},
+ { 65558, "ELEMENT", "Ad", 3, null},
+ };
+
+ final Object[][] checkDescendant = new Object[][]{
+ { 65545, "COMMENT", "#comment", 4, " A Subtree "},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65549, "ELEMENT", "E", 7, null},
+ { 65550, "ELEMENT", "F", 8, null}
+ };
+
+ final Object[][] checkDescendantSelf = new Object[][]{
+ { 65544, "ELEMENT", "A", 3, null},
+ { 65545, "COMMENT", "#comment", 4, " A Subtree "},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65549, "ELEMENT", "E", 7, null},
+ { 65550, "ELEMENT", "F", 8, null}
+ };
+
+ final Object[][] checkAncestor = new Object[][]{
+ { 65549, "ELEMENT", "E", 7, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65544, "ELEMENT", "A", 3, null},
+ { 65537, "ELEMENT", "Document", 2, null},
+ { 65536, "DOCUMENT", "#document", 1, null},
+ };
+
+ final Object[][] checkAncestorSelf = new Object[][]{
+ { 65550, "ELEMENT", "F", 8, null},
+ { 65549, "ELEMENT", "E", 7, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65544, "ELEMENT", "A", 3, null},
+ { 65537, "ELEMENT", "Document", 2, null},
+ { 65536, "DOCUMENT", "#document", 1, null}
+ };
+
+ final Object[][] checkAllFromNode = new Object[][]{
+ { 65550, "ELEMENT", "F", 8, null},
+ { 65551, "NAMESPACE", "xmlns:f", 9, "www.f.com"},
+ { 65552, "ATTRIBUTE", "a1", 9, "down"},
+ { 65553, "ATTRIBUTE", "a2", 9, "up"}
+ };
+
+ final Object[][] checkAttribute = new Object[][]{
+ { 65540, "ATTRIBUTE", "a1", 3, "hello"},
+ { 65541, "ATTRIBUTE", "a2", 3, "goodbye"}
+ };
+
+ final Object[][] checkAll = new Object[][]{
+ { 65536, "DOCUMENT", "#document", 1, null},
+ { 65537, "ELEMENT", "Document", 2, null},
+ { 65538, "NAMESPACE", "xmlns:xml", 3, "http://www.w3.org/XML/1998/namespace"},
+ { 65539, "NAMESPACE", "xmlns:d", 3, "www.d.com"},
+ { 65540, "ATTRIBUTE", "a1", 3, "hello"},
+ { 65541, "ATTRIBUTE", "a2", 3, "goodbye"},
+ { 65542, "COMMENT", "#comment", 3, " Default test document "},
+ { 65543, "PROCESSING_INSTRUCTION", "api", 3, "a1=\"yes\" a2=\"no\""},
+ { 65544, "ELEMENT", "A", 3, null},
+ { 65545, "COMMENT", "#comment", 4, " A Subtree "},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65549, "ELEMENT", "E", 7, null},
+ { 65550, "ELEMENT", "F", 8, null},
+ { 65551, "NAMESPACE", "xmlns:f", 9, "www.f.com"},
+ { 65552, "ATTRIBUTE", "a1", 9, "down"},
+ { 65553, "ATTRIBUTE", "a2", 9, "up"},
+ { 65554, "ELEMENT", "Aa", 3, null},
+ { 65555, "ELEMENT", "Ab", 3, null},
+ { 65556, "ELEMENT", "Ac", 3, null},
+ { 65557, "ELEMENT", "Ac1", 4, null},
+ { 65558, "ELEMENT", "Ad", 3, null},
+ { 65559, "NAMESPACE", "xmlns:Ad", 4, "www.Ad.com"},
+ { 65560, "NAMESPACE", "xmlns:y", 4, "www.y.com"},
+ { 65561, "NAMESPACE", "xmlns:z", 4, "www.z.com"},
+ { 65562, "ELEMENT", "Ad1", 4, null}
+ };
+
+ final Object[][] checkDescentsFromRoot = new Object[][]{
+ { 65537, "ELEMENT", "Document", 2, null},
+ { 65542, "COMMENT", "#comment", 3, " Default test document "},
+ { 65543, "PROCESSING_INSTRUCTION", "api", 3, "a1=\"yes\" a2=\"no\""},
+ { 65544, "ELEMENT", "A", 3, null},
+ { 65545, "COMMENT", "#comment", 4, " A Subtree "},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65549, "ELEMENT", "E", 7, null},
+ { 65550, "ELEMENT", "F", 8, null},
+ { 65554, "ELEMENT", "Aa", 3, null},
+ { 65555, "ELEMENT", "Ab", 3, null},
+ { 65556, "ELEMENT", "Ac", 3, null},
+ { 65557, "ELEMENT", "Ac1", 4, null},
+ { 65558, "ELEMENT", "Ad", 3, null},
+ { 65562, "ELEMENT", "Ad1", 4, null}
+ };
+
+ final Object[][] checkDescentsOrSelfFromRoot = new Object[][]{
+ { 65536, "DOCUMENT", "#document", 1, null},
+ { 65537, "ELEMENT", "Document", 2, null},
+ { 65542, "COMMENT", "#comment", 3, " Default test document "},
+ { 65543, "PROCESSING_INSTRUCTION", "api", 3, "a1=\"yes\" a2=\"no\""},
+ { 65544, "ELEMENT", "A", 3, null},
+ { 65545, "COMMENT", "#comment", 4, " A Subtree "},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65549, "ELEMENT", "E", 7, null},
+ { 65550, "ELEMENT", "F", 8, null},
+ { 65554, "ELEMENT", "Aa", 3, null},
+ { 65555, "ELEMENT", "Ab", 3, null},
+ { 65556, "ELEMENT", "Ac", 3, null},
+ { 65557, "ELEMENT", "Ac1", 4, null},
+ { 65558, "ELEMENT", "Ad", 3, null},
+ { 65562, "ELEMENT", "Ad1", 4, null}
+ };
+
+ final Object[][] checkANodeAll = new Object[][]{
+ { 65544, "ELEMENT", "A", 3, null},
+ { 65545, "COMMENT", "#comment", 4, " A Subtree "},
+ { 65546, "ELEMENT", "B", 4, null},
+ { 65547, "ELEMENT", "C", 5, null},
+ { 65548, "ELEMENT", "D", 6, null},
+ { 65549, "ELEMENT", "E", 7, null},
+ { 65550, "ELEMENT", "F", 8, null},
+ { 65551, "NAMESPACE", "xmlns:f", 9, "www.f.com"},
+ { 65552, "ATTRIBUTE", "a1", 9, "down"},
+ { 65553, "ATTRIBUTE", "a2", 9, "up"}
+ };
+
+ final Object[][] checkCNodeAll = new Object[][]{
+ { 65542, "COMMENT", "#comment", 3, " Default test document "}
+ };
+
+ return new Object[][]{
+ {65537, Axis.CHILD, "Document", chkChild},
+ {65558, Axis.PARENT, "Ad", chkParent},
+ {65558, Axis.SELF, "Ad", chkSelf},
+ {65558, Axis.NAMESPACE, "Ad", chkNamespace},
+ {65558, Axis.NAMESPACEDECLS, "Ad", chkNamespaceDecls},
+ {65558, Axis.PRECEDING, "Ad", chkPreceding},
+ {65558, Axis.PRECEDINGSIBLING, "Ad", chkPrecedingsibling},
+ {65558, Axis.FOLLOWING, "Ad", chkFollowing},
+ {65558, Axis.FOLLOWINGSIBLING, "Ad", checkFollowingSibling},
+ {65544, Axis.DESCENDANT, "A", checkDescendant},
+ {65544, Axis.DESCENDANTORSELF, "A", checkDescendantSelf},
+ {65550, Axis.ANCESTOR, "F", checkAncestor},
+ {65550, Axis.ANCESTORORSELF, "F", checkAncestorSelf},
+ {65550, Axis.ALLFROMNODE, "F", checkAllFromNode},
+ {65537, Axis.ATTRIBUTE, "Document", checkAttribute},
+ {65550, Axis.ALL, "F", checkAll},
+ {65550, Axis.DESCENDANTSFROMROOT, "F", checkDescentsFromRoot},
+ {65550, Axis.DESCENDANTSORSELFFROMROOT, "F", checkDescentsOrSelfFromRoot},
+ {65544, Axis.ALLFROMNODE, "A", checkANodeAll},
+ {65542, Axis.ALLFROMNODE, "#comment", checkCNodeAll}
+ };
+ }
+
+ /**
+ * Walk all kind of AxisTraversers and checking API as expected..
+ *
+ * @param startNode node id to get AxisTraverser.
+ * @param axisType Axis type.
+ * @param expectedName expected node name.
+ * @param expectedLines an two dimensional array that will be validate
+ * traversal of AxisTraverser
+ * @throws IOException if any I/O operation error.
+ */
+ @Test(dataProvider = "travProvider")
+ public void test(int startNode, int axisType, String expectedName,
+ Object[][] expectedLines) throws IOException {
+ // This permission is special for the testing.
+ setPermissions(
+ new RuntimePermission("accessClassInPackage.com.sun.org.apache.xml.internal.utils"),
+ new RuntimePermission("accessClassInPackage.com.sun.org.apache.xpath.internal.objects"));
+
+ // Get a Traverser by given axis type.
+ assertEquals(dtm.getNodeName(startNode), expectedName);
+ DTMAxisTraverser at = dtm.getAxisTraverser(axisType);
+
+ int line = 0;
+ // Traverse the axis and validate API output.
+ for (int travNode = at.first(startNode); DTM.NULL != travNode;
+ travNode = at.next(startNode, travNode), line++) {
+ assertEquals(travNode, expectedLines[line][0]);
+ assertEquals(getNodeName(dtm, travNode), expectedLines[line][1]);
+ assertEquals(dtm.getNodeName(travNode), expectedLines[line][2]);
+ Integer expectedLevel = (Integer)expectedLines[line][3];
+ assertEquals(dtm.getLevel(travNode), expectedLevel.shortValue());
+ assertEquals(dtm.getNodeValue(travNode), expectedLines[line][4]);
+ }
+ }
+}
--- /dev/null 2014-09-08 10:45:56.830930409 -0700
+++ new/test/javax/xml/jaxp/functional/org/apache/qetest/dtm/TestDTMTravDeep.java 2015-01-09 15:41:36.830117176 -0800
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qetest.dtm;
+
+import com.sun.org.apache.xml.internal.dtm.Axis;
+import com.sun.org.apache.xml.internal.dtm.DTM;
+import com.sun.org.apache.xml.internal.dtm.DTMAxisTraverser;
+import java.io.FilePermission;
+import java.util.ArrayList;
+import java.util.List;
+import jaxp.library.JAXPBaseTest;
+import static org.apache.qetest.dtm.QeDtmConst.XML_DIR;
+import static org.apache.qetest.dtm.QeDtmConst.createDTM;
+import static org.testng.Assert.assertEquals;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+/**
+ * Basic API test for DTMAxisTraverser. Traverser on different Axis type.
+ *
+ */
+public class TestDTMTravDeep extends JAXPBaseTest {
+ /**
+ * Traverser on different Axis type.
+ * @param axisType axis type.
+ * @param expectedLastNode expected last node we will validate.
+ * @param expectedTotal expected total node number we will validate.
+ */
+ @Test(dataProvider = "axisProvider")
+ public void test(int axisType, int expectedLastNode, int expectedTotal) {
+ setPermissions(new RuntimePermission("accessClassInPackage.com.sun.org.apache.xml.internal.utils"),
+ new RuntimePermission("accessClassInPackage.com.sun.org.apache.xpath.internal.objects"),
+ new FilePermission(System.getProperty("test.src") + "/-", "read"));
+ String deepFile = XML_DIR + "xtestdata/elem10kdeep.xml";
+
+ List lines = new ArrayList<>();
+ lines.add("Axis is " + Axis.getNames(axisType).toUpperCase());
+ DTM dtm = createDTM(0, deepFile, lines);
+ // Get various nodes to use as context nodes.
+ int dtmRoot = dtm.getDocument(); // #document
+ int DNode = dtm.getFirstChild(dtmRoot); //
+ // returns Traversal time, last node, number of nodes traversed
+ assertEquals(dtm.getNodeName(dtm.getFirstChild(DNode)), "e1");
+
+ // Get a iterator for Descendant:: axis.
+ DTMAxisTraverser trav = dtm.getAxisTraverser(Axis.DESCENDANT);
+ int lastNode = 0;
+ int numOfNodes = 0;
+ for (int atNode = trav.first(axisType); DTM.NULL != atNode;
+ atNode = trav.next(DNode, axisType)) {
+ lastNode = atNode;
+ numOfNodes = numOfNodes + 1;
+ }
+ assertEquals(lastNode, expectedLastNode);
+ assertEquals(numOfNodes, expectedTotal);
+ }
+
+ /**
+ * Axis types for testing.
+ * @return an array contains axis type and its expected number.
+ */
+ @DataProvider
+ public Object[][] axisProvider(){
+ return new Object[][]{
+ { Axis.DESCENDANT, 65536, 1},
+ { Axis.DESCENDANTORSELF, 65536, 1},
+ { Axis.ANCESTOR, 65536, 1},
+ { Axis.ANCESTORORSELF, 65536, 1},
+ };
+ }
+}
--- /dev/null 2014-09-08 10:45:56.830930409 -0700
+++ new/test/javax/xml/jaxp/functional/org/apache/qetest/dtm/content/xtestdata/elem10kdeep.xml 2015-01-09 15:41:37.135117651 -0800
@@ -0,0 +1,2 @@
+
+