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 ProjectCopyright (c) 2001-2004 World Wide Web Consortium,
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project(Massachusetts Institute of Technology, Institut National de
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source ProjectRecherche en Informatique et en Automatique, Keio University). All
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source ProjectRights Reserved. This program is distributed under the W3C's Software
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source ProjectIntellectual Property License. This program is distributed in the
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projecthope that it will be useful, but WITHOUT ANY WARRANTY; without even
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectthe implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source ProjectPURPOSE.
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source ProjectSee W3C License http://www.w3.org/Consortium/Legal/ for more details.
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project*/
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.w3c.domts.level1.core;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.*;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.domts.DOMTestCase;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.domts.DOMTestDocumentBuilderFactory;
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     If the "newChild" is already in the tree, the
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     "insertBefore(newChild,refChild)" method must first
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     remove it before the insertion takes place.
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     Insert a node Element ("employeeId") that is already
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     present in the tree.   The existing node should be
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     removed first and the new one inserted.   The node is
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     inserted at a different position in the tree to assure
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     that it was indeed inserted.
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @author NIST
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @author Mary Brady
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @see <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project*/
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic final class nodeinsertbeforenewchildexists extends DOMTestCase {
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   /**
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * Constructor.
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * @param factory document factory, may not be null
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * @throws org.w3c.domts.DOMTestIncompatibleException Thrown if test is not compatible with parser configuration
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    */
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   public nodeinsertbeforenewchildexists(final DOMTestDocumentBuilderFactory factory)  throws org.w3c.domts.DOMTestIncompatibleException {
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      super(factory);
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    //
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    //   check if loaded documents are supported for content type
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    //
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    String contentType = getContentType();
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    preload(contentType, "staff", true);
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   /**
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * Runs the test case.
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * @throws Throwable Any uncaught exception causes test to fail
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    */
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   public void runTest() throws Throwable {
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Document doc;
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      NodeList elementList;
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Node employeeNode;
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      NodeList childList;
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Node refChild;
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Node newChild;
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Node child;
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      int length;
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      String childName;
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      Node insertedNode;
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      java.util.List expectedWhitespace = new java.util.ArrayList();
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedWhitespace.add("#text");
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedWhitespace.add("#text");
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedWhitespace.add("name");
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedWhitespace.add("#text");
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedWhitespace.add("position");
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedWhitespace.add("#text");
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedWhitespace.add("salary");
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedWhitespace.add("#text");
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedWhitespace.add("gender");
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedWhitespace.add("#text");
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedWhitespace.add("employeeId");
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedWhitespace.add("address");
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedWhitespace.add("#text");
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      java.util.List expectedNoWhitespace = new java.util.ArrayList();
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedNoWhitespace.add("name");
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedNoWhitespace.add("position");
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedNoWhitespace.add("salary");
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedNoWhitespace.add("gender");
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedNoWhitespace.add("employeeId");
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      expectedNoWhitespace.add("address");
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      java.util.List expected = new java.util.ArrayList();
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      java.util.List result = new java.util.ArrayList();
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      doc = (Document) load("staff", true);
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      elementList = doc.getElementsByTagName("employee");
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      employeeNode = elementList.item(1);
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      childList = employeeNode.getChildNodes();
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      length = (int) childList.getLength();
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      if (equals(6, length)) {
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          expected =  expectedNoWhitespace;
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      refChild = childList.item(5);
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      newChild = childList.item(0);
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      } else {
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          expected =  expectedWhitespace;
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      refChild = childList.item(11);
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      newChild = childList.item(1);
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    insertedNode = employeeNode.insertBefore(newChild, refChild);
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      for (int indexN100DD = 0; indexN100DD < childList.getLength(); indexN100DD++) {
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project          child = (Node) childList.item(indexN100DD);
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    childName = child.getNodeName();
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      result.add(childName);
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      assertEquals("childNames", expected, result);
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   /**
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    *  Gets URI that identifies the test.
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    *  @return uri identifier of test
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    */
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   public String getTargetURI() {
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      return "http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodeinsertbeforenewchildexists";
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   }
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   /**
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * Runs this test from the command line.
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    * @param args command line arguments
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    */
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   public static void main(final String[] args) {
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        DOMTestCase.doMain(nodeinsertbeforenewchildexists.class, args);
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   }
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
143