18e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 28e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block/* 38e32145b4e03a65dfedc686a281d7a7f78d57a72Steve BlockCopyright © 2001-2004 World Wide Web Consortium, 48e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block(Massachusetts Institute of Technology, European Research Consortium 58e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Blockfor Informatics and Mathematics, Keio University). All 68e32145b4e03a65dfedc686a281d7a7f78d57a72Steve BlockRights Reserved. This work is distributed under the W3C® Software License [1] in the 78e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Blockhope that it will be useful, but WITHOUT ANY WARRANTY; without even 88e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Blockthe implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 98e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 108e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 118e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block*/ 128e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 138e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 148e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 158e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block /** 168e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block * Gets URI that identifies the test. 178e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block * @return uri identifier of test 188e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block */ 198e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Blockfunction getTargetURI() { 208e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block return "http://www.w3.org/2001/DOM-Test-Suite/level2/html/hasFeature01"; 218e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block } 228e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 238e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Blockvar docsLoaded = -1000000; 248e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Blockvar builder = null; 258e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 268e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// 278e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// This function is called by the testing framework before 288e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// running the test suite. 298e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// 308e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// If there are no configuration exceptions, asynchronous 318e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// document loading is started. Otherwise, the status 328e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// is set to complete and the exception is immediately 338e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// raised when entering the body of the test. 348e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// 358e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Blockfunction setUpPage() { 368e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block setUpPageStatus = 'running'; 378e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block try { 388e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block // 398e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block // creates test document builder, may throw exception 408e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block // 418e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block builder = createConfiguredBuilder(); 428e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 438e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block docsLoaded = 0; 448e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 458e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block if (docsLoaded == 0) { 468e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block setUpPageStatus = 'complete'; 478e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block } 488e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block } catch(ex) { 498e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block catchInitializationError(builder, ex); 508e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block setUpPageStatus = 'complete'; 518e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block } 528e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block} 538e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 548e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 558e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 568e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// 578e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// This method is called on the completion of 588e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// each asychronous load started in setUpTests. 598e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// 608e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// When every synchronous loaded document has completed, 618e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// the page status is changed which allows the 628e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block// body of the test to be executed. 638e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Blockfunction loadComplete() { 648e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block if (++docsLoaded == 0) { 658e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block setUpPageStatus = 'complete'; 668e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block } 678e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block} 688e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 698e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 708e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block/** 718e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block* 728e32145b4e03a65dfedc686a281d7a7f78d57a72Steve BlockhasFeature("hTmL", null) should return true. 738e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 748e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block* @author Curt Arnold 758e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block* @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5CED94D7 768e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block*/ 778e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Blockfunction hasFeature01() { 788e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block var success; 798e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block if(checkInitialization(builder, "hasFeature01") != null) return; 808e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block var doc; 818e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block var domImpl; 828e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block var version = null; 838e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 848e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block var state; 858e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block domImpl = getImplementation(); 868e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Blockstate = domImpl.hasFeature("hTmL",version); 878e32145b4e03a65dfedc686a281d7a7f78d57a72Steve BlockassertTrue("hasHTMLnull",state); 888e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 898e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block} 908e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 918e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 928e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 938e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block 948e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Blockfunction runTest() { 958e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block hasFeature01(); 968e32145b4e03a65dfedc686a281d7a7f78d57a72Steve Block} 97