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/documentnormalizedocument10";
     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 * 
     79 	The normalizeDocument method method acts as if the document was going through a save 
     80 	and load cycle, putting the document in a "normal" form. 
     81 
     82 	Create an Element and a text node and verify the nodeValue of this text node and append these to
     83 	this Document.  If supported, invoke the setParameter method on this domconfiguration object to set the 
     84 	"element-content-whitespace"  feature to false.  Invoke the normalizeDocument method and verify if 
     85 	the text node has been discarded.
     86 
     87 * @author IBM
     88 * @author Neil Delima
     89 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
     90 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-element-content-whitespace
     91 */
     92 function documentnormalizedocument10() {
     93    var success;
     94     if(checkInitialization(builder, "documentnormalizedocument10") != null) return;
     95     var doc;
     96       var elem;
     97       var newText;
     98       var text;
     99       var nodeValue;
    100       var canSet;
    101       var appendedChild;
    102       var domConfig;
    103       
    104       var docRef = null;
    105       if (typeof(this.doc) != 'undefined') {
    106         docRef = this.doc;
    107       }
    108       doc = load(docRef, "doc", "hc_staff");
    109       elem = doc.createElement("newElem");
    110       newText = doc.createTextNode("Text          Node");
    111       appendedChild = elem.appendChild(newText);
    112       appendedChild = doc.appendChild(elem);
    113       text = elem.firstChild;
    114 
    115       nodeValue = text.nodeValue;
    116 
    117       assertEquals("documentnormalizedocument10","Text          Node",nodeValue);
    118        domConfig = doc.domConfig;
    119 
    120       canSet = domConfig.canSetParameter("element-content-whitespace",true);
    121       assertTrue("canSetElementContentWhitespaceTrue",canSet);
    122 domConfig.setParameter("element-content-whitespace", true);
    123 	 doc.normalizeDocument();
    124       text = elem.firstChild;
    125 
    126       nodeValue = text.nodeValue;
    127 
    128       assertEquals("documentnormalizedocument10_true1","Text          Node",nodeValue);
    129        canSet = domConfig.canSetParameter("element-content-whitespace",false);
    130       
    131 	if(
    132 	canSet
    133 	) {
    134 	domConfig.setParameter("element-content-whitespace", false);
    135 	 doc.normalizeDocument();
    136       text = elem.firstChild;
    137 
    138       nodeValue = text.nodeValue;
    139 
    140       assertEquals("documentnormalizedocument10_true2","Text Node",nodeValue);
    141        
    142 	}
    143 	
    144 }
    145 
    146 
    147 
    148 
    149 function runTest() {
    150    documentnormalizedocument10();
    151 }
    152