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/level1/core/hc_namednodemapsetnameditem";
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
43      docsLoaded = 0;
44
45      var docRef = null;
46      if (typeof(this.doc) != 'undefined') {
47        docRef = this.doc;
48      }
49      docsLoaded += preload(docRef, "doc", "hc_staff");
50
51       if (docsLoaded == 1) {
52          setUpPageStatus = 'complete';
53       }
54    } catch(ex) {
55    	catchInitializationError(builder, ex);
56        setUpPageStatus = 'complete';
57    }
58}
59
60
61
62//
63//   This method is called on the completion of
64//      each asychronous load started in setUpTests.
65//
66//   When every synchronous loaded document has completed,
67//      the page status is changed which allows the
68//      body of the test to be executed.
69function loadComplete() {
70    if (++docsLoaded == 1) {
71        setUpPageStatus = 'complete';
72    }
73}
74
75
76/**
77*
78   Retrieve the second "p" element and create a NamedNodeMap
79   object from the attributes of the last child by
80   invoking the "getAttributes()" method.  Once the
81   list is created an invocation of the "setNamedItem(arg)"
82   method is done with arg=newAttr, where newAttr is a
83   new Attr Node previously created.  The "setNamedItem(arg)"
84   method should add then new node to the NamedNodeItem
85   object by using its "nodeName" attribute("lang').
86   This node is then retrieved using the "getNamedItem(name)"
87   method.
88
89* @author Curt Arnold
90* @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788
91* @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9
92* @see http://www.w3.org/Bugs/Public/show_bug.cgi?id=236
93* @see http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html
94* @see http://www.w3.org/Bugs/Public/show_bug.cgi?id=243
95*/
96function hc_namednodemapsetnameditem() {
97   var success;
98    if(checkInitialization(builder, "hc_namednodemapsetnameditem") != null) return;
99    var doc;
100      var elementList;
101      var newAttribute;
102      var testAddress;
103      var attributes;
104      var districtNode;
105      var attrName;
106      var setNode;
107
108      var docRef = null;
109      if (typeof(this.doc) != 'undefined') {
110        docRef = this.doc;
111      }
112      doc = load(docRef, "doc", "hc_staff");
113      elementList = doc.getElementsByTagName("acronym");
114      testAddress = elementList.item(1);
115      newAttribute = doc.createAttribute("lang");
116      attributes = testAddress.attributes;
117
118      setNode = attributes.setNamedItem(newAttribute);
119      districtNode = attributes.getNamedItem("lang");
120      attrName = districtNode.nodeName;
121
122      assertEqualsAutoCase("attribute", "nodeName","lang",attrName);
123
124}
125
126
127
128
129function runTest() {
130   hc_namednodemapsetnameditem();
131}
132