• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2/*
3Copyright © 2001-2004 World Wide Web Consortium,
4(Massachusetts Institute of Technology, European Research Consortium
5for Informatics and Mathematics, Keio University). All
6Rights Reserved. This work is distributed under the W3C® Software License [1] in the
7hope that it will be useful, but WITHOUT ANY WARRANTY; without even
8the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
10[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
11*/
12
13
14
15   /**
16    *  Gets URI that identifies the test.
17    *  @return uri identifier of test
18    */
19function getTargetURI() {
20      return "http://www.w3.org/2001/DOM-Test-Suite/level3/core/documentadoptnode21";
21   }
22
23var docsLoaded = -1000000;
24var builder = null;
25
26//
27//   This function is called by the testing framework before
28//      running the test suite.
29//
30//   If there are no configuration exceptions, asynchronous
31//        document loading is started.  Otherwise, the status
32//        is set to complete and the exception is immediately
33//        raised when entering the body of the test.
34//
35function setUpPage() {
36   setUpPageStatus = 'running';
37   try {
38     //
39     //   creates test document builder, may throw exception
40     //
41     builder = createConfiguredBuilder();
42       setImplementationAttribute("namespaceAware", true);
43
44      docsLoaded = 0;
45
46      var docRef = null;
47      if (typeof(this.doc) != 'undefined') {
48        docRef = this.doc;
49      }
50      docsLoaded += preload(docRef, "doc", "hc_staff");
51
52       if (docsLoaded == 1) {
53          setUpPageStatus = 'complete';
54       }
55    } catch(ex) {
56    	catchInitializationError(builder, ex);
57        setUpPageStatus = 'complete';
58    }
59}
60
61
62
63//
64//   This method is called on the completion of
65//      each asychronous load started in setUpTests.
66//
67//   When every synchronous loaded document has completed,
68//      the page status is changed which allows the
69//      body of the test to be executed.
70function loadComplete() {
71    if (++docsLoaded == 1) {
72        setUpPageStatus = 'complete';
73    }
74}
75
76
77/**
78*
79	The adoptNode method changes the ownerDocument of a node, its children, as well as the
80	attached attribute nodes if there are any. If the node has a parent it is first removed
81	from its parent child list.
82
83	Invoke the adoptNode method on this Document with the source node being an existing attribute
84        that is a part of this Document.   Verify that the returned adopted node's nodeName, nodeValue
85        and nodeType are as expected and that the ownerElement attribute of the returned attribute node
86        was set to null.
87
88* @author IBM
89* @author Neil Delima
90* @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
91*/
92function documentadoptnode21() {
93   var success;
94    if(checkInitialization(builder, "documentadoptnode21") != null) return;
95    var doc;
96      var attrOwnerElem;
97      var element;
98      var attr;
99      var childList;
100      var adoptedTitle;
101      var attrsParent;
102      var nodeName;
103      var nodeType;
104      var nodeValue;
105
106      var docRef = null;
107      if (typeof(this.doc) != 'undefined') {
108        docRef = this.doc;
109      }
110      doc = load(docRef, "doc", "hc_staff");
111      childList = doc.getElementsByTagName("acronym");
112      element = childList.item(0);
113      attr = element.getAttributeNode("title");
114      adoptedTitle = doc.adoptNode(attr);
115      nodeName = adoptedTitle.nodeName;
116
117      nodeValue = adoptedTitle.nodeValue;
118
119      nodeType = adoptedTitle.nodeType;
120
121      attrOwnerElem = adoptedTitle.ownerElement;
122
123      assertEquals("documentadoptnode21_nodeName","title",nodeName);
124       assertEquals("documentadoptnode21_nodeType",2,nodeType);
125       assertEquals("documentadoptnode21_nodeValue","Yes",nodeValue);
126       assertNull("documentadoptnode21_ownerDoc",attrOwnerElem);
127
128}
129
130
131
132
133function runTest() {
134   documentadoptnode21();
135}
136