1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source ProjectThis Java source file was generated by test-to-java.xsl
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectand is a derived work from the source document.
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source ProjectThe source document contained the following notice:
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source ProjectCopyright (c) 2001 World Wide Web Consortium,
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project(Massachusetts Institute of Technology, Institut National de
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source ProjectRecherche en Informatique et en Automatique, Keio University).  All
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source ProjectRights Reserved.  This program is distributed under the W3C's Software
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source ProjectIntellectual Property License.  This program is distributed in the
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projecthope that it will be useful, but WITHOUT ANY WARRANTY; without even
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectthe implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source ProjectPURPOSE.
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source ProjectSee W3C License http://www.w3.org/Consortium/Legal/ for more details.
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project*/
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.w3c.domts.level2.core;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.*;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.domts.DOMTestCase;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.domts.DOMTestDocumentBuilderFactory;
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  The importNode method imports a node from another document to this document.
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  The returned node has no parent; (parentNode is null). The source node is not
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  altered or removed from the original document but a new copy of the source node
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  is created.
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Using the method importNode with deep=true, retreive the entity refs present in the
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  second element node whose tagName is address and import these nodes into another document.
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Verify if the nodes have been imported correctly by checking the nodeNames of the
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  imported nodes, since they are imported into a new document which doesnot have thes defined,
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  the imported nodes should not have any children.
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Now import the entityRef nodes into the same document and verify if the nodes have been
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  imported correctly by checking the nodeNames of the imported nodes, and by checking the
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  value of the replacement text of the imported nodes.
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @author IBM
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @author Neil Delima
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @see <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a>
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @see <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project*/
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic final class documentimportnode21 extends DOMTestCase {
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   /**
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * Constructor.
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * @param factory document factory, may not be null
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * @throws org.w3c.domts.DOMTestIncompatibleException Thrown if test is not compatible with parser configuration
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    */
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   public documentimportnode21(final DOMTestDocumentBuilderFactory factory)  throws org.w3c.domts.DOMTestIncompatibleException {
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      org.w3c.domts.DocumentBuilderSetting[] settings =
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          new org.w3c.domts.DocumentBuilderSetting[] {
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectorg.w3c.domts.DocumentBuilderSetting.namespaceAware,
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectorg.w3c.domts.DocumentBuilderSetting.notExpandEntityReferences
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        };
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        DOMTestDocumentBuilderFactory testFactory = factory.newInstance(settings);
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        setFactory(testFactory);
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    //
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    //   check if loaded documents are supported for content type
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    //
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    String contentType = getContentType();
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    preload(contentType, "staffNS", true);
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   /**
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * Runs the test case.
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * @throws Throwable Any uncaught exception causes test to fail
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    */
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   public void runTest() throws Throwable {
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Document doc;
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      DocumentType docTypeNull = null;
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Document docImp;
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      DOMImplementation domImpl;
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      NodeList addressList;
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      NodeList addressChildList;
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Element element;
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      EntityReference entRef2;
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      EntityReference entRefImp2;
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      EntityReference entRef3;
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      EntityReference entRefImp3;
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String nodeName2;
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String nodeName3;
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String nodeNameImp2;
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String nodeNameImp3;
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      NodeList nodes;
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Node nodeImp3;
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Node nodeImp2;
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String nodeValueImp2;
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String nodeValueImp3;
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      doc = (Document) load("staffNS", true);
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      domImpl = doc.getImplementation();
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      docImp = domImpl.createDocument("http://www.w3.org/DOM/Test", "a:b", docTypeNull);
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      addressList = doc.getElementsByTagName("address");
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      element = (Element) addressList.item(1);
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      addressChildList = element.getChildNodes();
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      entRef2 = (EntityReference) addressChildList.item(0);
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      entRef3 = (EntityReference) addressChildList.item(2);
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      entRefImp2 = (EntityReference) docImp.importNode(entRef2, true);
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      entRefImp3 = (EntityReference) docImp.importNode(entRef3, false);
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      nodeName2 = entRef2.getNodeName();
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      nodeName3 = entRef3.getNodeName();
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      nodeNameImp2 = entRefImp2.getNodeName();
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      nodeNameImp3 = entRefImp3.getNodeName();
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      assertEquals("documentimportnode21_Ent2NodeName", nodeName2, nodeNameImp2);
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      assertEquals("documentimportnode21_Ent3NodeName", nodeName3, nodeNameImp3);
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      entRefImp2 = (EntityReference) doc.importNode(entRef2, true);
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      entRefImp3 = (EntityReference) doc.importNode(entRef3, false);
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      nodes = entRefImp2.getChildNodes();
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      nodeImp2 = nodes.item(0);
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      nodeValueImp2 = nodeImp2.getNodeValue();
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      nodes = entRefImp3.getChildNodes();
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      nodeImp3 = nodes.item(0);
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      nodeValueImp3 = nodeImp3.getNodeValue();
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      assertEquals("documentimportnode21_Ent2NodeValue", "1900 Dallas Road", nodeValueImp2);
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      assertEquals("documentimportnode21_Ent3Nodevalue", "Texas", nodeValueImp3);
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   /**
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    *  Gets URI that identifies the test.
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    *  @return uri identifier of test
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    */
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   public String getTargetURI() {
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      return "http://www.w3.org/2001/DOM-Test-Suite/level2/core/documentimportnode21";
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   }
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   /**
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * Runs this test from the command line.
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * @param args command line arguments
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    */
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   public static void main(final String[] args) {
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        DOMTestCase.doMain(documentimportnode21.class, args);
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   }
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
145