1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/tests/mochitest/dom-level2-core/test_createElementNS03.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,166 @@ 1.4 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> 1.5 +<html> 1.6 +<head> 1.7 +<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> 1.8 +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 1.9 +<title>http://www.w3.org/2001/DOM-Test-Suite/level2/core/createElementNS03</title> 1.10 +<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"> 1.11 +<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> 1.12 +<script type="text/javascript" src="DOMTestCase.js"></script> 1.13 +<script type="text/javascript" src="exclusions.js"></script> 1.14 +<script type="text/javascript"> 1.15 +// expose test function names 1.16 +function exposeTestFunctionNames() 1.17 +{ 1.18 +return ['createElementNS03']; 1.19 +} 1.20 + 1.21 +var docsLoaded = -1000000; 1.22 +var builder = null; 1.23 + 1.24 +// 1.25 +// This function is called by the testing framework before 1.26 +// running the test suite. 1.27 +// 1.28 +// If there are no configuration exceptions, asynchronous 1.29 +// document loading is started. Otherwise, the status 1.30 +// is set to complete and the exception is immediately 1.31 +// raised when entering the body of the test. 1.32 +// 1.33 +function setUpPage() { 1.34 + setUpPageStatus = 'running'; 1.35 + try { 1.36 + // 1.37 + // creates test document builder, may throw exception 1.38 + // 1.39 + builder = createConfiguredBuilder(); 1.40 + 1.41 + docsLoaded = 0; 1.42 + 1.43 + var docRef = null; 1.44 + if (typeof(this.doc) != 'undefined') { 1.45 + docRef = this.doc; 1.46 + } 1.47 + docsLoaded += preload(docRef, "doc", "staffNS"); 1.48 + 1.49 + if (docsLoaded == 1) { 1.50 + setUpPage = 'complete'; 1.51 + } 1.52 + } catch(ex) { 1.53 + catchInitializationError(builder, ex); 1.54 + setUpPage = 'complete'; 1.55 + } 1.56 +} 1.57 + 1.58 +// 1.59 +// This method is called on the completion of 1.60 +// each asychronous load started in setUpTests. 1.61 +// 1.62 +// When every synchronous loaded document has completed, 1.63 +// the page status is changed which allows the 1.64 +// body of the test to be executed. 1.65 +function loadComplete() { 1.66 + if (++docsLoaded == 1) { 1.67 + setUpPageStatus = 'complete'; 1.68 + runJSUnitTests(); 1.69 + markTodos(); 1.70 + SimpleTest.finish(); 1.71 + } 1.72 +} 1.73 + 1.74 +var docName = 'createElementNS03'; 1.75 + 1.76 + 1.77 +/** 1.78 +* 1.79 + The "createElementNS(namespaceURI,qualifiedName)" method for a 1.80 + Document should raise INVALID_CHARACTER_ERR DOMException if 1.81 + qualifiedName contains an illegal character. 1.82 + 1.83 + Invoke method createElementNS(namespaceURI,qualifiedName) on this document 1.84 + with qualifiedName containing an illegal character from illegalChars[]. 1.85 + Method should raise INVALID_CHARACTER_ERR DOMException for all characters 1.86 + in illegalChars[]. 1.87 + 1.88 +* @author NIST 1.89 +* @author Mary Brady 1.90 +* @see http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS 1.91 +* @see http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-DocCrElNS')/raises/exception[@name='DOMException']/descr/p[substring-before(.,':')='INVALID_CHARACTER_ERR']) 1.92 +*/ 1.93 +function createElementNS03() { 1.94 + var success; 1.95 + if(checkInitialization(builder, "createElementNS03") != null) return; 1.96 + var namespaceURI = "http://www.wedding.com/"; 1.97 + var qualifiedName; 1.98 + var doc; 1.99 + var done; 1.100 + var newElement; 1.101 + var charact; 1.102 + illegalQNames = new Array(); 1.103 + illegalQNames[0] = "person:{"; 1.104 + illegalQNames[1] = "person:}"; 1.105 + illegalQNames[2] = "person:~"; 1.106 + illegalQNames[3] = "person:'"; 1.107 + illegalQNames[4] = "person:!"; 1.108 + illegalQNames[5] = "person:@"; 1.109 + illegalQNames[6] = "person:#"; 1.110 + illegalQNames[7] = "person:$"; 1.111 + illegalQNames[8] = "person:%"; 1.112 + illegalQNames[9] = "person:^"; 1.113 + illegalQNames[10] = "person:&"; 1.114 + illegalQNames[11] = "person:*"; 1.115 + illegalQNames[12] = "person:("; 1.116 + illegalQNames[13] = "person:)"; 1.117 + illegalQNames[14] = "person:+"; 1.118 + illegalQNames[15] = "person:="; 1.119 + illegalQNames[16] = "person:["; 1.120 + illegalQNames[17] = "person:]"; 1.121 + illegalQNames[18] = "person:\\"; 1.122 + illegalQNames[19] = "person:/"; 1.123 + illegalQNames[20] = "person:;"; 1.124 + illegalQNames[21] = "person:`"; 1.125 + illegalQNames[22] = "person:<"; 1.126 + illegalQNames[23] = "person:>"; 1.127 + illegalQNames[24] = "person:,"; 1.128 + illegalQNames[25] = "person:a "; 1.129 + illegalQNames[26] = "person:\""; 1.130 + 1.131 + 1.132 + var docRef = null; 1.133 + if (typeof(this.doc) != 'undefined') { 1.134 + docRef = this.doc; 1.135 + } 1.136 + doc = load(docRef, "doc", "staffNS"); 1.137 + for(var indexN65688 = 0;indexN65688 < illegalQNames.length; indexN65688++) { 1.138 + qualifiedName = illegalQNames[indexN65688]; 1.139 + 1.140 + { 1.141 + success = false; 1.142 + try { 1.143 + newElement = doc.createElementNS(namespaceURI,qualifiedName); 1.144 + } 1.145 + catch(ex) { 1.146 + success = (typeof(ex.code) != 'undefined' && ex.code == 5); 1.147 + } 1.148 + assertTrue("throw_INVALID_CHARACTER_ERR",success); 1.149 + } 1.150 + 1.151 + } 1.152 + 1.153 +} 1.154 + 1.155 +</script> 1.156 +</head> 1.157 +<body> 1.158 +<h2>Test http://www.w3.org/2001/DOM-Test-Suite/level2/core/createElementNS03</h2> 1.159 +<p></p> 1.160 +<p> 1.161 +Copyright (c) 2001-2004 World Wide Web Consortium, 1.162 +(Massachusetts Institute of Technology, European Research Consortium 1.163 +for Informatics and Mathematics, Keio University). All 1.164 +Rights Reserved. This work is distributed under the <a href="http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231">W3C(r) Software License</a> in the 1.165 +hope that it will be useful, but WITHOUT ANY WARRANTY; without even 1.166 +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.167 +</p> 1.168 +</body> 1.169 +</html>