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/documentnormalizedocument12"; 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("validating", true); 43 setImplementationAttribute("schemaValidating", true); 44 setImplementationAttribute("namespaceAware", true); 45 46 docsLoaded = 0; 47 48 var docRef = null; 49 if (typeof(this.doc) != 'undefined') { 50 docRef = this.doc; 51 } 52 docsLoaded += preload(docRef, "doc", "hc_staff"); 53 54 if (docsLoaded == 1) { 55 setUpPageStatus = 'complete'; 56 } 57 } catch(ex) { 58 catchInitializationError(builder, ex); 59 setUpPageStatus = 'complete'; 60 } 61 } 62 63 64 65 // 66 // This method is called on the completion of 67 // each asychronous load started in setUpTests. 68 // 69 // When every synchronous loaded document has completed, 70 // the page status is changed which allows the 71 // body of the test to be executed. 72 function loadComplete() { 73 if (++docsLoaded == 1) { 74 setUpPageStatus = 'complete'; 75 } 76 } 77 78 79 /** 80 * Inner class implementation for variable errHandler 81 */ 82 var errHandler; 83 84 /** 85 * Constructor 86 87 */ 88 89 function DOMErrorHandlerN10048() { 90 } 91 92 /** 93 * 94 This method is called on the error handler when an error occurs. 95 If an exception is thrown from this method, it is considered to be equivalent of returningtrue. 96 97 * @param error 98 The error object that describes the error. This object may be reused by the DOM implementation across multiple calls to thehandleErrormethod. 99 100 */ 101 DOMErrorHandlerN10048.prototype.handleError = function(error) { 102 // 103 // bring class variables into function scope 104 // 105 assertFalse("documentnormalizedocument08_Err",true); 106 return true; 107 } 108 109 /** 110 * 111 The normalizeDocument method method acts as if the document was going through a save 112 and load cycle, putting the document in a "normal" form. 113 114 Set the validate feature to true. Invoke the normalizeDocument method on this 115 document. Retreive the documentElement node and check the nodeName of this node 116 to make sure it has not changed. Now set validate to false and verify the same. 117 Register an error handler on this Document and in each case make sure that it does 118 not get called. 119 120 * @author IBM 121 * @author Neil Delima 122 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument 123 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-validate 124 */ 125 function documentnormalizedocument12() { 126 var success; 127 if(checkInitialization(builder, "documentnormalizedocument12") != null) return; 128 var doc; 129 var docElem; 130 var docElemNodeName; 131 var canSet; 132 var domConfig; 133 var errorHandler; 134 errHandler = new DOMErrorHandlerN10048(); 135 136 137 var docRef = null; 138 if (typeof(this.doc) != 'undefined') { 139 docRef = this.doc; 140 } 141 doc = load(docRef, "doc", "hc_staff"); 142 domConfig = doc.domConfig; 143 144 domConfig.setParameter("error-handler", errHandler.handleError); 145 canSet = domConfig.canSetParameter("validate",true); 146 147 if( 148 canSet 149 ) { 150 domConfig.setParameter("validate", true); 151 doc.normalizeDocument(); 152 docElem = doc.documentElement; 153 154 docElemNodeName = docElem.nodeName; 155 156 assertEquals("documentnormalizedocument08_True","html",docElemNodeName); 157 158 } 159 domConfig.setParameter("validate", false); 160 doc.normalizeDocument(); 161 docElem = doc.documentElement; 162 163 docElemNodeName = docElem.nodeName; 164 165 assertEquals("documentnormalizedocument08_False","html",docElemNodeName); 166 167 } 168 169 170 171 172 function runTest() { 173 documentnormalizedocument12(); 174 } 175