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/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