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/documentnormalizedocument10"; 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 The normalizeDocument method method acts as if the document was going through a save 80 and load cycle, putting the document in a "normal" form. 81 82 Create an Element and a text node and verify the nodeValue of this text node and append these to 83 this Document. If supported, invoke the setParameter method on this domconfiguration object to set the 84 "element-content-whitespace" feature to false. Invoke the normalizeDocument method and verify if 85 the text node has been discarded. 86 87 * @author IBM 88 * @author Neil Delima 89 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument 90 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-element-content-whitespace 91 */ 92 function documentnormalizedocument10() { 93 var success; 94 if(checkInitialization(builder, "documentnormalizedocument10") != null) return; 95 var doc; 96 var elem; 97 var newText; 98 var text; 99 var nodeValue; 100 var canSet; 101 var appendedChild; 102 var domConfig; 103 104 var docRef = null; 105 if (typeof(this.doc) != 'undefined') { 106 docRef = this.doc; 107 } 108 doc = load(docRef, "doc", "hc_staff"); 109 elem = doc.createElement("newElem"); 110 newText = doc.createTextNode("Text Node"); 111 appendedChild = elem.appendChild(newText); 112 appendedChild = doc.appendChild(elem); 113 text = elem.firstChild; 114 115 nodeValue = text.nodeValue; 116 117 assertEquals("documentnormalizedocument10","Text Node",nodeValue); 118 domConfig = doc.domConfig; 119 120 canSet = domConfig.canSetParameter("element-content-whitespace",true); 121 assertTrue("canSetElementContentWhitespaceTrue",canSet); 122 domConfig.setParameter("element-content-whitespace", true); 123 doc.normalizeDocument(); 124 text = elem.firstChild; 125 126 nodeValue = text.nodeValue; 127 128 assertEquals("documentnormalizedocument10_true1","Text Node",nodeValue); 129 canSet = domConfig.canSetParameter("element-content-whitespace",false); 130 131 if( 132 canSet 133 ) { 134 domConfig.setParameter("element-content-whitespace", false); 135 doc.normalizeDocument(); 136 text = elem.firstChild; 137 138 nodeValue = text.nodeValue; 139 140 assertEquals("documentnormalizedocument10_true2","Text Node",nodeValue); 141 142 } 143 144 } 145 146 147 148 149 function runTest() { 150 documentnormalizedocument10(); 151 } 152