8051559: Convert JAXP function tests: org.w3c.dom to jtreg (testng) tests
Reviewed-by: lancea, joehw
This commit is contained in:
parent
7d455864c8
commit
3334a718c9
@ -0,0 +1,231 @@
|
||||
/*
|
||||
* 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
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.testng.Assert.fail;
|
||||
import static org.w3c.dom.DOMException.INDEX_SIZE_ERR;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.DOMEXCEPTION_EXPECTED;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import jaxp.library.JAXPFileBaseTest;
|
||||
|
||||
import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.CharacterData;
|
||||
import org.w3c.dom.DOMException;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
/*
|
||||
* @summary common test for the CharacterData Interface
|
||||
*/
|
||||
public abstract class AbstractCharacterDataTest extends JAXPFileBaseTest {
|
||||
@DataProvider(name = "data-for-length")
|
||||
public Object[][] getDataForTestLength() {
|
||||
return new Object[][] {
|
||||
{ "", 0 },
|
||||
{ "test", 4 } };
|
||||
}
|
||||
|
||||
/*
|
||||
* Verify getLength method works as the spec, for an empty string, should
|
||||
* return zero
|
||||
*/
|
||||
@Test(dataProvider = "data-for-length")
|
||||
public void testGetLength(String text, int length) throws Exception {
|
||||
CharacterData cd = createCharacterData(text);
|
||||
assertEquals(cd.getLength(), length);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Test appendData method and verify by getData method.
|
||||
*/
|
||||
@Test
|
||||
public void testAppendData() throws Exception {
|
||||
CharacterData cd = createCharacterData("DOM");
|
||||
cd.appendData("2");
|
||||
assertEquals(cd.getData(), "DOM2");
|
||||
|
||||
}
|
||||
|
||||
@DataProvider(name = "data-for-delete")
|
||||
public Object[][] getDataForTestDelete() {
|
||||
return new Object[][] {
|
||||
{ "DOM", 2, 1, "DO" },
|
||||
{ "DOM", 0, 2, "M" },
|
||||
{ "DOM", 2, 3, "DO" } };
|
||||
}
|
||||
|
||||
/*
|
||||
* Verify deleteData method works as the spec.
|
||||
*/
|
||||
@Test(dataProvider = "data-for-delete")
|
||||
public void testDeleteData(String text, int offset, int count, String result) throws Exception {
|
||||
CharacterData cd = createCharacterData(text);
|
||||
cd.deleteData(offset, count);
|
||||
assertEquals(cd.getData(), result);
|
||||
}
|
||||
|
||||
@DataProvider(name = "data-for-replace")
|
||||
public Object[][] getDataForTestReplace() {
|
||||
return new Object[][] {
|
||||
{ "DOM", 0, 3, "SAX", "SAX" },
|
||||
{ "DOM", 1, 1, "AA", "DAAM" },
|
||||
{ "DOM", 1, 2, "A", "DA" },
|
||||
{ "DOM", 2, 2, "SAX", "DOSAX" } };
|
||||
}
|
||||
|
||||
/*
|
||||
* Verify replaceData method works as the spec.
|
||||
*/
|
||||
@Test(dataProvider = "data-for-replace")
|
||||
public void testReplaceData(String text, int offset, int count, String arg, String result) throws Exception {
|
||||
CharacterData cd = createCharacterData(text);
|
||||
cd.replaceData(offset, count, arg);
|
||||
assertEquals(cd.getData(), result);
|
||||
}
|
||||
|
||||
@DataProvider(name = "data-for-replace-neg")
|
||||
public Object[][] getDataForTestReplaceNeg() {
|
||||
return new Object[][] {
|
||||
{ "DOM", -1, 3, "SAX" }, //offset if neg
|
||||
{ "DOM", 0, -1, "SAX" }, //count is neg
|
||||
{ "DOM", 4, 1, "SAX" } };//offset is greater than length
|
||||
}
|
||||
|
||||
/*
|
||||
* Test for replaceData method: verifies that DOMException with
|
||||
* INDEX_SIZE_ERR is thrown if offset or count is out of the bound.
|
||||
*/
|
||||
@Test(dataProvider = "data-for-replace-neg")
|
||||
public void testReplaceDataNeg(String text, int offset, int count, String arg) throws Exception {
|
||||
CharacterData cd = createCharacterData(text);
|
||||
try {
|
||||
cd.replaceData(offset, count, arg);
|
||||
fail(DOMEXCEPTION_EXPECTED);
|
||||
} catch (DOMException e) {
|
||||
assertEquals(e.code, INDEX_SIZE_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
@DataProvider(name = "data-for-insert")
|
||||
public Object[][] getDataForTestInsert() {
|
||||
return new Object[][] {
|
||||
{ "DOM", 0, "SAX", "SAXDOM" },
|
||||
{ "DOM", 3, "SAX", "DOMSAX" } };
|
||||
}
|
||||
|
||||
/*
|
||||
* Verify insertData method works as the spec.
|
||||
*/
|
||||
@Test(dataProvider = "data-for-insert")
|
||||
public void testInsertData(String text, int offset, String arg, String result) throws Exception {
|
||||
CharacterData cd = createCharacterData(text);
|
||||
cd.insertData(offset, arg);
|
||||
assertEquals(cd.getData(), result);
|
||||
}
|
||||
|
||||
@DataProvider(name = "data-for-insert-neg")
|
||||
public Object[][] getDataForTestInsertNeg() {
|
||||
return new Object[][] {
|
||||
{ "DOM", -1 }, //offset is neg
|
||||
{ "DOM", 4 } };//offset is greater than length
|
||||
}
|
||||
|
||||
/*
|
||||
* Test for insertData method: verifies that DOMException with
|
||||
* INDEX_SIZE_ERR is thrown if offset is out of the bound.
|
||||
*/
|
||||
@Test(dataProvider = "data-for-insert-neg")
|
||||
public void testInsertDataNeg(String text, int offset) throws Exception {
|
||||
CharacterData cd = createCharacterData(text);
|
||||
try {
|
||||
cd.insertData(offset, "TEST");
|
||||
fail(DOMEXCEPTION_EXPECTED);
|
||||
} catch (DOMException e) {
|
||||
assertEquals(e.code, INDEX_SIZE_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Test setData method and verify by getData method.
|
||||
*/
|
||||
@Test
|
||||
public void testSetData() throws Exception {
|
||||
CharacterData cd = createCharacterData("DOM");
|
||||
cd.setData("SAX");
|
||||
assertEquals(cd.getData(), "SAX");
|
||||
}
|
||||
|
||||
@DataProvider(name = "data-for-substring")
|
||||
public Object[][] getDataForTestSubstring() {
|
||||
return new Object[][] {
|
||||
{ "DOM Level 2", 0, 3, "DOM" },
|
||||
{ "DOM", 0, 3, "DOM" },
|
||||
{ "DOM", 2, 5, "M" } };
|
||||
}
|
||||
|
||||
/*
|
||||
* Verify substringData method works as the spec.
|
||||
*/
|
||||
@Test(dataProvider = "data-for-substring")
|
||||
public void testSubstringData(String text, int offset, int count, String result) throws Exception {
|
||||
CharacterData cd = createCharacterData(text);
|
||||
String retStr = cd.substringData(offset, count);
|
||||
assertEquals(retStr, result);
|
||||
}
|
||||
|
||||
@DataProvider(name = "data-for-substring-neg")
|
||||
public Object[][] getDataForTestSubstringNeg() {
|
||||
return new Object[][] {
|
||||
{ "DOM Level 2", -1, 3 }, //offset is neg
|
||||
{ "DOM", 0, -1 }, //count is neg
|
||||
{ "DOM", 3, 1 } }; //offset exceeds length
|
||||
}
|
||||
|
||||
/*
|
||||
* Test for substringData method: verifies that DOMException with
|
||||
* INDEX_SIZE_ERR is thrown if offset or count is out of the bound.
|
||||
*/
|
||||
@Test(dataProvider = "data-for-substring-neg")
|
||||
public void testSubstringDataNeg(String text, int offset, int count) throws Exception {
|
||||
CharacterData cd = createCharacterData(text);
|
||||
try {
|
||||
cd.substringData(offset, count);
|
||||
fail(DOMEXCEPTION_EXPECTED);
|
||||
} catch (DOMException e) {
|
||||
assertEquals(e.code, INDEX_SIZE_ERR);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Return a concrete CharacterData instance.
|
||||
*/
|
||||
abstract protected CharacterData createCharacterData(String text) throws IOException, SAXException, ParserConfigurationException;
|
||||
|
||||
}
|
@ -0,0 +1,148 @@
|
||||
/*
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.testng.Assert.assertFalse;
|
||||
import static org.testng.Assert.assertNull;
|
||||
import static org.testng.Assert.assertTrue;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createDOM;
|
||||
import jaxp.library.JAXPFileBaseTest;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.Attr;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.NamedNodeMap;
|
||||
|
||||
|
||||
/*
|
||||
* @summary Test for the Attr Interface
|
||||
*/
|
||||
public class AttrTest extends JAXPFileBaseTest {
|
||||
/*
|
||||
* Verify getName method against both existing Attr and new Attr.
|
||||
*/
|
||||
@Test
|
||||
public void testGetName() throws Exception {
|
||||
Document document = createDOM("Attr01.xml");
|
||||
//test a new created Attr
|
||||
Attr attr = document.createAttribute("newAttribute");
|
||||
assertEquals(attr.getName(), "newAttribute");
|
||||
|
||||
//test a Attr loaded from xml file
|
||||
Element elemNode = (Element) document.getElementsByTagName("book").item(1);
|
||||
Attr attr2 = (Attr) elemNode.getAttributes().item(0);
|
||||
assertEquals(attr2.getName(), "category1");
|
||||
}
|
||||
|
||||
/*
|
||||
* Verify getOwnerElement method against both existing Attr and new Attr.
|
||||
*/
|
||||
@Test
|
||||
public void testGetOwnerElement() throws Exception {
|
||||
Document document = createDOM("Attr01.xml");
|
||||
|
||||
//test Attr loaded from xml file
|
||||
Element elemNode = (Element) document.getElementsByTagName("book").item(1);
|
||||
NamedNodeMap nnMap = elemNode.getAttributes();
|
||||
for (int i = 0; i < nnMap.getLength(); i++) {
|
||||
Attr attr = (Attr) nnMap.item(i);
|
||||
assertEquals(attr.getOwnerElement().getNodeName(), "book");
|
||||
}
|
||||
|
||||
//test an Attr without owner node
|
||||
Attr attr = document.createAttribute("newAttribute");
|
||||
assertNull(attr.getOwnerElement());
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Verify getSpecified method works as the spec.
|
||||
*/
|
||||
@Test
|
||||
public void testGetSpecified1() throws Exception {
|
||||
Document document = createDOM("Attr01.xml");
|
||||
|
||||
Element elemNode = (Element) document.getElementsByTagName("book").item(1);
|
||||
Attr attr = elemNode.getAttributeNode("category1");
|
||||
assertTrue(attr.getSpecified());
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* In this xml file, the dtd has the value for the attrribute, but the xml
|
||||
* element does not specify the value for the attrribute, as per the spec it
|
||||
* should return false.
|
||||
*/
|
||||
@Test
|
||||
public void testGetSpecified2() throws Exception {
|
||||
|
||||
Document document = createDOM("Attr2.xml");
|
||||
Element elemNode = (Element) document.getElementsByTagName("Name").item(0);
|
||||
Attr attr = elemNode.getAttributeNode("type");
|
||||
|
||||
assertFalse(attr.getSpecified());
|
||||
}
|
||||
|
||||
/*
|
||||
* Creating a new attribute, the owner element is null since the attribute
|
||||
* has just been created, getSpecified should return true.
|
||||
*/
|
||||
@Test
|
||||
public void testNewCreatedAttribute() throws Exception {
|
||||
Document document = createDOM("Attr01.xml");
|
||||
Attr attr = document.createAttribute("newAttribute");
|
||||
assertTrue(attr.getSpecified());
|
||||
assertNull(attr.getOwnerElement());
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* The xml file includes the dtd having the IMPLIED value for the attrribute
|
||||
* and the xml element does not specify the value. As per the spec it should
|
||||
* not be seen as a part of the structure model hence getAttributeNode
|
||||
* rerurn null if the attribute is even found.
|
||||
*/
|
||||
@Test
|
||||
public void testIMPLIEDAttribute() throws Exception {
|
||||
Document document = createDOM("Attr3.xml");
|
||||
Element elemNode = (Element) document.getElementsByTagName("Name").item(0);
|
||||
Attr attr = elemNode.getAttributeNode("type");
|
||||
assertNull(attr);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test setValue method and verify by getValue method.
|
||||
*/
|
||||
@Test
|
||||
public void testSetValue() throws Exception {
|
||||
Document document = createDOM("Attr01.xml");
|
||||
Attr attr = document.createAttribute("newAttribute");
|
||||
attr.setValue("newVal");
|
||||
assertEquals(attr.getValue(), "newVal");
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createNewDocument;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.w3c.dom.CharacterData;
|
||||
import org.w3c.dom.Document;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
/*
|
||||
* @summary Test for Comment implementation returned by Document.createComment(String)
|
||||
*/
|
||||
public class CommentTest extends AbstractCharacterDataTest {
|
||||
@Override
|
||||
protected CharacterData createCharacterData(String text) throws IOException, SAXException, ParserConfigurationException {
|
||||
Document document = createNewDocument();
|
||||
return document.createComment(text);
|
||||
}
|
||||
}
|
@ -0,0 +1,172 @@
|
||||
/*
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static javax.xml.XMLConstants.XMLNS_ATTRIBUTE_NS_URI;
|
||||
import static javax.xml.XMLConstants.XML_NS_URI;
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.testng.Assert.assertNotNull;
|
||||
import static org.testng.Assert.fail;
|
||||
import static org.w3c.dom.DOMException.NAMESPACE_ERR;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.DOMEXCEPTION_EXPECTED;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createDOMWithNS;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createNewDocument;
|
||||
import jaxp.library.JAXPFileBaseTest;
|
||||
|
||||
import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.Attr;
|
||||
import org.w3c.dom.DOMException;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
/*
|
||||
* @summary Test createAttributeNS, getElementsByTagNameNS and createElementNS method of Document
|
||||
*/
|
||||
public class DocumentTest extends JAXPFileBaseTest {
|
||||
|
||||
@DataProvider(name = "invalid-nsuri")
|
||||
public Object[][] getInvalidNamespaceURI() {
|
||||
return new Object[][] {
|
||||
{ " ", "xml:novel" }, //blank
|
||||
{ "hello", "xml:novel" }, //unqualified
|
||||
{ null, "xml:novel" }, //null
|
||||
{ "", "xmlns:novel" } };//empty
|
||||
}
|
||||
|
||||
/*
|
||||
* Test for createAttributeNS method: verifies that DOMException is thrown
|
||||
* if reserved prefixes are used with an arbitrary namespace name.
|
||||
*/
|
||||
@Test(dataProvider = "invalid-nsuri", expectedExceptions = DOMException.class)
|
||||
public void testCreateAttributeNSNeg(String namespaceURI, String name) throws Exception {
|
||||
Document document = createDOMWithNS("DocumentTest01.xml");
|
||||
document.createAttributeNS(namespaceURI, name);
|
||||
}
|
||||
|
||||
@DataProvider(name = "valid-nsuri")
|
||||
public Object[][] getValidNamespaceURI() {
|
||||
return new Object[][] {
|
||||
{ XML_NS_URI, "xml:novel" },
|
||||
{ XMLNS_ATTRIBUTE_NS_URI, "xmlns:novel" },
|
||||
{ "urn:BooksAreUs.org:BookInfo", "attributeNew"},
|
||||
{ "urn:BooksAreUs.org:BookInfonew", "attributeNew"} };
|
||||
}
|
||||
|
||||
/*
|
||||
* Verify the Attr from createAttributeNS.
|
||||
*/
|
||||
@Test(dataProvider = "valid-nsuri")
|
||||
public void testCreateAttributeNS(String namespaceURI, String name) throws Exception {
|
||||
Document document = createDOMWithNS("DocumentTest01.xml");
|
||||
Attr attr = document.createAttributeNS(namespaceURI, name);
|
||||
assertEquals(attr.getNamespaceURI(), namespaceURI);
|
||||
assertEquals(attr.getName(), name);
|
||||
}
|
||||
|
||||
@DataProvider(name = "elementName")
|
||||
public Object[][] getElementName() {
|
||||
return new Object[][] {
|
||||
{ "author", 1 },
|
||||
{ "b:author", 0 } };
|
||||
}
|
||||
|
||||
/*
|
||||
* Verify the NodeList from getElementsByTagNameNS.
|
||||
*/
|
||||
@Test(dataProvider = "elementName")
|
||||
public void testGetElementsByTagNameNS(String localName, int number) throws Exception {
|
||||
Document document = createDOMWithNS("DocumentTest01.xml");
|
||||
NodeList nodeList = document.getElementsByTagNameNS("urn:BooksAreUs.org:BookInfo", localName);
|
||||
assertEquals(nodeList.getLength(), number);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test for createElementNS method: verifies that DOMException is thrown
|
||||
* if reserved prefixes are used with an arbitrary namespace name.
|
||||
*/
|
||||
@Test(dataProvider = "invalid-nsuri")
|
||||
public void testCreateElementNSNeg(String namespaceURI, String name) throws Exception {
|
||||
Document document = createDOMWithNS("DocumentTest01.xml");
|
||||
try {
|
||||
document.createElementNS(namespaceURI, name);
|
||||
fail(DOMEXCEPTION_EXPECTED);
|
||||
} catch (DOMException e) {
|
||||
assertEquals(e.code, NAMESPACE_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Test createElementNS method works as the spec.
|
||||
*/
|
||||
@Test
|
||||
public void testCreateElementNS() throws Exception {
|
||||
final String nsURI = "http://www.books.com";
|
||||
final String name = "b:novel";
|
||||
final String localName = "novel";
|
||||
Document document = createDOMWithNS("DocumentTest01.xml");
|
||||
Element element = document.createElementNS(nsURI, name);
|
||||
assertEquals(element.getNamespaceURI(), nsURI);
|
||||
assertEquals(element.getNodeName(), name);
|
||||
assertEquals(element.getLocalName(), localName);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test createAttributeNS and then append it with setAttributeNode.
|
||||
*/
|
||||
@Test
|
||||
public void testAddNewAttributeNode() throws Exception {
|
||||
Document document = createDOMWithNS("DocumentTest01.xml");
|
||||
|
||||
NodeList nodeList = document.getElementsByTagNameNS("http://www.w3.org/TR/REC-html40", "body");
|
||||
NodeList childList = nodeList.item(0).getChildNodes();
|
||||
Element child = (Element) childList.item(1);
|
||||
Attr a = document.createAttributeNS("urn:BooksAreUs.org:BookInfo", "attributeNew");
|
||||
child.setAttributeNode(a);
|
||||
assertNotNull(child.getAttributeNodeNS("urn:BooksAreUs.org:BookInfo", "attributeNew"));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test createElementNS and then append it with appendChild.
|
||||
*/
|
||||
@Test
|
||||
public void testAddNewElement() throws Exception {
|
||||
Document document = createDOMWithNS("DocumentTest01.xml");
|
||||
|
||||
NodeList nodeList = document.getElementsByTagNameNS("http://www.w3.org/TR/REC-html40", "body");
|
||||
NodeList childList = nodeList.item(0).getChildNodes();
|
||||
Element child = (Element) childList.item(1);
|
||||
Element elem = document.createElementNS("urn:BooksAreUs.org:BookInfonew", "newElement");
|
||||
assertNotNull(child.appendChild(elem));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test createElement with unqualified xml name.
|
||||
*/
|
||||
@Test(expectedExceptions = DOMException.class)
|
||||
public void testCreateElementNeg() throws Exception {
|
||||
Document doc = createNewDocument();
|
||||
doc.createElement("!nc$%^*(!");
|
||||
}
|
||||
}
|
@ -0,0 +1,89 @@
|
||||
/*
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createDOM;
|
||||
import jaxp.library.JAXPFileBaseTest;
|
||||
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.DocumentType;
|
||||
import org.w3c.dom.NamedNodeMap;
|
||||
|
||||
/*
|
||||
* @summary Test DocumentType
|
||||
*/
|
||||
public class DocumentTypeTest extends JAXPFileBaseTest {
|
||||
|
||||
/*
|
||||
* Test testGetEntities method, and verify the entity items.
|
||||
*/
|
||||
@Test
|
||||
public void testGetEntities() throws Exception {
|
||||
DocumentType documentType = createDOM("DocumentType01.xml").getDoctype();
|
||||
NamedNodeMap namedNodeMap = documentType.getEntities();
|
||||
// should return both external and internal. Parameter entities are not
|
||||
// contained. Duplicates are discarded.
|
||||
assertEquals(namedNodeMap.getLength(), 3);
|
||||
assertEquals(namedNodeMap.item(0).getNodeName(), "author");
|
||||
assertEquals(namedNodeMap.item(1).getNodeName(), "test");
|
||||
assertEquals(namedNodeMap.item(2).getNodeName(), "writer");
|
||||
}
|
||||
|
||||
/*
|
||||
* Test getNotations method, and verify the notation items.
|
||||
*/
|
||||
@Test
|
||||
public void testGetNotations() throws Exception {
|
||||
DocumentType documentType = createDOM("DocumentType03.xml").getDoctype();
|
||||
NamedNodeMap nm = documentType.getNotations();
|
||||
assertEquals(nm.getLength(), 2); // should return 2 because the notation
|
||||
// name is repeated and
|
||||
// it considers only the first
|
||||
// occurence
|
||||
assertEquals(nm.item(0).getNodeName(), "gs");
|
||||
assertEquals(nm.item(1).getNodeName(), "name");
|
||||
}
|
||||
|
||||
/*
|
||||
* Test getName method.
|
||||
*/
|
||||
@Test
|
||||
public void testGetName() throws Exception {
|
||||
DocumentType documentType = createDOM("DocumentType03.xml").getDoctype();
|
||||
assertEquals(documentType.getName(), "note");
|
||||
}
|
||||
|
||||
/*
|
||||
* Test getSystemId and getPublicId method.
|
||||
*/
|
||||
@Test
|
||||
public void testGetSystemId() throws Exception {
|
||||
DocumentType documentType = createDOM("DocumentType05.xml").getDoctype();
|
||||
assertEquals(documentType.getSystemId(), "DocumentBuilderImpl02.dtd");
|
||||
Assert.assertNull(documentType.getPublicId());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,127 @@
|
||||
/*
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createNewDocument;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import jaxp.library.JAXPBaseTest;
|
||||
|
||||
import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.DOMImplementation;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.DocumentType;
|
||||
|
||||
/*
|
||||
* @summary Test DomImplementation API
|
||||
*/
|
||||
public class DomImplementationTest extends JAXPBaseTest {
|
||||
/*
|
||||
* Test createDocument method with a namespace uri, qualified name and null
|
||||
* for the doctype
|
||||
*/
|
||||
@Test
|
||||
public void testCreateDocument() throws ParserConfigurationException {
|
||||
final String nsURI = "http://www.document.com";
|
||||
final String name = "document:localName";
|
||||
DOMImplementation domImpl = getDOMImplementation();
|
||||
Document document = domImpl.createDocument(nsURI, name, null);
|
||||
assertEquals(document.getDocumentElement().getNamespaceURI(), nsURI);
|
||||
assertEquals(document.getDocumentElement().getNodeName(), name);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test createDocumentType method with name, public id and system id.
|
||||
*/
|
||||
@Test
|
||||
public void testCreateDocumentType01() throws ParserConfigurationException {
|
||||
final String name = "document:localName";
|
||||
final String publicId = "pubid";
|
||||
final String systemId = "sysid";
|
||||
|
||||
DOMImplementation domImpl = getDOMImplementation();
|
||||
DocumentType documentType = domImpl.createDocumentType(name, publicId, systemId);
|
||||
verifyDocumentType(documentType, name, publicId, systemId);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Test createDocument method using a DocumentType, verify the document will
|
||||
* take that Doctype.
|
||||
*/
|
||||
@Test
|
||||
public void testCreateDocumentType02() throws ParserConfigurationException {
|
||||
final String name = "document:localName";
|
||||
final String publicId = "-//W3C//DTD HTML 4.0 Transitional//EN";
|
||||
final String systemId = "http://www.w3.org/TR/REC-html40/loose.dtd";
|
||||
DOMImplementation domImpl = getDOMImplementation();
|
||||
|
||||
DocumentType documentType = domImpl.createDocumentType(name, publicId, systemId);
|
||||
Document document = domImpl.createDocument("http://www.document.com", "document:localName", documentType);
|
||||
verifyDocumentType(document.getDoctype(), name, publicId, systemId);
|
||||
}
|
||||
|
||||
@DataProvider(name = "feature-supported")
|
||||
public Object[][] getFeatureSupportedList() throws ParserConfigurationException {
|
||||
DOMImplementation impl = getDOMImplementation();
|
||||
return new Object[][] {
|
||||
{ impl, "XML", "2.0", true },
|
||||
{ impl, "HTML", "2.0", false },
|
||||
{ impl, "Views", "2.0", false },
|
||||
{ impl, "StyleSheets", "2.0", false },
|
||||
{ impl, "CSS", "2.0", false },
|
||||
{ impl, "CSS2", "2.0", false },
|
||||
{ impl, "Events", "2.0", true },
|
||||
{ impl, "UIEvents", "2.0", false },
|
||||
{ impl, "MouseEvents", "2.0", false },
|
||||
{ impl, "HTMLEvents", "2.0", false },
|
||||
{ impl, "Traversal", "2.0", true },
|
||||
{ impl, "Range", "2.0", true },
|
||||
{ impl, "Core", "2.0", true },
|
||||
{ impl, "XML", "", true } };
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Verify DOMImplementation for feature supporting.
|
||||
*/
|
||||
@Test(dataProvider = "feature-supported")
|
||||
public void testHasFeature(DOMImplementation impl, String feature, String version, boolean isSupported) {
|
||||
assertEquals(impl.hasFeature(feature,version), isSupported);
|
||||
}
|
||||
|
||||
|
||||
private DOMImplementation getDOMImplementation() throws ParserConfigurationException {
|
||||
return createNewDocument().getImplementation();
|
||||
}
|
||||
|
||||
|
||||
private void verifyDocumentType(DocumentType documentType, String name, String publicId, String systemId) {
|
||||
assertEquals(documentType.getPublicId(), publicId);
|
||||
assertEquals(documentType.getSystemId(), systemId);
|
||||
assertEquals(documentType.getName(), name);
|
||||
}
|
||||
}
|
@ -0,0 +1,253 @@
|
||||
/*
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static javax.xml.XMLConstants.XML_NS_URI;
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.testng.Assert.assertNull;
|
||||
import static org.testng.Assert.assertTrue;
|
||||
import static org.testng.Assert.fail;
|
||||
import static org.w3c.dom.DOMException.INUSE_ATTRIBUTE_ERR;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.DOMEXCEPTION_EXPECTED;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createDOM;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createDOMWithNS;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createNewDocument;
|
||||
|
||||
import java.io.StringReader;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
|
||||
import jaxp.library.JAXPFileBaseTest;
|
||||
|
||||
import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.Attr;
|
||||
import org.w3c.dom.DOMException;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
import org.xml.sax.InputSource;
|
||||
|
||||
/*
|
||||
* @summary Test for the methods of Element Interface
|
||||
*/
|
||||
public class ElementTest extends JAXPFileBaseTest {
|
||||
@Test
|
||||
public void testGetAttributeNS() throws Exception {
|
||||
Document document = createDOMWithNS("ElementSample01.xml");
|
||||
Element elemNode = (Element) document.getElementsByTagName("book").item(0);
|
||||
String s = elemNode.getAttributeNS("urn:BooksAreUs.org:BookInfo", "category");
|
||||
assertEquals(s, "research");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAttributeNodeNS() throws Exception {
|
||||
Document document = createDOMWithNS("ElementSample01.xml");
|
||||
Element elemNode = (Element) document.getElementsByTagName("book").item(0);
|
||||
Attr attr = elemNode.getAttributeNodeNS("urn:BooksAreUs.org:BookInfo", "category");
|
||||
assertEquals(attr.getValue(), "research");
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Test getAttributeNode to get a Attr and then remove it successfully by
|
||||
* removeAttributeNode.
|
||||
*/
|
||||
@Test
|
||||
public void testRemoveAttributeNode() throws Exception {
|
||||
Document document = createDOMWithNS("ElementSample01.xml");
|
||||
Element elemNode = (Element) document.getElementsByTagName("book").item(1);
|
||||
Attr attr = elemNode.getAttributeNode("category1");
|
||||
assertEquals(attr.getValue(), "research");
|
||||
|
||||
assertEquals(elemNode.getTagName(), "book");
|
||||
elemNode.removeAttributeNode(attr);
|
||||
assertEquals(elemNode.getAttribute("category1"), "");
|
||||
}
|
||||
|
||||
/*
|
||||
* Test removing an Attribute Node with removeAttributeNS(String
|
||||
* namespaceURI, String localName).
|
||||
*/
|
||||
@Test
|
||||
public void testRemoveAttributeNS() throws Exception {
|
||||
final String nsURI = "urn:BooksAreUs.org:BookInfo";
|
||||
final String localName = "category";
|
||||
Document document = createDOMWithNS("ElementSample01.xml");
|
||||
Element elemNode = (Element) document.getElementsByTagName("book").item(0);
|
||||
elemNode.removeAttributeNS(nsURI, localName);
|
||||
|
||||
assertNull(elemNode.getAttributeNodeNS(nsURI, localName));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test getFirstChild and getLastChild.
|
||||
*/
|
||||
@Test
|
||||
public void testGetChild() throws Exception {
|
||||
Document document = createDOMWithNS("ElementSample01.xml");
|
||||
Element elemNode = (Element) document.getElementsByTagName("b:aaa").item(0);
|
||||
elemNode.normalize();
|
||||
Node firstChild = elemNode.getFirstChild();
|
||||
Node lastChild = elemNode.getLastChild();
|
||||
assertEquals(firstChild.getNodeValue(), "fjfjf");
|
||||
assertEquals(lastChild.getNodeValue(), "fjfjf");
|
||||
}
|
||||
|
||||
/*
|
||||
* Test setAttributeNode with an Attr from createAttribute.
|
||||
*/
|
||||
@Test
|
||||
public void testSetAttributeNode() throws Exception {
|
||||
final String attrName = "myAttr";
|
||||
final String attrValue = "attrValue";
|
||||
Document document = createDOM("ElementSample02.xml");
|
||||
Element elemNode = document.createElement("pricetag2");
|
||||
Attr myAttr = document.createAttribute(attrName);
|
||||
myAttr.setValue(attrValue);
|
||||
|
||||
assertNull(elemNode.setAttributeNode(myAttr));
|
||||
assertEquals(elemNode.getAttribute(attrName), attrValue);
|
||||
}
|
||||
|
||||
@DataProvider(name = "attribute")
|
||||
public Object[][] getAttributeData() {
|
||||
return new Object[][] {
|
||||
{ "thisisname", "thisisitsvalue" },
|
||||
{ "style", "font-Family" } };
|
||||
}
|
||||
|
||||
@Test(dataProvider = "attribute")
|
||||
public void testSetAttribute(String name, String value) throws Exception {
|
||||
Document document = createDOM("ElementSample02.xml");
|
||||
Element elemNode = document.createElement("pricetag2");
|
||||
elemNode.setAttribute(name, value);
|
||||
assertEquals(elemNode.getAttribute(name), value);
|
||||
}
|
||||
|
||||
/*
|
||||
* Negative test for setAttribute, null is not a valid name.
|
||||
*/
|
||||
@Test(expectedExceptions = DOMException.class)
|
||||
public void testSetAttributeNeg() throws Exception {
|
||||
Document document = createDOM("ElementSample02.xml");
|
||||
Element elemNode = document.createElement("pricetag2");
|
||||
elemNode.setAttribute(null, null);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test setAttributeNode, newAttr can't be an attribute of another Element
|
||||
* object, must explicitly clone Attr nodes to re-use them in other
|
||||
* elements.
|
||||
*/
|
||||
@Test
|
||||
public void testDuplicateAttributeNode() throws Exception {
|
||||
final String name = "testAttrName";
|
||||
final String value = "testAttrValue";
|
||||
Document document = createNewDocument();
|
||||
Attr attr = document.createAttribute(name);
|
||||
attr.setValue(value);
|
||||
|
||||
Element element1 = document.createElement("AFirstElement");
|
||||
element1.setAttributeNode(attr);
|
||||
Element element2 = document.createElement("ASecondElement");
|
||||
Attr attr2 = (Attr) attr.cloneNode(true);
|
||||
element2.setAttributeNode(attr2);
|
||||
assertEquals(element1.getAttribute(name), element2.getAttribute(name));
|
||||
|
||||
Element element3 = document.createElement("AThirdElement");
|
||||
try {
|
||||
element3.setAttributeNode(attr);
|
||||
fail(DOMEXCEPTION_EXPECTED);
|
||||
} catch (DOMException doe) {
|
||||
assertEquals(doe.code, INUSE_ATTRIBUTE_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If not setting the namsepace aware method of DocumentBuilderFactory to
|
||||
* true, can't retrieve element by namespace and local name.
|
||||
*/
|
||||
@Test
|
||||
public void testNamespaceAware() throws Exception {
|
||||
Document document = createDOM("ElementSample02.xml");
|
||||
|
||||
NodeList nl = document.getElementsByTagNameNS("urn:BooksAreUs.org:BookInfo", "author");
|
||||
assertNull(nl.item(0));
|
||||
|
||||
nl = document.getDocumentElement().getElementsByTagNameNS("urn:BooksAreUs.org:BookInfo", "author");
|
||||
assertNull(nl.item(0));
|
||||
}
|
||||
|
||||
@DataProvider(name = "nsattribute")
|
||||
public Object[][] getNSAttributeData() {
|
||||
return new Object[][] {
|
||||
{ "h:html", "html", "attrValue" },
|
||||
{ "b:style", "style", "attrValue" } };
|
||||
}
|
||||
|
||||
/*
|
||||
* setAttributeNodeNS and verify it with getAttributeNS.
|
||||
*/
|
||||
@Test(dataProvider = "nsattribute")
|
||||
public void testSetAttributeNodeNS(String qualifiedName, String localName, String value) throws Exception {
|
||||
Document document = createDOM("ElementSample03.xml");
|
||||
Element elemNode = document.createElement("pricetag2");
|
||||
Attr myAttr = document.createAttributeNS(XML_NS_URI, qualifiedName);
|
||||
myAttr.setValue(value);
|
||||
assertNull(elemNode.setAttributeNodeNS(myAttr));
|
||||
assertEquals(elemNode.getAttributeNS(XML_NS_URI, localName), value);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHasAttributeNS() throws Exception {
|
||||
Document document = createDOMWithNS("ElementSample04.xml");
|
||||
NodeList nodeList = document.getElementsByTagName("body");
|
||||
NodeList childList = nodeList.item(0).getChildNodes();
|
||||
Element child = (Element) childList.item(7);
|
||||
assertTrue(child.hasAttributeNS("urn:BooksAreUs.org:BookInfo", "style"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testToString() throws Exception {
|
||||
final String xml =
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
|
||||
+ "<!DOCTYPE datacenterlist>"
|
||||
+ "<datacenterlist>"
|
||||
+ " <datacenterinfo"
|
||||
+ " id=\"0\""
|
||||
+ " naddrs=\"1\""
|
||||
+ " nnodes=\"1\""
|
||||
+ " ismaster=\"0\">\n"
|
||||
+ " <gateway ipaddr=\"192.168.100.27:26000\"/>"
|
||||
+ " </datacenterinfo>"
|
||||
+ "</datacenterlist>";
|
||||
|
||||
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(xml)));
|
||||
Element root = doc.getDocumentElement();
|
||||
|
||||
assertEquals(root.toString(), "[datacenterlist: null]");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.XML_DIR;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
|
||||
import jaxp.library.JAXPFileBaseTest;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
/*
|
||||
* @summary Test DOM Parser: parsing an xml file that contains external entities.
|
||||
*/
|
||||
public class EntityChildTest extends JAXPFileBaseTest {
|
||||
|
||||
@Test
|
||||
public void test() throws Exception {
|
||||
|
||||
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
||||
dbf.setValidating(true);
|
||||
DocumentBuilder docBuilder = dbf.newDocumentBuilder();
|
||||
Document document = docBuilder.parse(new File(XML_DIR + "entitychild.xml"));
|
||||
|
||||
Element root = document.getDocumentElement();
|
||||
NodeList n = root.getElementsByTagName("table");
|
||||
NodeList nl = n.item(0).getChildNodes();
|
||||
assertEquals(n.getLength(), 1);
|
||||
assertEquals(nl.getLength(), 3);
|
||||
}
|
||||
}
|
@ -0,0 +1,118 @@
|
||||
/*
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.testng.Assert.assertNull;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createDOMWithNS;
|
||||
import jaxp.library.JAXPFileBaseTest;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.Attr;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.NamedNodeMap;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
/*
|
||||
* @summary Test for the methods of NamedNodeMap Interface
|
||||
*/
|
||||
public class NamedNodeMapTest extends JAXPFileBaseTest {
|
||||
/*
|
||||
* Test setNamedItemNS method with a node having the same namespaceURI and
|
||||
* qualified name as an existing one, and then test with a non-existing node.
|
||||
*/
|
||||
@Test
|
||||
public void testSetNamedItemNS() throws Exception {
|
||||
final String nsURI = "urn:BooksAreUs.org:BookInfo";
|
||||
Document document = createDOMWithNS("NamedNodeMap01.xml");
|
||||
NodeList nodeList = document.getElementsByTagName("body");
|
||||
nodeList = nodeList.item(0).getChildNodes();
|
||||
Node n = nodeList.item(3);
|
||||
|
||||
NamedNodeMap namedNodeMap = n.getAttributes();
|
||||
|
||||
// creating an Attribute using createAttributeNS
|
||||
// method having the same namespaceURI
|
||||
// and the same qualified name as the existing one in the xml file
|
||||
Attr attr = document.createAttributeNS(nsURI, "b:style");
|
||||
// setting to a new Value
|
||||
attr.setValue("newValue");
|
||||
Node replacedAttr = namedNodeMap.setNamedItemNS(attr); // return the replaced attr
|
||||
assertEquals(replacedAttr.getNodeValue(), "font-family");
|
||||
Node updatedAttr = namedNodeMap.getNamedItemNS(nsURI, "style");
|
||||
assertEquals(updatedAttr.getNodeValue(), "newValue");
|
||||
|
||||
|
||||
// creating a non existing attribute node
|
||||
attr = document.createAttributeNS(nsURI, "b:newNode");
|
||||
attr.setValue("newValue");
|
||||
|
||||
assertNull(namedNodeMap.setNamedItemNS(attr)); // return null
|
||||
|
||||
// checking if the node could be accessed
|
||||
// using the getNamedItemNS method
|
||||
Node newAttr = namedNodeMap.getNamedItemNS(nsURI, "newNode");
|
||||
assertEquals(newAttr.getNodeValue(), "newValue");
|
||||
}
|
||||
|
||||
/*
|
||||
* Verify getNamedItemNS works as the spec
|
||||
*/
|
||||
@Test
|
||||
public void testGetNamedItemNS() throws Exception {
|
||||
Document document = createDOMWithNS("NamedNodeMap03.xml");
|
||||
NodeList nodeList = document.getElementsByTagName("body");
|
||||
nodeList = nodeList.item(0).getChildNodes();
|
||||
Node n = nodeList.item(7);
|
||||
NamedNodeMap namedNodeMap = n.getAttributes();
|
||||
Node node = namedNodeMap.getNamedItemNS("urn:BooksAreUs.org:BookInfo", "aaa");
|
||||
assertEquals(node.getNodeValue(), "value");
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Test setNamedItem method with a node having the same name as an existing
|
||||
* one, and then test with a non-existing node.
|
||||
*/
|
||||
@Test
|
||||
public void testSetNamedItem() throws Exception {
|
||||
Document document = createDOMWithNS("NamedNodeMap03.xml");
|
||||
NodeList nodeList = document.getElementsByTagName("body");
|
||||
nodeList = nodeList.item(0).getChildNodes();
|
||||
Node n = nodeList.item(1);
|
||||
|
||||
NamedNodeMap namedNodeMap = n.getAttributes();
|
||||
Attr attr = document.createAttribute("name");
|
||||
Node replacedAttr = namedNodeMap.setNamedItem(attr);
|
||||
assertEquals(replacedAttr.getNodeValue(), "attributeValue");
|
||||
Node updatedAttrNode = namedNodeMap.getNamedItem("name");
|
||||
assertEquals(updatedAttrNode.getNodeValue(), "");
|
||||
|
||||
Attr newAttr = document.createAttribute("nonExistingName");
|
||||
assertNull(namedNodeMap.setNamedItem(newAttr));
|
||||
Node newAttrNode = namedNodeMap.getNamedItem("nonExistingName");
|
||||
assertEquals(newAttrNode.getNodeValue(), "");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createDOM;
|
||||
import jaxp.library.JAXPFileBaseTest;
|
||||
|
||||
import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
/*
|
||||
* @summary Verifies a bug found in jaxp1.0.1 and 1.1FCS. After going out of
|
||||
* bound, the last element of a NodeList returns null. The bug has been fixed
|
||||
* in jaxp 1.1.1 build.
|
||||
*/
|
||||
public class NodeListTest extends JAXPFileBaseTest {
|
||||
|
||||
@DataProvider(name = "xml")
|
||||
public Object[][] getTestData() {
|
||||
return new Object[][] { { "nodelist.xml", "document" }, { "Node01.xml", "body" } };
|
||||
}
|
||||
|
||||
@Test(dataProvider = "xml")
|
||||
public void lastItemTest(String xmlFileName, String nodeName) throws Exception {
|
||||
Document document = createDOM(xmlFileName);
|
||||
|
||||
NodeList nl = document.getElementsByTagName(nodeName);
|
||||
int n = nl.getLength();
|
||||
|
||||
Element elem1 = (Element) nl.item(n - 1);
|
||||
nl.item(n);
|
||||
Element elem3 = (Element) nl.item(n - 1);
|
||||
assertEquals(elem3, elem1);
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,207 @@
|
||||
/*
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static jaxp.library.JAXPTestUtilities.compareWithGold;
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.testng.Assert.assertFalse;
|
||||
import static org.testng.Assert.assertNotEquals;
|
||||
import static org.testng.Assert.assertTrue;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.GOLDEN_DIR;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createDOM;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createDOMWithNS;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createNewDocument;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import javax.xml.transform.Transformer;
|
||||
import javax.xml.transform.TransformerException;
|
||||
import javax.xml.transform.TransformerFactory;
|
||||
import javax.xml.transform.TransformerFactoryConfigurationError;
|
||||
import javax.xml.transform.dom.DOMSource;
|
||||
import javax.xml.transform.stream.StreamResult;
|
||||
|
||||
import jaxp.library.JAXPFileBaseTest;
|
||||
|
||||
import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.DOMException;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.DocumentFragment;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
/*
|
||||
* @summary Test Node interface
|
||||
*/
|
||||
public class NodeTest extends JAXPFileBaseTest {
|
||||
@DataProvider(name = "feature-supported")
|
||||
public Object[][] getFeatureSupportedList() throws Exception {
|
||||
Document document = createDOMWithNS("Node01.xml");
|
||||
Node node = document.getElementsByTagName("body").item(0);
|
||||
return new Object[][] {
|
||||
{ node, "XML", "2.0", true },
|
||||
{ node, "HTML", "2.0", false },
|
||||
{ node, "Views", "2.0", false },
|
||||
{ node, "StyleSheets", "2.0", false },
|
||||
{ node, "CSS", "2.0", false },
|
||||
{ node, "CSS2", "2.0", false },
|
||||
{ node, "Events", "2.0", true },
|
||||
{ node, "UIEvents", "2.0", false },
|
||||
{ node, "MouseEvents", "2.0", false },
|
||||
{ node, "HTMLEvents", "2.0", false },
|
||||
{ node, "Traversal", "2.0", true },
|
||||
{ node, "Range", "2.0", true } };
|
||||
}
|
||||
|
||||
/*
|
||||
* Verify Node for feature supporting.
|
||||
*/
|
||||
@Test(dataProvider = "feature-supported")
|
||||
public void testHasFeature(Node node, String feature, String version, boolean supported) {
|
||||
assertEquals(node.isSupported(feature, version), supported);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test normalize method will merge adjacent Text nodes.
|
||||
*/
|
||||
@Test
|
||||
public void testNormalize() throws Exception {
|
||||
Document document = createDOM("Node05.xml");
|
||||
|
||||
Element root = document.getDocumentElement();
|
||||
|
||||
Node node = document.getElementsByTagName("title").item(0);
|
||||
node.appendChild(document.createTextNode("test"));
|
||||
root.normalize();
|
||||
assertEquals(node.getChildNodes().item(0).getNodeValue(), "Typographytest");
|
||||
}
|
||||
|
||||
/*
|
||||
* Test cloneNode deeply, and the clone node can be appended on the same document.
|
||||
*/
|
||||
@Test
|
||||
public void testCloneNode() throws Exception {
|
||||
Document document = createDOMWithNS("Node02.xml");
|
||||
|
||||
NodeList nodeList = document.getElementsByTagName("body");
|
||||
Node node = nodeList.item(0);
|
||||
Node cloneNode = node.cloneNode(true);
|
||||
|
||||
assertTrue(node.isEqualNode(cloneNode));
|
||||
assertNotEquals(node, cloneNode);
|
||||
|
||||
nodeList = document.getElementsByTagName("html");
|
||||
Node node2 = nodeList.item(0);
|
||||
node2.appendChild(cloneNode);
|
||||
}
|
||||
|
||||
/*
|
||||
* Test importing node from one document to another.
|
||||
*/
|
||||
@Test
|
||||
public void testImportNode() throws Exception {
|
||||
Document document = createDOMWithNS("Node02.xml");
|
||||
Document otherDocument = createDOMWithNS("ElementSample01.xml");
|
||||
|
||||
NodeList otherNodeList = otherDocument.getElementsByTagName("body");
|
||||
Node importedNode = otherNodeList.item(0);
|
||||
Node clone = importedNode.cloneNode(true);
|
||||
|
||||
Node retNode = document.importNode(importedNode, true);
|
||||
assertTrue(clone.isEqualNode(importedNode)); //verify importedNode is not changed
|
||||
assertNotEquals(retNode, importedNode);
|
||||
assertTrue(importedNode.isEqualNode(retNode));
|
||||
|
||||
retNode = document.importNode(importedNode, false);
|
||||
assertTrue(clone.isEqualNode(importedNode)); //verify importedNode is not changed
|
||||
assertEquals(retNode.getNodeName(), importedNode.getNodeName());
|
||||
assertFalse(importedNode.isEqualNode(retNode));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test inserting a document fragment before a particular node.
|
||||
*/
|
||||
@Test
|
||||
public void testInsertBefore() throws Exception {
|
||||
Document document = createDOM("Node04.xml");
|
||||
|
||||
Element parentElement = (Element) document.getElementsByTagName("to").item(0);
|
||||
Element element = (Element) document.getElementsByTagName("sender").item(0);
|
||||
parentElement.insertBefore(createTestDocumentFragment(document), element);
|
||||
|
||||
String outputfile = "InsertBefore.out";
|
||||
String goldfile = GOLDEN_DIR + "InsertBeforeGF.out";
|
||||
outputXml(document, outputfile);
|
||||
assertTrue(compareWithGold(goldfile, outputfile));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Test replacing a particular node with a document fragment.
|
||||
*/
|
||||
@Test
|
||||
public void testReplaceChild() throws Exception {
|
||||
Document document = createDOM("Node04.xml");
|
||||
|
||||
Element parentElement = (Element) document.getElementsByTagName("to").item(0);
|
||||
Element element = (Element) document.getElementsByTagName("sender").item(0);
|
||||
parentElement.replaceChild(createTestDocumentFragment(document), element);
|
||||
|
||||
String outputfile = "ReplaceChild3.out";
|
||||
String goldfile = GOLDEN_DIR + "ReplaceChild3GF.out";
|
||||
outputXml(document, outputfile);
|
||||
assertTrue(compareWithGold(goldfile, outputfile));
|
||||
}
|
||||
|
||||
/*
|
||||
* This test case checks for the replaceChild replacing a particular node
|
||||
* with a node which was created from a different document than the one
|
||||
* which is trying to use this method. It should throw a DOMException.
|
||||
*/
|
||||
@Test(expectedExceptions = DOMException.class)
|
||||
public void testReplaceChildNeg() throws Exception {
|
||||
Document document = createDOM("Node04.xml");
|
||||
Document doc2 = createNewDocument();
|
||||
|
||||
Element parentElement = (Element) document.getElementsByTagName("to").item(0);
|
||||
Element element = (Element) document.getElementsByTagName("sender").item(0);
|
||||
parentElement.replaceChild(createTestDocumentFragment(doc2), element);
|
||||
}
|
||||
|
||||
private DocumentFragment createTestDocumentFragment(Document document) {
|
||||
DocumentFragment docFragment = document.createDocumentFragment();
|
||||
Element elem = document.createElement("dfElement");
|
||||
elem.appendChild(document.createTextNode("Text in it"));
|
||||
docFragment.appendChild(elem);
|
||||
return docFragment;
|
||||
}
|
||||
|
||||
private void outputXml(Document document, String outputFileName) throws TransformerFactoryConfigurationError, TransformerException {
|
||||
DOMSource domSource = new DOMSource(document);
|
||||
Transformer transformer = TransformerFactory.newInstance().newTransformer();
|
||||
StreamResult streamResult = new StreamResult(new File(outputFileName));
|
||||
transformer.transform(domSource, streamResult);
|
||||
}
|
||||
}
|
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createDOM;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import jaxp.library.JAXPFileBaseTest;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.NamedNodeMap;
|
||||
import org.w3c.dom.Notation;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
/*
|
||||
* @summary Test for Notation interface
|
||||
*/
|
||||
public class NotationTest extends JAXPFileBaseTest {
|
||||
/*
|
||||
* Test getSystemId method.
|
||||
*/
|
||||
@Test
|
||||
public void testGetSystemId() throws Exception {
|
||||
assertEquals(findNotation("gs").getSystemId(), "http://who.knows.where/");
|
||||
}
|
||||
|
||||
/*
|
||||
* Test getPublicId method.
|
||||
*/
|
||||
@Test
|
||||
public void testGetPublicId() throws Exception {
|
||||
assertEquals(findNotation("pubname").getPublicId(), "pubId");
|
||||
}
|
||||
|
||||
//find notation in Notation01.xml
|
||||
private Notation findNotation(String name) throws SAXException, IOException, ParserConfigurationException {
|
||||
Document document = createDOM("Notation01.xml");
|
||||
NamedNodeMap nm = document.getDoctype().getNotations();
|
||||
for (int i = 0; i < nm.getLength(); i++) {
|
||||
if (nm.item(i).getNodeName().equals(name)) {
|
||||
return (Notation) nm.item(i);
|
||||
}
|
||||
}
|
||||
throw new RuntimeException("Notation: '" + name + "' not found.");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createDOMWithNS;
|
||||
import jaxp.library.JAXPFileBaseTest;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.ProcessingInstruction;
|
||||
|
||||
/*
|
||||
* @summary Test for the methods of Processing Instruction
|
||||
*/
|
||||
public class PITest extends JAXPFileBaseTest {
|
||||
/*
|
||||
* Test getData, setData and getTarget methods
|
||||
*/
|
||||
@Test
|
||||
public void test() throws Exception {
|
||||
Document document = createDOMWithNS("PITest01.xml");
|
||||
ProcessingInstruction pi = document.createProcessingInstruction("PI", "processing");
|
||||
assertEquals(pi.getData(), "processing");
|
||||
assertEquals(pi.getTarget(), "PI");
|
||||
|
||||
pi.setData("newProcessing");
|
||||
assertEquals(pi.getData(), "newProcessing");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
/*
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createDOMWithNS;
|
||||
import static org.w3c.dom.ptests.DOMTestUtil.createNewDocument;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.CharacterData;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
import org.w3c.dom.Text;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
/*
|
||||
* @summary Test for Text implementation returned by Document.createTextNode(String)
|
||||
*/
|
||||
public class TextTest extends AbstractCharacterDataTest {
|
||||
/*
|
||||
* Verify splitText method works as the spec.
|
||||
*/
|
||||
@Test
|
||||
public void testSplitText() throws Exception {
|
||||
Document document = createDOMWithNS("Text01.xml");
|
||||
|
||||
NodeList nodeList = document.getElementsByTagName("p");
|
||||
Node node = nodeList.item(0);
|
||||
Text textNode = document.createTextNode("This is a text node");
|
||||
node.appendChild(textNode);
|
||||
int rawChildNum = node.getChildNodes().getLength();
|
||||
|
||||
textNode.splitText(0);
|
||||
int increased = node.getChildNodes().getLength() - rawChildNum;
|
||||
assertEquals(increased, 1);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CharacterData createCharacterData(String text) throws IOException, SAXException, ParserConfigurationException {
|
||||
Document document = createNewDocument();
|
||||
return document.createTextNode(text);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,138 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 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 org.w3c.dom.ptests;
|
||||
|
||||
import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
import java.io.StringReader;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
|
||||
import jaxp.library.JAXPBaseTest;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.TypeInfo;
|
||||
import org.xml.sax.InputSource;
|
||||
|
||||
/*
|
||||
* @summary Test getTypeName and getTypeNamespace methods of TypeInfo interface
|
||||
*/
|
||||
public class TypeInfoTest extends JAXPBaseTest {
|
||||
/*
|
||||
* Get the TypeInfo of the root element, and verify it.
|
||||
*/
|
||||
@Test
|
||||
public void test() throws Exception {
|
||||
TypeInfo typeInfo = getTypeOfRoot(SCHEMA_INSTANCE, "<?xml version='1.0'?>\n" + "<test1 xmlns=\"testNS\"><code/></test1>\n");
|
||||
|
||||
assertEquals(typeInfo.getTypeName(), "Test");
|
||||
assertEquals(typeInfo.getTypeNamespace(), "testNS");
|
||||
|
||||
}
|
||||
|
||||
private TypeInfo getTypeOfRoot(String schemaText, String docText) throws Exception {
|
||||
Element root = getRoot(schemaText, docText);
|
||||
return root.getSchemaTypeInfo();
|
||||
}
|
||||
|
||||
private Element getRoot(String schemaText, String docText) throws Exception {
|
||||
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
||||
|
||||
InputSource inSchema = new InputSource(new StringReader(schemaText));
|
||||
inSchema.setSystemId("schema.xsd");
|
||||
dbf.setNamespaceAware(true);
|
||||
dbf.setValidating(true);
|
||||
dbf.setAttribute(SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
|
||||
dbf.setAttribute(SCHEMA_SOURCE, inSchema);
|
||||
|
||||
DocumentBuilder parser = dbf.newDocumentBuilder();
|
||||
|
||||
InputSource inSource = new InputSource(new StringReader(docText));
|
||||
inSource.setSystemId("doc.xml");
|
||||
Document document = parser.parse(inSource);
|
||||
|
||||
return document.getDocumentElement();
|
||||
}
|
||||
|
||||
private static final String SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
|
||||
|
||||
private static final String SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
|
||||
|
||||
/*
|
||||
* Schema instance
|
||||
*/
|
||||
private static final String SCHEMA_INSTANCE =
|
||||
"<?xml version=\"1.0\"?>\n"
|
||||
+ "<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"\n"
|
||||
+ " xmlns:testNS=\"testNS\"\n"
|
||||
+ " targetNamespace=\"testNS\" elementFormDefault=\"qualified\">\n"
|
||||
+ " <xsd:element name=\"test1\" type=\"testNS:Test\"/>\n"
|
||||
+ " \n"
|
||||
+ " <xsd:complexType name=\"Test\">\n"
|
||||
+ " <xsd:sequence>\n"
|
||||
+ " <xsd:element name=\"description\" minOccurs=\"0\"/>\n"
|
||||
+ " <xsd:element name=\"code\"/>\n"
|
||||
+ " </xsd:sequence>\n"
|
||||
+ " </xsd:complexType>\n"
|
||||
+ "\n"
|
||||
+ " <xsd:element name=\"test2\">\n"
|
||||
+ " <xsd:complexType>\n"
|
||||
+ " <xsd:sequence>\n"
|
||||
+ " <xsd:element name=\"description\" minOccurs=\"0\"/>\n"
|
||||
+ " <xsd:element name=\"code\"/>\n"
|
||||
+ " </xsd:sequence>\n"
|
||||
+ " </xsd:complexType>\n"
|
||||
+ " </xsd:element>\n"
|
||||
+ "\n"
|
||||
+ " <xsd:element name=\"test3\" type=\"xsd:string\"/>\n"
|
||||
+ "\n"
|
||||
+ " <xsd:element name=\"test4\" type=\"testNS:Test1\"/>\n"
|
||||
+ "\n"
|
||||
+ " <xsd:simpleType name=\"Test1\">\n"
|
||||
+ " <xsd:restriction base=\"xsd:string\"/>\n"
|
||||
+ " </xsd:simpleType>\n"
|
||||
+ "\n"
|
||||
+ " <xsd:element name=\"test5\">\n"
|
||||
+ " <xsd:simpleType>\n"
|
||||
+ " <xsd:restriction base=\"xsd:string\"/>\n"
|
||||
+ " </xsd:simpleType>\n"
|
||||
+ " </xsd:element>\n"
|
||||
+ "\n"
|
||||
+ " <xsd:element name=\"test6\">\n"
|
||||
+ " <xsd:complexType>\n"
|
||||
+ " <xsd:complexContent>\n"
|
||||
+ " <xsd:extension base=\"testNS:Test\">\n"
|
||||
+ " <xsd:attribute name=\"attr\" type=\"xsd:string\"/>\n"
|
||||
+ " </xsd:extension>\n"
|
||||
+ " </xsd:complexContent>\n"
|
||||
+ " </xsd:complexType>\n"
|
||||
+ " </xsd:element>\n"
|
||||
+ "\n"
|
||||
+ "</xsd:schema>\n";
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<html xmlns="http://www.w3.org/TR/REC-html40"
|
||||
xmlns:b="urn:BooksAreUs.org:BookInfo">
|
||||
<head>
|
||||
<title>Typography</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p> Welcome to the world of typography! Here is a book that you may find useful.</p>
|
||||
<b:title style="font-family: sans-serif;">Digital Typography</b:title>
|
||||
<b:author>Donald Knuth</b:author>
|
||||
<b:aaa>fjfjf</b:aaa>
|
||||
</body>
|
||||
<book b:category="research">Numerical Analysis of Partial Differential Equations</book>
|
||||
<book category1="research">Numerical Analysis of Partial Differential Equations</book>
|
||||
|
||||
|
||||
</html>
|
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE Book
|
||||
[
|
||||
<!ELEMENT Name (#PCDATA)>
|
||||
<!ATTLIST Name type CDATA "fiction">
|
||||
|
||||
]>
|
||||
|
||||
<Book>
|
||||
<Name>World's best book </Name>
|
||||
</Book>
|
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE Book
|
||||
[
|
||||
<!ELEMENT Name (#PCDATA)>
|
||||
<!ATTLIST Name type CDATA #IMPLIED>
|
||||
]>
|
||||
|
||||
<Book>
|
||||
<Name>World's best book </Name>
|
||||
</Book>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<html xmlns="http://www.w3.org/TR/REC-html40"
|
||||
xmlns:b="urn:BooksAreUs.org:BookInfo">
|
||||
<head>
|
||||
<title>Typography</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p></p>
|
||||
<b:title style="font-family: sans-serif;">Digital Typography</b:title>
|
||||
<b:author>Donald Knuth</b:author>
|
||||
<book b:aaa ="value">fjfjf</book>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,12 @@
|
||||
<!ELEMENT document ANY>
|
||||
<!ELEMENT title (#PCDATA)>
|
||||
<!ELEMENT publisher (#PCDATA)>
|
||||
<!ELEMENT book (#PCDATA)>
|
||||
<!ELEMENT bookurn (#PCDATA)>
|
||||
<!ATTLIST book price CDATA "$100">
|
||||
<!ATTLIST book author CDATA "Herold">
|
||||
<!ATTLIST book number ID #REQUIRED>
|
||||
<!ATTLIST bookurn xmlns CDATA "10">
|
||||
<!ATTLIST bookurn xmlns:isbn CDATA "10">
|
||||
<!ENTITY w "William">
|
||||
<!ENTITY s "Shakespeare">
|
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
<html xmlns:h="http://www.w3.org/TR/REC-html40"
|
||||
xmlns:b="urn:BooksAreUs.org:BookInfo">
|
||||
<h:head>
|
||||
<h:title>Typography</h:title>
|
||||
</h:head>
|
||||
<h:body>
|
||||
<h:p>Welcome to the world of typography! Here is a book that you may find useful.</h:p>
|
||||
<b:title h:style="font-family: sans-serif;">Digital Typography</b:title>
|
||||
<b:author>Donald Knuth</b:author>
|
||||
</h:body>
|
||||
</html>
|
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE note [
|
||||
<!ELEMENT note (to,from,heading,body)>
|
||||
<!ELEMENT to (#PCDATA)>
|
||||
<!ENTITY writer "Albert Einstein">
|
||||
<!ENTITY author "Albert Einstein">
|
||||
<!ENTITY test SYSTEM "test.txt">
|
||||
<!ENTITY % test2 "test2">
|
||||
<!ENTITY author "author">
|
||||
]>
|
||||
<note>
|
||||
<to>&writer;</to>
|
||||
|
||||
</note>
|
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE note [
|
||||
<!ELEMENT note (to,from,heading,body)>
|
||||
<!ELEMENT to (#PCDATA)>
|
||||
<!NOTATION gs SYSTEM "GhostScript">
|
||||
|
||||
|
||||
<!NOTATION name PUBLIC "pubId">
|
||||
|
||||
|
||||
<!NOTATION name PUBLIC "pubId" "sysId">
|
||||
|
||||
|
||||
<!NOTATION name SYSTEM "sysId">
|
||||
]>
|
||||
<note>
|
||||
<to>lll</to>
|
||||
|
||||
</note>
|
@ -0,0 +1,12 @@
|
||||
<!ELEMENT document ANY>
|
||||
<!ELEMENT title (#PCDATA)>
|
||||
<!ELEMENT publisher (#PCDATA)>
|
||||
<!ELEMENT book (#PCDATA)>
|
||||
<!ELEMENT bookurn (#PCDATA)>
|
||||
<!ATTLIST book price CDATA "$100">
|
||||
<!ATTLIST book author CDATA "Herold">
|
||||
<!ATTLIST book number ID #REQUIRED>
|
||||
<!ATTLIST bookurn xmlns CDATA "10">
|
||||
<!ATTLIST bookurn xmlns:isbn CDATA "10">
|
||||
<!ENTITY w "William">
|
||||
<!ENTITY s "Shakespeare">
|
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE document SYSTEM "DocumentBuilderImpl02.dtd">
|
||||
<document>
|
||||
|
||||
Publishers of the Music of New York Women Composers
|
||||
|
||||
<title>The Publishers </title>
|
||||
|
||||
<publisher>
|
||||
Alfred Publishing
|
||||
&w;
|
||||
15535 Morrison
|
||||
South Oaks CA 91403
|
||||
</publisher>
|
||||
|
||||
<book price="$100" author = "Herold" number = "no_11">
|
||||
eXtensible Markup Language
|
||||
</book>
|
||||
|
||||
<bookurn xmlns='urn:loc.gov:books'
|
||||
xmlns:isbn='urn:ISBN:0-395-36341-6'/>
|
||||
|
||||
|
||||
Publishers are not noted in report by time.
|
||||
|
||||
</document>
|
||||
|
||||
|
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<html xmlns="http://www.w3.org/TR/REC-html40"
|
||||
xmlns:b="urn:BooksAreUs.org:BookInfo">
|
||||
<head>
|
||||
<title>Typography</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p> Welcome to the world of typography! Here is a book that you may find useful.</p>
|
||||
<b:title style="font-family: sans-serif;">Digital Typography</b:title>
|
||||
<b:author>Donald Knuth</b:author>
|
||||
<b:aaa>fjfjf</b:aaa>
|
||||
</body>
|
||||
<book b:category="research">Numerical Analysis of Partial Differential Equations</book>
|
||||
<book category1="research">Numerical Analysis of Partial Differential Equations</book>
|
||||
|
||||
|
||||
</html>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<html xmlns="http://www.w3.org/TR/REC-html40"
|
||||
xmlns:b="urn:BooksAreUs.org:BookInfo">
|
||||
<head>
|
||||
<title>Typography</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p style = "font-family"> Welcome to the world of typography! Here is a book that you may find useful.</p>
|
||||
<b:title style="font-family: sans-serif;">Digital Typography</b:title>
|
||||
<b:author>Donald Knuth</b:author>
|
||||
<b:aaa>fjfjf</b:aaa>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<html xmlns="http://www.w3.org/TR/REC-html40"
|
||||
xmlns:b="urn:BooksAreUs.org:BookInfo">
|
||||
<head>
|
||||
<title>Typography</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p> Welcome to the world of typography! Here is a book that you may find useful.</p>
|
||||
<b:title b:style="font-family: sans-serif;">Digital Typography</b:title>
|
||||
<b:author>Donald Knuth</b:author>
|
||||
<b:aaa>fjfjf</b:aaa>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<html xmlns="http://www.w3.org/TR/REC-html40"
|
||||
xmlns:b="urn:BooksAreUs.org:BookInfo">
|
||||
<head>
|
||||
<title>Typography</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p name = "attributeValue"> Welcome to the world of typography! Here is a book that you may find useful.</p>
|
||||
<b:title b:style="font-family: sans-serif;">Digital Typography</b:title>
|
||||
<b:author>Donald Knuth</b:author>
|
||||
<b:aaa b:style="font-family">this is it</b:aaa>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<html xmlns="http://www.w3.org/TR/REC-html40"
|
||||
xmlns:b="urn:BooksAreUs.org:BookInfo">
|
||||
<head>
|
||||
<title>Typography</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p name = "attributeValue"> Welcome to the world of typography! Here is a book that you may find useful.</p>
|
||||
<world b:style="font-family">Digital Typography</world>
|
||||
<b:author>Donald Knuth</b:author>
|
||||
<book b:aaa ="value">fjfjf</book>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<html xmlns="http://www.w3.org/TR/REC-html40"
|
||||
xmlns:b="urn:BooksAreUs.org:BookInfo">
|
||||
<head>
|
||||
<title>Typography</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p name = "attributeValue"> Welcome to the world of typography! Here is a book that you may find useful.</p>
|
||||
<b:title style="font-family: sans-serif;">Digital Typography</b:title>
|
||||
<b:author>Donald Knuth</b:author>
|
||||
<book b:aaa ="value">fjfjf</book>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<html xmlns="http://www.w3.org/TR/REC-html40"
|
||||
xmlns:b="urn:BooksAreUs.org:BookInfo">
|
||||
<head>
|
||||
<title>Typography</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p name = "attributeValue"> Welcome to the world of typography! Here is a book that you may find useful.</p>
|
||||
<world b:style="font-family">Digital Typography</world>
|
||||
<b:author>Donald Knuth</b:author>
|
||||
<book b:aaa ="value">fjfjf</book>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<html xmlns="http://www.w3.org/TR/REC-html40"
|
||||
xmlns:b="urn:BooksAreUs.org:BookInfo">
|
||||
<head>
|
||||
<title>Typography</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p name = "attributeValue"> Welcome to the world of typography! Here is a book that you may find useful.</p>
|
||||
<b:title style="font-family: sans-serif;">Digital Typography</b:title>
|
||||
<b:author>Donald Knuth</b:author>
|
||||
<book b:aaa ="value">fjfjf</book>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<note>
|
||||
<to>
|
||||
<sender>John</sender>
|
||||
</to>
|
||||
<with>message </with>
|
||||
<body> weekend!</body>
|
||||
</note>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0"?>
|
||||
<html>
|
||||
<head>
|
||||
<title>Typography</title>
|
||||
</head>
|
||||
</html>
|
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE note [
|
||||
<!ELEMENT note (to,from,heading,body)>
|
||||
<!ELEMENT to (#PCDATA)>
|
||||
<!NOTATION gs SYSTEM "http://who.knows.where/">
|
||||
|
||||
|
||||
<!NOTATION pubname PUBLIC "pubId">
|
||||
|
||||
|
||||
<!NOTATION comname PUBLIC "pubId" "sysId">
|
||||
|
||||
|
||||
<!NOTATION name SYSTEM "http://who.knows.where/">
|
||||
]>
|
||||
<note>
|
||||
<to>lll</to>
|
||||
|
||||
</note>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<html xmlns="http://www.w3.org/TR/REC-html40"
|
||||
xmlns:b="urn:BooksAreUs.org:BookInfo">
|
||||
<head>
|
||||
<title>Typography</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p name = "attributeValue"> Welcome to the world of typography! Here is a book that you may find useful.</p>
|
||||
<world b:style="font-family">Digital Typography</world>
|
||||
<b:author>Donald Knuth</b:author>
|
||||
<book b:aaa ="value">fjfjf</book>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<html xmlns="http://www.w3.org/TR/REC-html40"
|
||||
xmlns:b="urn:BooksAreUs.org:BookInfo">
|
||||
<head>
|
||||
<title>Typography</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p></p>
|
||||
<b:title style="font-family: sans-serif;">Digital Typography</b:title>
|
||||
<b:author>Donald Knuth</b:author>
|
||||
<book b:aaa ="value">fjfjf</book>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<table name="table">
|
||||
<column name="Column" expr="col">
|
||||
&mkm;
|
||||
</column>
|
||||
</table>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE main [
|
||||
<!ELEMENT main (table)*>
|
||||
<!ELEMENT table (column)*>
|
||||
<!ATTLIST table name NMTOKEN #REQUIRED>
|
||||
<!ELEMENT column ANY>
|
||||
<!ATTLIST column name NMTOKEN #REQUIRED>
|
||||
<!ATTLIST column expr CDATA #REQUIRED>
|
||||
<!ENTITY mkm "mkrishnamohan">
|
||||
<!ENTITY ee SYSTEM "ee.xml">
|
||||
]>
|
||||
|
||||
<main>
|
||||
ⅇ
|
||||
</main>
|
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<document>onenode</document>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><note>
|
||||
<to>
|
||||
<dfElement>Text in it</dfElement><sender>John</sender>
|
||||
</to>
|
||||
<with>message </with>
|
||||
<body> weekend!</body>
|
||||
</note>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><note>
|
||||
<to>
|
||||
<dfElement>Text in it</dfElement>
|
||||
</to>
|
||||
<with>message </with>
|
||||
<body> weekend!</body>
|
||||
</note>
|
@ -0,0 +1,81 @@
|
||||
/*
|
||||
* 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
|
||||
* 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 org.w3c.dom.ptests;
|
||||
|
||||
import static jaxp.library.JAXPTestUtilities.FILE_SEP;
|
||||
import static jaxp.library.JAXPTestUtilities.getPathByClassName;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
/*
|
||||
* This class defines the path constant and common method
|
||||
*/
|
||||
public class DOMTestUtil {
|
||||
/*
|
||||
* XML source file directory.
|
||||
*/
|
||||
public static final String XML_DIR = getPathByClassName(DOMTestUtil.class, ".." + FILE_SEP + "xmlfiles");
|
||||
|
||||
/*
|
||||
* Golden validation files directory.
|
||||
*/
|
||||
public static final String GOLDEN_DIR = getPathByClassName(DOMTestUtil.class, ".." + FILE_SEP + "xmlfiles" + FILE_SEP + "out");
|
||||
|
||||
/*
|
||||
* Error Message for DOMException being expected.
|
||||
*/
|
||||
public static final String DOMEXCEPTION_EXPECTED = "Should throw DOMException";
|
||||
|
||||
/*
|
||||
* Create DOM Document from an xml file.
|
||||
*/
|
||||
public static Document createDOM(String xmlFileName) throws SAXException, IOException, ParserConfigurationException {
|
||||
return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(XML_DIR + xmlFileName));
|
||||
}
|
||||
|
||||
/*
|
||||
* Create DOM Document from an xml file with setNamespaceAware(true).
|
||||
*/
|
||||
public static Document createDOMWithNS(String xmlFileName) throws IOException, SAXException, ParserConfigurationException {
|
||||
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
||||
dbf.setNamespaceAware(true);
|
||||
return dbf.newDocumentBuilder().parse(new File(XML_DIR + xmlFileName));
|
||||
}
|
||||
|
||||
/*
|
||||
* Create a new DOM Document.
|
||||
*/
|
||||
public static Document createNewDocument() throws ParserConfigurationException {
|
||||
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder db = dbf.newDocumentBuilder();
|
||||
return db.newDocument();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user