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/nodesetuserdata05";
     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       var docRef = null;
     46       if (typeof(this.doc) != 'undefined') {
     47         docRef = this.doc;
     48       }
     49       docsLoaded += preload(docRef, "doc", "hc_staff");
     50         
     51       var doc2Ref = null;
     52       if (typeof(this.doc2) != 'undefined') {
     53         doc2Ref = this.doc2;
     54       }
     55       docsLoaded += preload(doc2Ref, "doc2", "hc_staff");
     56         
     57        if (docsLoaded == 2) {
     58           setUpPageStatus = 'complete';
     59        }
     60     } catch(ex) {
     61     	catchInitializationError(builder, ex);
     62         setUpPageStatus = 'complete';
     63     }
     64 }
     65 
     66 
     67 
     68 //
     69 //   This method is called on the completion of 
     70 //      each asychronous load started in setUpTests.
     71 //
     72 //   When every synchronous loaded document has completed,
     73 //      the page status is changed which allows the
     74 //      body of the test to be executed.
     75 function loadComplete() {
     76     if (++docsLoaded == 2) {
     77         setUpPageStatus = 'complete';
     78     }
     79 }
     80 
     81 
     82 /**
     83 * 
     84 
     85 	
     86 	Invoke setUserData on a new Attr to set its UserData to two Document nodes
     87 	obtained by parsing the same xml document.  Using getUserData and isNodeEqual 
     88 	verify if the returned nodes are Equal.
     89 
     90 * @author IBM
     91 * @author Neil Delima
     92 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-setUserData
     93 */
     94 function nodesetuserdata05() {
     95    var success;
     96     if(checkInitialization(builder, "nodesetuserdata05") != null) return;
     97     var doc;
     98       var doc2;
     99       var userData;
    100       var returned1;
    101       var returned2;
    102       var retUserData;
    103       var success;
    104       var attr;
    105       var nullHandler = null;
    106 
    107       
    108       var docRef = null;
    109       if (typeof(this.doc) != 'undefined') {
    110         docRef = this.doc;
    111       }
    112       doc = load(docRef, "doc", "hc_staff");
    113       
    114       var doc2Ref = null;
    115       if (typeof(this.doc2) != 'undefined') {
    116         doc2Ref = this.doc2;
    117       }
    118       doc2 = load(doc2Ref, "doc2", "hc_staff");
    119       attr = doc.createAttributeNS("http://www.w3.org/XML/1998/namespace","lang");
    120       if (null == nullHandler) {
    121          attr.setUserData("Key1", doc, null);
    122       } else {
    123           attr.setUserData("Key1", doc, nullHandler.handle);
    124       }
    125        if (null == nullHandler) {
    126          attr.setUserData("Key2", doc2, null);
    127       } else {
    128           attr.setUserData("Key2", doc2, nullHandler.handle);
    129       }
    130        returned1 = attr.getUserData("Key1");
    131       returned2 = attr.getUserData("Key2");
    132       success = returned1.isEqualNode(returned2);
    133       assertTrue("nodesetuserdata05",success);
    134 
    135 }
    136 
    137 
    138 
    139 
    140 function runTest() {
    141    nodesetuserdata05();
    142 }
    143