Home | History | Annotate | Download | only in dom
      1 /*
      2  This Java source file was generated by test-to-java.xsl
      3  and is a derived work from the source document.
      4  The source document contained the following notice:
      5 
      6 
      7 
      8  Copyright (c) 2001 World Wide Web Consortium,
      9  (Massachusetts Institute of Technology, Institut National de
     10  Recherche en Informatique et en Automatique, Keio University).  All
     11  Rights Reserved.  This program is distributed under the W3C's Software
     12  Intellectual Property License.  This program is distributed in the
     13  hope that it will be useful, but WITHOUT ANY WARRANTY; without even
     14  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     15  PURPOSE.
     16 
     17  See W3C License http://www.w3.org/Consortium/Legal/ for more details.
     18 
     19 
     20  */
     21 
     22 package tests.org.w3c.dom;
     23 
     24 import java.util.ArrayList;
     25 import java.util.List;
     26 
     27 import org.w3c.dom.Document;
     28 import org.w3c.dom.Attr;
     29 import org.w3c.dom.Text;
     30 import org.w3c.dom.Node;
     31 import org.w3c.dom.Element;
     32 import org.w3c.dom.DocumentType;
     33 import org.w3c.dom.NodeList;
     34 import org.w3c.dom.CDATASection;
     35 import org.w3c.dom.Comment;
     36 import org.w3c.dom.DocumentFragment;
     37 import org.w3c.dom.EntityReference;
     38 import org.w3c.dom.ProcessingInstruction;
     39 import org.w3c.dom.DOMException;
     40 
     41 import javax.xml.parsers.DocumentBuilder;
     42 
     43 /**
     44  * The "importNode(importedNode,deep)" method for a Document should import the
     45  * given importedNode into that Document. The importedNode is of type Attr. The
     46  * ownerElement is set to null. Specified flag is set to true. Children is
     47  * imported.
     48  *
     49  * Create a new attribute whose name is "elem:attr1" in a different document.
     50  * Create a child Text node with value "importedText" for the attribute node
     51  * above. Invoke method importNode(importedNode,deep) on this document with
     52  * importedNode being the newly created attribute. Method should return a node
     53  * whose name matches "elem:attr1" and a child node whose value equals
     54  * "importedText". The returned node should belong to this document whose
     55  * systemId is "staff.dtd"
     56  *
     57  * @author NIST
     58  * @author Mary Brady
     59  * @see <a
     60  *      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>
     61  */
     62 public final class ImportNode extends DOMTestCase {
     63 
     64     DOMDocumentBuilderFactory factory;
     65 
     66     DocumentBuilder builder;
     67 
     68     protected void setUp() throws Exception {
     69         super.setUp();
     70         try {
     71             factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
     72                     .getConfiguration2());
     73             builder = factory.getBuilder();
     74         } catch (Exception e) {
     75             fail("Unexpected exception" + e.getMessage());
     76         }
     77     }
     78 
     79     protected void tearDown() throws Exception {
     80         factory = null;
     81         builder = null;
     82         super.tearDown();
     83     }
     84 
     85     /**
     86      * Runs the test case.
     87      *
     88      * @throws Throwable
     89      *             Any uncaught exception causes test to fail
     90      */
     91     public void _testImportNode1() throws Throwable {
     92         Document doc;
     93         Document aNewDoc;
     94         Attr newAttr;
     95         Text importedChild;
     96         Node aNode;
     97         Document ownerDocument;
     98         Element attrOwnerElement;
     99         DocumentType docType;
    100         String system;
    101         boolean specified;
    102         NodeList childList;
    103         String nodeName;
    104         Node child;
    105         String childValue;
    106         List<String> expectedResult = new ArrayList<String>();
    107         expectedResult.add("elem:attr1");
    108         expectedResult.add("importedText");
    109 
    110         doc = (Document) load("staffNS", builder);
    111         aNewDoc = (Document) load("staffNS", builder);
    112         newAttr = aNewDoc.createAttribute("elem:attr1");
    113         importedChild = aNewDoc.createTextNode("importedText");
    114         aNode = newAttr.appendChild(importedChild);
    115         aNode = doc.importNode(newAttr, false);
    116         ownerDocument = aNode.getOwnerDocument();
    117         docType = ownerDocument.getDoctype();
    118         system = docType.getSystemId();
    119         assertNotNull("aNode", aNode);
    120         assertURIEquals("systemId", null, null, null, "staffNS.dtd", null,
    121                 null, null, null, system);
    122         attrOwnerElement = ((Attr) /* Node */aNode).getOwnerElement();
    123         assertNull("ownerElement", attrOwnerElement);
    124         specified = ((Attr) /* Node */aNode).getSpecified();
    125         assertTrue("specified", specified);
    126         childList = aNode.getChildNodes();
    127         assertEquals("childList", 1, childList.getLength());
    128         nodeName = aNode.getNodeName();
    129         assertEquals("nodeName", "elem:attr1", nodeName);
    130         child = aNode.getFirstChild();
    131         childValue = child.getNodeValue();
    132         assertEquals("childValue", "importedText", childValue);
    133     }
    134     public void testImportNode2() throws Throwable {
    135         Document doc;
    136         Document aNewDoc;
    137         CDATASection cDataSec;
    138         Node aNode;
    139         Document ownerDocument;
    140         DocumentType docType;
    141         String system;
    142         String value;
    143         doc = (Document) load("staffNS", builder);
    144         aNewDoc = (Document) load("staffNS", builder);
    145         cDataSec = aNewDoc.createCDATASection("this is CDATASection data");
    146         aNode = doc.importNode(cDataSec, false);
    147         ownerDocument = aNode.getOwnerDocument();
    148         assertNotNull("ownerDocumentNotNull", ownerDocument);
    149         docType = ownerDocument.getDoctype();
    150         system = docType.getSystemId();
    151         assertURIEquals("dtdSystemId", null, null, null, "staffNS.dtd", null,
    152                 null, null, null, system);
    153         value = aNode.getNodeValue();
    154         assertEquals("nodeValue", "this is CDATASection data", value);
    155     }
    156     public void testImportNode3() throws Throwable {
    157         Document doc;
    158         Document aNewDoc;
    159         Comment comment;
    160         Node aNode;
    161         Document ownerDocument;
    162         DocumentType docType;
    163         String system;
    164         String value;
    165         doc = (Document) load("staffNS", builder);
    166         aNewDoc = (Document) load("staffNS", builder);
    167         comment = aNewDoc.createComment("this is a comment");
    168         aNode = doc.importNode(comment, false);
    169         ownerDocument = aNode.getOwnerDocument();
    170         assertNotNull("ownerDocumentNotNull", ownerDocument);
    171         docType = ownerDocument.getDoctype();
    172         system = docType.getSystemId();
    173         assertURIEquals("systemId", null, null, null, "staffNS.dtd", null,
    174                 null, null, null, system);
    175         value = aNode.getNodeValue();
    176         assertEquals("nodeValue", "this is a comment", value);
    177     }
    178     public void testImportNode4() throws Throwable {
    179         Document doc;
    180         Document aNewDoc;
    181         DocumentFragment docFrag;
    182         Comment comment;
    183         Node aNode;
    184         NodeList children;
    185         Node child;
    186         String childValue;
    187         doc = (Document) load("staff", builder);
    188         aNewDoc = (Document) load("staff", builder);
    189         docFrag = aNewDoc.createDocumentFragment();
    190         comment = aNewDoc.createComment("descendant1");
    191         aNode = docFrag.appendChild(comment);
    192         aNode = doc.importNode(docFrag, true);
    193         children = aNode.getChildNodes();
    194         assertEquals("throw_Size", 1, children.getLength());
    195         child = aNode.getFirstChild();
    196         childValue = child.getNodeValue();
    197         assertEquals("descendant1", "descendant1", childValue);
    198     }
    199     public void testImportNode5() throws Throwable {
    200         Document doc;
    201         Document aNewDoc;
    202         Element element;
    203         Node aNode;
    204         boolean hasChild;
    205         Document ownerDocument;
    206         DocumentType docType;
    207         String system;
    208         String name;
    209         NodeList addresses;
    210         doc = (Document) load("staffNS", builder);
    211         aNewDoc = (Document) load("staffNS", builder);
    212         addresses = aNewDoc.getElementsByTagName("emp:address");
    213         element = (Element) addresses.item(0);
    214         assertNotNull("empAddressNotNull", element);
    215         aNode = doc.importNode(element, false);
    216         hasChild = aNode.hasChildNodes();
    217         assertFalse("hasChild", hasChild);
    218         ownerDocument = aNode.getOwnerDocument();
    219         docType = ownerDocument.getDoctype();
    220         system = docType.getSystemId();
    221         assertURIEquals("dtdSystemId", null, null, null, "staffNS.dtd", null,
    222                 null, null, null, system);
    223         name = aNode.getNodeName();
    224         assertEquals("nodeName", "emp:address", name);
    225     }
    226     public void testImportNode6() throws Throwable {
    227         Document doc;
    228         Document aNewDoc;
    229         Element element;
    230         Node aNode;
    231         boolean hasChild;
    232         String name;
    233         Node child;
    234         String value;
    235         NodeList addresses;
    236         doc = (Document) load("staffNS", builder);
    237         aNewDoc = (Document) load("staffNS", builder);
    238         addresses = aNewDoc.getElementsByTagName("emp:address");
    239         element = (Element) addresses.item(0);
    240         assertNotNull("empAddressNotNull", element);
    241         aNode = doc.importNode(element, true);
    242         hasChild = aNode.hasChildNodes();
    243         assertTrue("throw_True", hasChild);
    244         name = aNode.getNodeName();
    245         assertEquals("nodeName", "emp:address", name);
    246         child = aNode.getFirstChild();
    247         value = child.getNodeValue();
    248         assertEquals("nodeValue", "27 South Road. Dallas, texas 98556", value);
    249     }
    250 
    251 // Assumes validation.
    252 //    public void testImportNode7() throws Throwable {
    253 //        Document doc;
    254 //        Document aNewDoc;
    255 //        Element element;
    256 //        Node aNode;
    257 //        NamedNodeMap attributes;
    258 //        String name;
    259 //        Node attr;
    260 //        String lname;
    261 //        String namespaceURI = "http://www.nist.gov";
    262 //        String qualifiedName = "emp:employee";
    263 //        doc = (Document) load("staffNS", builder);
    264 //        aNewDoc = (Document) load("staff", builder);
    265 //        element = aNewDoc.createElementNS(namespaceURI, qualifiedName);
    266 //        aNode = doc.importNode(element, false);
    267 //        attributes = aNode.getAttributes();
    268 //        assertEquals("throw_Size", 1, attributes.getLength());
    269 //        name = aNode.getNodeName();
    270 //        assertEquals("nodeName", "emp:employee", name);
    271 //        attr = attributes.item(0);
    272 //        lname = attr.getLocalName();
    273 //        assertEquals("lname", "defaultAttr", lname);
    274 //    }
    275     public void testImportNode8() throws Throwable {
    276         Document doc;
    277         Document aNewDoc;
    278         DocumentFragment docFrag;
    279         Node aNode;
    280         boolean hasChild;
    281         Document ownerDocument;
    282         DocumentType docType;
    283         String system;
    284         doc = (Document) load("staffNS", builder);
    285         aNewDoc = (Document) load("staffNS", builder);
    286         docFrag = aNewDoc.createDocumentFragment();
    287         aNode = doc.importNode(docFrag, false);
    288         hasChild = aNode.hasChildNodes();
    289         assertFalse("hasChild", hasChild);
    290         ownerDocument = aNode.getOwnerDocument();
    291         docType = ownerDocument.getDoctype();
    292         system = docType.getSystemId();
    293         assertURIEquals("system", null, null, null, "staffNS.dtd", null, null,
    294                 null, null, system);
    295     }
    296 
    297 // Assumes validation.
    298 //    public void testImportNode9() throws Throwable {
    299 //        Document doc;
    300 //        Document aNewDoc;
    301 //
    302 //        NamedNodeMap entityList;
    303 //        Entity entity2;
    304 //        Entity entity1;
    305 //        Document ownerDocument;
    306 //        DocumentType docType;
    307 //        String system;
    308 //        String entityName;
    309 //        String publicVal;
    310 //        String notationName;
    311 //        doc = (Document) load("staffNS", builder);
    312 //        aNewDoc = (Document) load("staffNS", builder);
    313 //        docType = aNewDoc.getDoctype();
    314 //        entityList = docType.getEntities();
    315 //        assertNotNull("entitiesNotNull", entityList);
    316 //        entity2 = (Entity) entityList.getNamedItem("ent6");
    317 //        entity1 = (Entity) doc.importNode(entity2, false);
    318 //        ownerDocument = entity1.getOwnerDocument();
    319 //        docType = ownerDocument.getDoctype();
    320 //        system = docType.getSystemId();
    321 //        assertURIEquals("dtdSystemId", null, null, null, "staffNS.dtd", null,
    322 //                null, null, null, system);
    323 //        entityName = entity1.getNodeName();
    324 //        assertEquals("entityName", "ent6", entityName);
    325 //        publicVal = entity1.getPublicId();
    326 //        assertEquals("entityPublicId", "uri", publicVal);
    327 //        system = entity1.getSystemId();
    328 //        assertURIEquals("entitySystemId", null, null, null, "file", null, null,
    329 //                null, null, system);
    330 //        notationName = entity1.getNotationName();
    331 //        assertEquals("notationName", "notation2", notationName);
    332 //    }
    333     public void testImportNode10() throws Throwable {
    334         Document doc;
    335         Document aNewDoc;
    336         EntityReference entRef;
    337         Node aNode;
    338         Document ownerDocument;
    339         DocumentType docType;
    340         String system;
    341         String name;
    342         doc = (Document) load("staffNS", builder);
    343         aNewDoc = (Document) load("staffNS", builder);
    344         entRef = aNewDoc.createEntityReference("entRef1");
    345         assertNotNull("createdEntRefNotNull", entRef);
    346         entRef.setNodeValue("entRef1Value");
    347         aNode = doc.importNode(entRef, false);
    348         ownerDocument = aNode.getOwnerDocument();
    349         docType = ownerDocument.getDoctype();
    350         system = docType.getSystemId();
    351         assertURIEquals("systemId", null, null, null, "staffNS.dtd", null,
    352                 null, null, null, system);
    353         name = aNode.getNodeName();
    354         assertEquals("nodeName", "entRef1", name);
    355     }
    356 
    357 // Assumes validation
    358 //    public void testImportNode11() throws Throwable {
    359 //        Document doc;
    360 //        Document aNewDoc;
    361 //        EntityReference entRef;
    362 //        Node aNode;
    363 //        String name;
    364 //        Node child;
    365 //        String childValue;
    366 //        doc = (Document) load("staff", builder);
    367 //        aNewDoc = (Document) load("staff", builder);
    368 //        entRef = aNewDoc.createEntityReference("ent3");
    369 //        assertNotNull("createdEntRefNotNull", entRef);
    370 //        aNode = doc.importNode(entRef, true);
    371 //        name = aNode.getNodeName();
    372 //        assertEquals("entityName", "ent3", name);
    373 //        child = aNode.getFirstChild();
    374 //        assertNotNull("child", child);
    375 //        childValue = child.getNodeValue();
    376 //        assertEquals("childValue", "Texas", childValue);
    377 //    }
    378 
    379 // Assumes validation.
    380 //    public void testImportNode12() throws Throwable {
    381 //        Document doc;
    382 //        Document aNewDoc;
    383 //        DocumentType doc1Type;
    384 //        NamedNodeMap entityList;
    385 //        Entity entity2;
    386 //        Entity entity1;
    387 //        Document ownerDocument;
    388 //        DocumentType docType;
    389 //        String system;
    390 //        String entityName;
    391 //        Node child;
    392 //        String childName;
    393 //        doc = (Document) load("staffNS", builder);
    394 //        aNewDoc = (Document) load("staffNS", builder);
    395 //        doc1Type = aNewDoc.getDoctype();
    396 //        entityList = doc1Type.getEntities();
    397 //        assertNotNull("entitiesNotNull", entityList);
    398 //        entity2 = (Entity) entityList.getNamedItem("ent4");
    399 //        entity1 = (Entity) doc.importNode(entity2, true);
    400 //        ownerDocument = entity1.getOwnerDocument();
    401 //        docType = ownerDocument.getDoctype();
    402 //        system = docType.getSystemId();
    403 //        assertURIEquals("systemId", null, null, null, "staffNS.dtd", null,
    404 //                null, null, null, system);
    405 //        entityName = entity1.getNodeName();
    406 //        assertEquals("entityName", "ent4", entityName);
    407 //        child = entity1.getFirstChild();
    408 //        assertNotNull("notnull", child);
    409 //        childName = child.getNodeName();
    410 //        assertEquals("childName", "entElement1", childName);
    411 //    }
    412 
    413 // Assumes validation
    414 //    public void testImportNode13() throws Throwable {
    415 //        Document doc;
    416 //        Document aNewDoc;
    417 //        DocumentType doc1Type;
    418 //        NamedNodeMap notationList;
    419 //        Notation notation;
    420 //        Notation aNode;
    421 //        Document ownerDocument;
    422 //        DocumentType docType;
    423 //        String system;
    424 //        String publicVal;
    425 //        doc = (Document) load("staffNS", builder);
    426 //        aNewDoc = (Document) load("staffNS", builder);
    427 //        doc1Type = aNewDoc.getDoctype();
    428 //        notationList = doc1Type.getNotations();
    429 //        assertNotNull("notationsNotNull", notationList);
    430 //        notation = (Notation) notationList.getNamedItem("notation1");
    431 //        aNode = (Notation) doc.importNode(notation, false);
    432 //        ownerDocument = aNode.getOwnerDocument();
    433 //        docType = ownerDocument.getDoctype();
    434 //        system = docType.getSystemId();
    435 //        assertURIEquals("systemId", null, null, null, "staffNS.dtd", null,
    436 //                null, null, null, system);
    437 //        publicVal = aNode.getPublicId();
    438 //        assertEquals("publicId", "notation1File", publicVal);
    439 //        system = aNode.getSystemId();
    440 //        assertNull("notationSystemId", system);
    441 //    }
    442     public void testImportNode14() throws Throwable {
    443         Document doc;
    444         Document aNewDoc;
    445         ProcessingInstruction pi;
    446         ProcessingInstruction aNode;
    447         Document ownerDocument;
    448         DocumentType docType;
    449         String system;
    450         String target;
    451         String data;
    452 
    453         doc = (Document) load("staffNS", builder);
    454         aNewDoc = (Document) load("staffNS", builder);
    455         pi = aNewDoc.createProcessingInstruction("target1", "data1");
    456         aNode = (ProcessingInstruction) doc.importNode(pi, false);
    457         ownerDocument = aNode.getOwnerDocument();
    458         assertNotNull("ownerDocumentNotNull", ownerDocument);
    459         docType = ownerDocument.getDoctype();
    460         system = docType.getSystemId();
    461         assertURIEquals("systemId", null, null, null, "staffNS.dtd", null,
    462                 null, null, null, system);
    463         target = aNode.getTarget();
    464         assertEquals("piTarget", "target1", target);
    465         data = aNode.getData();
    466         assertEquals("piData", "data1", data);
    467     }
    468     public void testImportNode15() throws Throwable {
    469         Document doc;
    470         Document aNewDoc;
    471         Text text;
    472         Node aNode;
    473         Document ownerDocument;
    474         DocumentType docType;
    475         String system;
    476         String value;
    477         doc = (Document) load("staffNS", builder);
    478         aNewDoc = (Document) load("staffNS", builder);
    479         text = aNewDoc.createTextNode("this is text data");
    480         aNode = doc.importNode(text, false);
    481         ownerDocument = aNode.getOwnerDocument();
    482         assertNotNull("ownerDocumentNotNull", ownerDocument);
    483         docType = ownerDocument.getDoctype();
    484         system = docType.getSystemId();
    485         assertURIEquals("systemId", null, null, null, "staffNS.dtd", null,
    486                 null, null, null, system);
    487         value = aNode.getNodeValue();
    488         assertEquals("nodeValue", "this is text data", value);
    489     }
    490     public void testImportNode16() throws Throwable {
    491         Document doc;
    492         Document anotherDoc;
    493         DocumentType docType;
    494 
    495         doc = (Document) load("staffNS", builder);
    496         anotherDoc = (Document) load("staffNS", builder);
    497         docType = anotherDoc.getDoctype();
    498 
    499         {
    500             boolean success = false;
    501             try {
    502                 doc.importNode(docType, false);
    503             } catch (DOMException ex) {
    504                 success = (ex.code == DOMException.NOT_SUPPORTED_ERR);
    505             }
    506             assertTrue("throw_NOT_SUPPORTED_ERR", success);
    507         }
    508     }
    509     public void testImportNode17() throws Throwable {
    510         Document doc;
    511         Document anotherDoc;
    512 
    513         doc = (Document) load("staffNS", builder);
    514         anotherDoc = (Document) load("staffNS", builder);
    515 
    516         {
    517             boolean success = false;
    518             try {
    519                 doc.importNode(anotherDoc, false);
    520             } catch (DOMException ex) {
    521                 success = (ex.code == DOMException.NOT_SUPPORTED_ERR);
    522             }
    523             assertTrue("throw_NOT_SUPPORTED_ERR", success);
    524         }
    525     }
    526 }
    527