1 package tests.org.w3c.dom;
2 
3 import org.w3c.dom.Document;
4 import org.w3c.dom.DocumentType;
5 import org.w3c.dom.DOMImplementation;
6 import org.w3c.dom.NodeList;
7 import org.w3c.dom.Element;
8 
9 import javax.xml.parsers.DocumentBuilder;
10 
11 /**
12  * The method getElementsByTagNameNS returns a NodeList of all the Elements with
13  * a given local name and namespace URI in the order in which they are
14  * encountered in a preorder traversal of the Document tree.
15  *
16  * Invoke the getElementsByTagNameNS method on a new Document object with the
17  * values of namespaceURI=* and localName=*. This should return a nodeList of 1
18  * item.
19  *
20  * @author IBM
21  * @author Neil Delima
22  * @see <a
23  *      href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a>
24  * @see <a
25  *      href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
26  * @see <a
27  *      href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
28  */
29 public final class DocumentGetElementsByTagnameNS extends DOMTestCase {
30 
31     DOMDocumentBuilderFactory factory;
32 
33     DocumentBuilder builder;
34 
setUp()35     protected void setUp() throws Exception {
36         super.setUp();
37         try {
38             factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
39                     .getConfiguration2());
40             builder = factory.getBuilder();
41         } catch (Exception e) {
42             fail("Unexpected exception" + e.getMessage());
43         }
44     }
45 
tearDown()46     protected void tearDown() throws Exception {
47         factory = null;
48         builder = null;
49         super.tearDown();
50     }
51 
52     /**
53      * Runs the test case.
54      *
55      * @throws Throwable
56      *             Any uncaught exception causes test to fail
57      */
testGetElementsByTagNameNS1()58     public void testGetElementsByTagNameNS1() throws Throwable {
59         Document doc;
60         Document newDoc;
61         DocumentType docType = null;
62 
63         DOMImplementation domImpl;
64         NodeList childList;
65         String nullNS = null;
66 
67         doc = (Document) load("staffNS", builder);
68         domImpl = doc.getImplementation();
69         newDoc = domImpl.createDocument(nullNS, "root", docType);
70         childList = newDoc.getElementsByTagNameNS("*", "*");
71         assertEquals("documentgetelementsbytagnameNS01", 1, childList
72                 .getLength());
73     }
testGetElementsByTagNameNS2()74     public void testGetElementsByTagNameNS2() throws Throwable {
75         Document doc;
76         Element docElem;
77         Element element;
78         NodeList childList;
79 
80         doc = (Document) load("staffNS", builder);
81         docElem = doc.getDocumentElement();
82         element = doc.createElementNS("test", "employeeId");
83         docElem.appendChild(element);
84         childList = doc.getElementsByTagNameNS("*", "employeeId");
85         assertEquals("documentgetelementsbytagnameNS02", 6, childList
86                 .getLength());
87     }
testGetElementsByTagNameNS3()88     public void testGetElementsByTagNameNS3() throws Throwable {
89         Document doc;
90         NodeList childList;
91         doc = (Document) load("staffNS", builder);
92         childList = doc.getElementsByTagNameNS("**", "*");
93         assertEquals("documentgetelementsbytagnameNS03", 0, childList
94                 .getLength());
95     }
testGetElementsByTagNameNS4()96     public void testGetElementsByTagNameNS4() throws Throwable {
97         Document doc;
98         NodeList childList;
99         String nullNS = null;
100 
101         doc = (Document) load("staffNS", builder);
102         childList = doc.getElementsByTagNameNS(nullNS, "0");
103         assertEquals("documentgetelementsbytagnameNS04", 0, childList
104                 .getLength());
105     }
testGetElementsByTagNameNS5()106     public void testGetElementsByTagNameNS5() throws Throwable {
107         Document doc;
108         NodeList childList;
109         doc = (Document) load("staffNS", builder);
110         childList = doc.getElementsByTagNameNS("null", "elementId");
111         assertEquals("documentgetelementsbytagnameNS05", 0, childList
112                 .getLength());
113     }
114 }
115