Parent Directory
|
Revision Log
New tests
1 | <!DOCTYPE html> |
2 | <html> |
3 | <head> |
4 | <title>Shift JIS Decoding Test</title> |
5 | <script type="text/javascript"> |
6 | window.onload = function () { |
7 | var table = document.getElementsByTagName ('table')[0]; |
8 | var tbody = table.getElementsByTagName ('tbody')[0]; |
9 | var trs = tbody.childNodes; |
10 | var trsLength = trs.length; |
11 | var passNumber = 0; |
12 | var passCondNumber = 0; |
13 | var failNumber = 0; |
14 | for (var i = 0; i < trsLength; i++) { |
15 | var tr = trs[i]; |
16 | var actualTD = tr.firstChild.nextSibling; |
17 | var actual = actualTD.innerText != null |
18 | ? actualTD.innerText : actualTD.textContent; |
19 | var expectedTD = tr.lastChild; |
20 | var resultTD = expectedTD; |
21 | var expectedClass = expectedTD.className; |
22 | var expected = expectedTD.innerText != null |
23 | ? expectedTD.innerText : expectedTD.textContent; |
24 | var pass = false; |
25 | var passIfDocumented = false; |
26 | if (expectedClass == 'case1') { |
27 | if (actual == "\uFFFD" + expected) { |
28 | pass = true; |
29 | } else if (actual.length > 1 && |
30 | actual.substring (actual.length - 1) == '@') { |
31 | passIfDocumented = true; |
32 | } |
33 | } else if (expectedClass == 'case2') { |
34 | if (actual == "\uFFFD\uFFFD@") { |
35 | pass = true; |
36 | } else if (actual.length > 1) { |
37 | passIfDocumented = true; |
38 | } |
39 | } else if (expectedClass == 'case3') { |
40 | if (actual == "\uFFFD\uFFFD@") { |
41 | pass = true; |
42 | } else if (actual.length > 1) { |
43 | passIfDocumented = true; |
44 | } |
45 | } else if (expectedClass == 'case4') { |
46 | if (actual == "\uFFFD" + expected) { |
47 | pass = true; |
48 | } else if ((actual.substring (actual.length - expected.length) == expected || |
49 | actual.substring (actual.length - 1) == '@') && |
50 | actual.length > 1) { |
51 | passIfDocumented = true; |
52 | } |
53 | } else if (expectedClass == 'case5') { |
54 | if ((expected.length > 0 && actual == "\uFFFD" + expected) || (expected.length == 0 && actual == "\uFFFD\uFFFD") || (expected.length == 0 && actual == "\uFFFD\uFFFD\uFFFD")) { |
55 | pass = true; |
56 | } else if (actual.length > 1) { |
57 | if (actual.substring (actual.length - 1) == '@') { |
58 | passIfDocumented = true; |
59 | } else if (expected.length > 0) { |
60 | if (actual.substring (actual.length - expected.length) == expected) { |
61 | passIfDocumented = true; |
62 | } |
63 | } else { |
64 | passIfDocumented = true; |
65 | } |
66 | } |
67 | } else if (expectedClass == 'case6') { |
68 | if (actual == "\uFFFD@" || actual == "\uFFFD\uFFFD@") { |
69 | pass = true; |
70 | } else if (actual.length > 1 && |
71 | actual.substring (actual.length - 1) == '@') { |
72 | passIfDocumented = true; |
73 | } |
74 | } else if (expectedClass == 'case7') { |
75 | if (expected.length > 0 && actual == expected) { |
76 | pass = true; |
77 | } else if (expected.length == 0) { |
78 | if (actual == "\uFFFD@" || actual == "\uFFFD\uFFFD@") { |
79 | pass = true; |
80 | } else if (actual.length > 1 && |
81 | actual.substring (actual.length - 1) == '@') { |
82 | passIfDocumented = true; |
83 | } |
84 | } |
85 | } else if (expectedClass == 'case8') { |
86 | if (actual == expected) { |
87 | pass = true; |
88 | } else if (actual == expectedTD.title) { |
89 | passIfDocumented = true; |
90 | } |
91 | } else if (expectedClass == 'case9') { |
92 | if (actual == expected) { |
93 | pass = true; |
94 | } else if (actual == expectedTD.title || |
95 | actual == "\uFFFD@" || actual == "\uFFFD\uFFFD@") { |
96 | passIfDocumented = true; |
97 | } |
98 | } else if (expectedClass == 'case10') { |
99 | if (actual == expected) { |
100 | pass = true; |
101 | } else if (actual == "\uFFFD@" || actual == "\uFFFD\uFFFD@") { |
102 | passIfDocumented = true; |
103 | } |
104 | } |
105 | if (pass) { |
106 | resultTD.innerText = 'PASS'; |
107 | resultTD.textContent = 'PASS'; |
108 | resultTD.className = 'PASS'; |
109 | passNumber++; |
110 | } else if (passIfDocumented) { |
111 | resultTD.innerText = 'PASS if documented and consistent'; |
112 | resultTD.textContent = 'PASS if documented and consistent'; |
113 | resultTD.className = 'PASS-conditional'; |
114 | passCondNumber++; |
115 | } else { |
116 | var text = 'FAIL (' + encodeURIComponent (actual) + ')'; |
117 | resultTD.innerText = text; |
118 | resultTD.textContent = text; |
119 | resultTD.className = 'FAIL'; |
120 | failNumber++; |
121 | } |
122 | } |
123 | var result = document.getElementById ('result'); |
124 | if (failNumber > 0) { |
125 | var text = 'FAIL (' + failNumber + ' tests failed'; |
126 | if (failNumber + passNumber + passCondNumber != testNumber) { |
127 | text += '; ' + (failNumber + passNumber + passCondNumber) + |
128 | ' tests run while ' + testNumber + ' tests expected'; |
129 | } |
130 | text += ')'; |
131 | result.innerText = text; |
132 | result.textContent = text; |
133 | result.className = 'FAIL'; |
134 | } else if (passNumber + passCondNumber != testNumber) { |
135 | var text = 'FAIL (' + (passNumber + passCondNumber) + |
136 | ' tests run while ' + testNumber + ' tests expected'; |
137 | result.innerText = text; |
138 | result.textContent = text; |
139 | result.className = 'FAIL'; |
140 | } else if (passCondNumber > 0) { |
141 | result.innerText = 'PASS if documented and consistent'; |
142 | result.textContent = 'PASS if documented and consistent'; |
143 | result.className = 'PASS-conditional'; |
144 | } else { |
145 | result.innerText = 'PASS'; |
146 | result.textContent = 'PASS'; |
147 | result.className = 'PASS'; |
148 | } |
149 | }; |
150 | </script> |
151 | <style type="text/css"> |
152 | .PASS { |
153 | color: green; |
154 | } |
155 | .PASS-conditional { |
156 | color: blue; |
157 | } |
158 | .FAIL { |
159 | color: red; |
160 | } |
161 | </style> |
162 | </head> |
163 | <body> |
164 | <p id="result" class="FAIL">FAIL (not executed)</p> |
165 | <table><tbody><tr><th scope="row">0xF000</th><td> |