| OLD | NEW |
| (Empty) | |
| 1 <!doctype html> |
| 2 <title>document.characterSet (inputEncoding and charset as aliases) normalizatio
n tests</title> |
| 3 <link rel=author title="Aryeh Gregor" href=ayg@aryeh.name> |
| 4 <meta name=timeout content=long> |
| 5 <div id=log></div> |
| 6 <script src=/resources/testharness.js></script> |
| 7 <script src=/resources/testharnessreport.js></script> |
| 8 <style>iframe { display: none }</style> |
| 9 <script> |
| 10 "use strict"; |
| 11 |
| 12 // Taken straight from https://encoding.spec.whatwg.org/ |
| 13 var encodingMap = { |
| 14 "UTF-8": [ |
| 15 "unicode-1-1-utf-8", |
| 16 "utf-8", |
| 17 "utf8", |
| 18 // As we use <meta>, utf-16 will map to utf-8 per |
| 19 // https://html.spec.whatwg.org/multipage/#documentEncoding |
| 20 "utf-16", |
| 21 "utf-16le", |
| 22 "utf-16be", |
| 23 ], |
| 24 "IBM866": [ |
| 25 "866", |
| 26 "cp866", |
| 27 "csibm866", |
| 28 "ibm866", |
| 29 ], |
| 30 "ISO-8859-2": [ |
| 31 "csisolatin2", |
| 32 "iso-8859-2", |
| 33 "iso-ir-101", |
| 34 "iso8859-2", |
| 35 "iso88592", |
| 36 "iso_8859-2", |
| 37 "iso_8859-2:1987", |
| 38 "l2", |
| 39 "latin2", |
| 40 ], |
| 41 "ISO-8859-3": [ |
| 42 "csisolatin3", |
| 43 "iso-8859-3", |
| 44 "iso-ir-109", |
| 45 "iso8859-3", |
| 46 "iso88593", |
| 47 "iso_8859-3", |
| 48 "iso_8859-3:1988", |
| 49 "l3", |
| 50 "latin3", |
| 51 ], |
| 52 "ISO-8859-4": [ |
| 53 "csisolatin4", |
| 54 "iso-8859-4", |
| 55 "iso-ir-110", |
| 56 "iso8859-4", |
| 57 "iso88594", |
| 58 "iso_8859-4", |
| 59 "iso_8859-4:1988", |
| 60 "l4", |
| 61 "latin4", |
| 62 ], |
| 63 "ISO-8859-5": [ |
| 64 "csisolatincyrillic", |
| 65 "cyrillic", |
| 66 "iso-8859-5", |
| 67 "iso-ir-144", |
| 68 "iso8859-5", |
| 69 "iso88595", |
| 70 "iso_8859-5", |
| 71 "iso_8859-5:1988", |
| 72 ], |
| 73 "ISO-8859-6": [ |
| 74 "arabic", |
| 75 "asmo-708", |
| 76 "csiso88596e", |
| 77 "csiso88596i", |
| 78 "csisolatinarabic", |
| 79 "ecma-114", |
| 80 "iso-8859-6", |
| 81 "iso-8859-6-e", |
| 82 "iso-8859-6-i", |
| 83 "iso-ir-127", |
| 84 "iso8859-6", |
| 85 "iso88596", |
| 86 "iso_8859-6", |
| 87 "iso_8859-6:1987", |
| 88 ], |
| 89 "ISO-8859-7": [ |
| 90 "csisolatingreek", |
| 91 "ecma-118", |
| 92 "elot_928", |
| 93 "greek", |
| 94 "greek8", |
| 95 "iso-8859-7", |
| 96 "iso-ir-126", |
| 97 "iso8859-7", |
| 98 "iso88597", |
| 99 "iso_8859-7", |
| 100 "iso_8859-7:1987", |
| 101 "sun_eu_greek", |
| 102 ], |
| 103 "ISO-8859-8": [ |
| 104 "csiso88598e", |
| 105 "csisolatinhebrew", |
| 106 "hebrew", |
| 107 "iso-8859-8", |
| 108 "iso-8859-8-e", |
| 109 "iso-ir-138", |
| 110 "iso8859-8", |
| 111 "iso88598", |
| 112 "iso_8859-8", |
| 113 "iso_8859-8:1988", |
| 114 "visual", |
| 115 ], |
| 116 "ISO-8859-8-I": [ |
| 117 "csiso88598i", |
| 118 "iso-8859-8-i", |
| 119 "logical", |
| 120 ], |
| 121 "ISO-8859-10": [ |
| 122 "csisolatin6", |
| 123 "iso-8859-10", |
| 124 "iso-ir-157", |
| 125 "iso8859-10", |
| 126 "iso885910", |
| 127 "l6", |
| 128 "latin6", |
| 129 ], |
| 130 "ISO-8859-13": [ |
| 131 "iso-8859-13", |
| 132 "iso8859-13", |
| 133 "iso885913", |
| 134 ], |
| 135 "ISO-8859-14": [ |
| 136 "iso-8859-14", |
| 137 "iso8859-14", |
| 138 "iso885914", |
| 139 ], |
| 140 "ISO-8859-15": [ |
| 141 "csisolatin9", |
| 142 "iso-8859-15", |
| 143 "iso8859-15", |
| 144 "iso885915", |
| 145 "iso_8859-15", |
| 146 "l9", |
| 147 ], |
| 148 "ISO-8859-16": [ |
| 149 "iso-8859-16", |
| 150 ], |
| 151 "KOI8-R": [ |
| 152 "cskoi8r", |
| 153 "koi", |
| 154 "koi8", |
| 155 "koi8-r", |
| 156 "koi8_r", |
| 157 ], |
| 158 "KOI8-U": [ |
| 159 "koi8-ru", |
| 160 "koi8-u", |
| 161 ], |
| 162 "macintosh": [ |
| 163 "csmacintosh", |
| 164 "mac", |
| 165 "macintosh", |
| 166 "x-mac-roman", |
| 167 ], |
| 168 "windows-874": [ |
| 169 "dos-874", |
| 170 "iso-8859-11", |
| 171 "iso8859-11", |
| 172 "iso885911", |
| 173 "tis-620", |
| 174 "windows-874", |
| 175 ], |
| 176 "windows-1250": [ |
| 177 "cp1250", |
| 178 "windows-1250", |
| 179 "x-cp1250", |
| 180 ], |
| 181 "windows-1251": [ |
| 182 "cp1251", |
| 183 "windows-1251", |
| 184 "x-cp1251", |
| 185 ], |
| 186 "windows-1252": [ |
| 187 "ansi_x3.4-1968", |
| 188 "ascii", |
| 189 "cp1252", |
| 190 "cp819", |
| 191 "csisolatin1", |
| 192 "ibm819", |
| 193 "iso-8859-1", |
| 194 "iso-ir-100", |
| 195 "iso8859-1", |
| 196 "iso88591", |
| 197 "iso_8859-1", |
| 198 "iso_8859-1:1987", |
| 199 "l1", |
| 200 "latin1", |
| 201 "us-ascii", |
| 202 "windows-1252", |
| 203 "x-cp1252", |
| 204 // As we use <meta>, x-user-defined will map to windows-1252 per |
| 205 // https://html.spec.whatwg.org/multipage/#documentEncoding |
| 206 "x-user-defined" |
| 207 ], |
| 208 "windows-1253": [ |
| 209 "cp1253", |
| 210 "windows-1253", |
| 211 "x-cp1253", |
| 212 ], |
| 213 "windows-1254": [ |
| 214 "cp1254", |
| 215 "csisolatin5", |
| 216 "iso-8859-9", |
| 217 "iso-ir-148", |
| 218 "iso8859-9", |
| 219 "iso88599", |
| 220 "iso_8859-9", |
| 221 "iso_8859-9:1989", |
| 222 "l5", |
| 223 "latin5", |
| 224 "windows-1254", |
| 225 "x-cp1254", |
| 226 ], |
| 227 "windows-1255": [ |
| 228 "cp1255", |
| 229 "windows-1255", |
| 230 "x-cp1255", |
| 231 ], |
| 232 "windows-1256": [ |
| 233 "cp1256", |
| 234 "windows-1256", |
| 235 "x-cp1256", |
| 236 ], |
| 237 "windows-1257": [ |
| 238 "cp1257", |
| 239 "windows-1257", |
| 240 "x-cp1257", |
| 241 ], |
| 242 "windows-1258": [ |
| 243 "cp1258", |
| 244 "windows-1258", |
| 245 "x-cp1258", |
| 246 ], |
| 247 "x-mac-cyrillic": [ |
| 248 "x-mac-cyrillic", |
| 249 "x-mac-ukrainian", |
| 250 ], |
| 251 "GBK": [ |
| 252 "chinese", |
| 253 "csgb2312", |
| 254 "csiso58gb231280", |
| 255 "gb2312", |
| 256 "gb_2312", |
| 257 "gb_2312-80", |
| 258 "gbk", |
| 259 "iso-ir-58", |
| 260 "x-gbk", |
| 261 ], |
| 262 "gb18030": [ |
| 263 "gb18030", |
| 264 ], |
| 265 "Big5": [ |
| 266 "big5", |
| 267 "big5-hkscs", |
| 268 "cn-big5", |
| 269 "csbig5", |
| 270 "x-x-big5", |
| 271 ], |
| 272 "EUC-JP": [ |
| 273 "cseucpkdfmtjapanese", |
| 274 "euc-jp", |
| 275 "x-euc-jp", |
| 276 ], |
| 277 "ISO-2022-JP": [ |
| 278 "csiso2022jp", |
| 279 "iso-2022-jp", |
| 280 ], |
| 281 "Shift_JIS": [ |
| 282 "csshiftjis", |
| 283 "ms932", |
| 284 "ms_kanji", |
| 285 "shift-jis", |
| 286 "shift_jis", |
| 287 "sjis", |
| 288 "windows-31j", |
| 289 "x-sjis", |
| 290 ], |
| 291 "EUC-KR": [ |
| 292 "cseuckr", |
| 293 "csksc56011987", |
| 294 "euc-kr", |
| 295 "iso-ir-149", |
| 296 "korean", |
| 297 "ks_c_5601-1987", |
| 298 "ks_c_5601-1989", |
| 299 "ksc5601", |
| 300 "ksc_5601", |
| 301 "windows-949", |
| 302 ], |
| 303 "replacement": [ |
| 304 "csiso2022kr", |
| 305 "hz-gb-2312", |
| 306 "iso-2022-cn", |
| 307 "iso-2022-cn-ext", |
| 308 "iso-2022-kr", |
| 309 ], |
| 310 }; |
| 311 |
| 312 // Add spaces and mix up case |
| 313 Object.keys(encodingMap).forEach(function(name) { |
| 314 var lower = encodingMap[name]; |
| 315 var upper = encodingMap[name].map(function(s) { return s.toUpperCase() }); |
| 316 var mixed = encodingMap[name].map(function(s) { |
| 317 var ret = ""; |
| 318 for (var i = 0; i < s.length; i += 2) { |
| 319 ret += s[i].toUpperCase(); |
| 320 if (i + 1 < s.length) { |
| 321 ret += s[i + 1]; |
| 322 } |
| 323 } |
| 324 return ret; |
| 325 }); |
| 326 var spacey = encodingMap[name].map(function(s) { |
| 327 return " \t\n\f\r" + s + " \t\n\f\r"; |
| 328 }); |
| 329 encodingMap[name] = []; |
| 330 for (var i = 0; i < lower.length; i++) { |
| 331 encodingMap[name].push(lower[i]); |
| 332 /* |
| 333 if (lower[i] != upper[i]) { |
| 334 encodingMap[name].push(upper[i]); |
| 335 } |
| 336 if (lower[i] != mixed[i] && upper[i] != mixed[i]) { |
| 337 encodingMap[name].push(mixed[i]); |
| 338 } |
| 339 encodingMap[name].push(spacey[i]); |
| 340 */ |
| 341 } |
| 342 }); |
| 343 |
| 344 Object.keys(encodingMap).forEach(function(name) { |
| 345 encodingMap[name].forEach(function(label) { |
| 346 var iframe = document.createElement("iframe"); |
| 347 var t = async_test("Name " + format_value(name) + |
| 348 " has label " + format_value(label) + " (characterSet)"); |
| 349 var t2 = async_test("Name " + format_value(name) + |
| 350 " has label " + format_value(label) + " (inputEncoding)")
; |
| 351 var t3 = async_test("Name " + format_value(name) + |
| 352 " has label " + format_value(label) + " (charset)"); |
| 353 iframe.src = "encoding.py?label=" + label; |
| 354 iframe.onload = function() { |
| 355 t.step(function() { |
| 356 assert_equals(iframe.contentDocument.characterSet, name); |
| 357 }); |
| 358 t2.step(function() { |
| 359 assert_equals(iframe.contentDocument.inputEncoding, name); |
| 360 }); |
| 361 t3.step(function() { |
| 362 assert_equals(iframe.contentDocument.charset, name); |
| 363 }); |
| 364 document.body.removeChild(iframe); |
| 365 t.done(); |
| 366 t2.done(); |
| 367 t3.done(); |
| 368 }; |
| 369 document.body.appendChild(iframe); |
| 370 }); |
| 371 }); |
| 372 </script> |
| 373 <!-- vim: set expandtab tabstop=2 shiftwidth=2: --> |
| OLD | NEW |