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/documentnormalizedocument09"; 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 * Inner class implementation for variable errHandler 79 */ 80 var errHandler; 81 82 /** 83 * Constructor 84 85 */ 86 87 function DOMErrorHandlerN1003C() { 88 } 89 90 /** 91 * 92 This method is called on the error handler when an error occurs. 93 If an exception is thrown from this method, it is considered to be equivalent of returningtrue. 94 95 * @param error 96 The error object that describes the error. This object may be reused by the DOM implementation across multiple calls to thehandleErrormethod. 97 98 */ 99 DOMErrorHandlerN1003C.prototype.handleError = function(error) { 100 // 101 // bring class variables into function scope 102 // 103 assertFalse("documentnormalizedocument09_Err",true); 104 return true; 105 } 106 107 /** 108 * 109 The normalizeDocument method method acts as if the document was going through a save 110 and load cycle, putting the document in a "normal" form. 111 112 Set the validate-if-schema feature to true. Invoke the normalizeDocument method on this 113 document. Retreive the documentElement node and check the nodeName of this node 114 to make sure it has not changed. Now set validate to false and verify the same. 115 Register an error handler on this Document and in each case make sure that it does 116 not get called. 117 118 * @author IBM 119 * @author Neil Delima 120 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument 121 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-validate-if-schema 122 */ 123 function documentnormalizedocument09() { 124 var success; 125 if(checkInitialization(builder, "documentnormalizedocument09") != null) return; 126 var doc; 127 var docElem; 128 var docElemNodeName; 129 var canSet; 130 var errorHandler; 131 errHandler = new DOMErrorHandlerN1003C(); 132 133 var domConfig; 134 135 var docRef = null; 136 if (typeof(this.doc) != 'undefined') { 137 docRef = this.doc; 138 } 139 doc = load(docRef, "doc", "hc_staff"); 140 domConfig = doc.domConfig; 141 142 domConfig.setParameter("error-handler", errHandler.handleError); 143 canSet = domConfig.canSetParameter("validate-if-schema",true); 144 145 if( 146 canSet 147 ) { 148 domConfig.setParameter("validate-if-schema", true); 149 doc.normalizeDocument(); 150 docElem = doc.documentElement; 151 152 docElemNodeName = docElem.nodeName; 153 154 assertEquals("documentnormalizedocument09_True","html",docElemNodeName); 155 156 } 157 domConfig.setParameter("validate-if-schema", false); 158 doc.normalizeDocument(); 159 docElem = doc.documentElement; 160 161 docElemNodeName = docElem.nodeName; 162 163 assertEquals("documentnormalizedocument09_False","html",docElemNodeName); 164 165 } 166 167 168 169 170 function runTest() { 171 documentnormalizedocument09(); 172 } 173