Home | History | Annotate | Download | only in core
      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