1 2 /* 3 Copyright 2001-2004 World Wide Web Consortium, 4 (Massachusetts Institute of Technology, European Research Consortium 5 for Informatics and Mathematics, Keio University). All 6 Rights Reserved. This work is distributed under the W3C Software License [1] in the 7 hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 the 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 */ 19 function getTargetURI() { 20 return "http://www.w3.org/2001/DOM-Test-Suite/level3/core/elementsetidattributens12"; 21 } 22 23 var docsLoaded = -1000000; 24 var 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 // 35 function 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. 70 function loadComplete() { 71 if (++docsLoaded == 1) { 72 setUpPageStatus = 'complete'; 73 } 74 } 75 76 77 /** 78 * 79 Declares the attribute specified by local name and namespace URI to be of type ID. If the value of the 80 specified attribute is unique then this element node can later be retrieved using getElementById on Document. 81 Note, however, that this simply affects this node and does not change any grammar that may be in use. 82 83 Set the noNamespaceSchemaLocation attribute on the first acronym element to "No". Invoke setIdAttributeNS on the 84 noNamespaceSchemaLocation attribute of the first, second and third acronym element. Verify by calling isId on 85 the attributes. Calling getElementById with "No" as a value should return the acronym element. 86 87 * @author IBM 88 * @author Jenny Hsu 89 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS 90 */ 91 function elementsetidattributens12() { 92 var success; 93 if(checkInitialization(builder, "elementsetidattributens12") != null) return; 94 var doc; 95 var elemList; 96 var acronymElem1; 97 var acronymElem2; 98 var acronymElem3; 99 var attributesMap; 100 var attr; 101 var id = false; 102 var elem; 103 var elemName; 104 105 var docRef = null; 106 if (typeof(this.doc) != 'undefined') { 107 docRef = this.doc; 108 } 109 doc = load(docRef, "doc", "hc_staff"); 110 elemList = doc.getElementsByTagNameNS("*","acronym"); 111 acronymElem1 = elemList.item(0); 112 acronymElem2 = elemList.item(1); 113 acronymElem3 = elemList.item(2); 114 acronymElem1.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance","xsi:noNamespaceSchemaLocation","No"); 115 acronymElem1.setIdAttributeNS("http://www.w3.org/2001/XMLSchema-instance","noNamespaceSchemaLocation",true); 116 acronymElem2.setIdAttributeNS("http://www.w3.org/2001/XMLSchema-instance","noNamespaceSchemaLocation",true); 117 acronymElem3.setIdAttributeNS("http://www.w3.org/2001/XMLSchema-instance","noNamespaceSchemaLocation",true); 118 attributesMap = acronymElem1.attributes; 119 120 attr = attributesMap.getNamedItem("xsi:noNamespaceSchemaLocation"); 121 id = attr.isId; 122 123 assertTrue("elementsetidattributensIsId1True12",id); 124 attributesMap = acronymElem2.attributes; 125 126 attr = attributesMap.getNamedItem("xsi:noNamespaceSchemaLocation"); 127 id = attr.isId; 128 129 assertTrue("elementsetidattributensIsId2True12",id); 130 attributesMap = acronymElem3.attributes; 131 132 attr = attributesMap.getNamedItem("xsi:noNamespaceSchemaLocation"); 133 id = attr.isId; 134 135 assertTrue("elementsetidattributensIsId3True12",id); 136 elem = doc.getElementById("No"); 137 elemName = elem.tagName; 138 139 assertEquals("elementsetidattributensGetElementById10","acronym",elemName); 140 141 } 142 143 144 145 146 function runTest() { 147 elementsetidattributens12(); 148 } 149