2011-02-07 James Robinson <jamesr@chromium.org>
[WebKit-https.git] / LayoutTests / sputnik / Conformance / 07_Lexical_Conventions / 7.4_Comments / S7.4_A5.html
1 <html>
2 <head>
3 <meta charset='utf-8'>
4 <style>
5 .pass {
6     font-weight: bold;
7     color: green;
8 }
9 .fail {
10     font-weight: bold;
11     color: red;
12 }
13 </style>
14
15 <script>
16 if (window.layoutTestController)
17     layoutTestController.dumpAsText();
18
19 function SputnikError(message)
20 {
21     this.message = message;
22 }
23
24 SputnikError.prototype.toString = function ()
25 {
26     return 'SputnikError: ' + this.message;
27 };
28
29 var sputnikException;
30
31 function testPrint(msg)
32 {
33     var span = document.createElement("span");
34     document.getElementById("console").appendChild(span); // insert it first so XHTML knows the namespace 
35     span.innerHTML = msg + '<br />';
36 }
37
38 function escapeHTML(text)
39 {
40     return text.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;");
41 }
42
43 function printTestPassed(msg)
44 {
45     testPrint('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
46 }
47
48 function printTestFailed(msg)
49 {
50     testPrint('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
51 }
52
53 function testFailed(msg)
54 {
55     throw new SputnikError(msg);
56 }
57
58 var successfullyParsed = false;
59 </script>
60
61 </head>
62 <body>
63 <p>S7.4_A5</p>
64 <div id='console'></div>
65 <script>
66 try {
67
68 /**
69  * @name: S7.4_A5;
70  * @section: 7.4;
71  * @assertion: Single line comments can contain any Unicode character without Line Terminators;
72  * @description: //var " + xx + "yy = -1", insert instead of xx all Unicode characters;
73 */
74
75 //CHECK
76 errorCount = 0;
77 count = 0;
78 var hex = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
79 for (i1 = 0; i1 < 16; i1++) {
80   for (i2 = 0; i2 < 16; i2++) {
81     for (i3 = 0; i3 < 16; i3++) {
82       for (i4 = 0; i4 < 16; i4++) {
83         try {    
84           var uu = hex[i1] + hex[i2] + hex[i3] + hex[i4];
85           var xx = String.fromCharCode("0x" + uu);
86           var LineTerminators = ((uu === "000A") || (uu === "000D") || (uu === "2028") || (uu === "2029"));
87           var yy = 0;     
88           eval("//var " + xx + "yy = -1");          
89           if (LineTerminators !== true) { 
90             if (yy !== 0) {
91               testFailed('#' + uu + ' ');
92               errorCount++;
93             }
94           } else {
95             if (yy !== -1) {
96               testFailed('#' + uu + ' ');
97               errorCount++;
98             }
99           }
100         } catch (e){
101           testFailed('#' + uu + ' ');
102           errorCount++;
103         }
104         count++;
105       }  
106     }
107   }
108 }
109
110 if (errorCount > 0) {    
111   testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
112 }
113
114 } catch (ex) {
115     sputnikException = ex;
116 }
117
118 var successfullyParsed = true;
119 </script>
120
121 <script>
122 if (!successfullyParsed)
123     printTestFailed('successfullyParsed is not set');
124 else if (sputnikException)
125     printTestFailed(sputnikException);
126 else
127     printTestPassed("");
128 testPrint('<br /><span class="pass">TEST COMPLETE</span>');
129 </script>
130 </body>
131 </html>