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/domconfigerrorhandler1"; 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 43 docsLoaded = 0; 44 45 if (docsLoaded == 0) { 46 setUpPageStatus = 'complete'; 47 } 48 } catch(ex) { 49 catchInitializationError(builder, ex); 50 setUpPageStatus = 'complete'; 51 } 52 } 53 54 55 56 // 57 // This method is called on the completion of 58 // each asychronous load started in setUpTests. 59 // 60 // When every synchronous loaded document has completed, 61 // the page status is changed which allows the 62 // body of the test to be executed. 63 function loadComplete() { 64 if (++docsLoaded == 0) { 65 setUpPageStatus = 'complete'; 66 } 67 } 68 69 70 /** 71 * Inner class implementation for variable errorHandler 72 */ 73 var errorHandler; 74 75 /** 76 * Constructor 77 78 */ 79 80 function DOMErrorHandlerN10049() { 81 } 82 83 /** 84 * 85 This method is called on the error handler when an error occurs. 86 If an exception is thrown from this method, it is considered to be equivalent of returningtrue. 87 88 * @param error 89 The error object that describes the error. This object may be reused by the DOM implementation across multiple calls to thehandleErrormethod. 90 91 */ 92 DOMErrorHandlerN10049.prototype.handleError = function(error) { 93 // 94 // bring class variables into function scope 95 // 96 return true; 97 } 98 99 /** 100 * Checks behavior of "error-handler" configuration parameter. 101 * @author Curt Arnold 102 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-error-handler 103 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter 104 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter 105 * @see http://www.w3.org/Bugs/Public/show_bug.cgi?id=544 106 */ 107 function domconfigerrorhandler1() { 108 var success; 109 if(checkInitialization(builder, "domconfigerrorhandler1") != null) return; 110 var domImpl; 111 var doc; 112 var domConfig; 113 var nullDocType = null; 114 115 var canSet; 116 var origHandler; 117 var state; 118 var parameter = "eRrOr-handler"; 119 errorHandler = new DOMErrorHandlerN10049(); 120 121 domImpl = getImplementation(); 122 doc = domImpl.createDocument("http://www.w3.org/1999/xhtml","html",nullDocType); 123 domConfig = doc.domConfig; 124 125 origHandler = domConfig.getParameter(parameter); 126 canSet = domConfig.canSetParameter(parameter,errorHandler); 127 assertTrue("canSetNewHandler",canSet); 128 canSet = domConfig.canSetParameter(parameter,origHandler); 129 assertTrue("canSetOrigHandler",canSet); 130 domConfig.setParameter(parameter, errorHandler.handleError); 131 state = domConfig.getParameter(parameter); 132 assertSame("setToNewHandlerEffective",errorHandler,state); 133 domConfig.setParameter(parameter, origHandler.handleError); 134 state = domConfig.getParameter(parameter); 135 assertSame("setToOrigHandlerEffective",origHandler,state); 136 canSet = domConfig.canSetParameter(parameter,true); 137 138 if( 139 canSet 140 ) { 141 domConfig.setParameter(parameter, true); 142 143 } 144 145 } 146 147 148 149 150 function runTest() { 151 domconfigerrorhandler1(); 152 } 153