|
1 /* The test text as octets for reference |
|
2 * %83%86%83%6a%83%52%81%5b%83%68%82%cd%81%41%82%b7%82%d7%82%c4%82%cc%95%b6%8e%9a%82%c9%8c%c5%97%4c%82%cc%94%d4%8d%86%82%f0%95%74%97%5e%82%b5%82%dc%82%b7 |
|
3 */ |
|
4 |
|
5 /* The test text decoded correctly as Shift_JIS */ |
|
6 const rightText="\u30E6\u30CB\u30B3\u30FC\u30C9\u306F\u3001\u3059\u3079\u3066\u306E\u6587\u5B57\u306B\u56FA\u6709\u306E\u756A\u53F7\u3092\u4ED8\u4E0E\u3057\u307E\u3059"; |
|
7 |
|
8 /* The test text decoded incorrectly as Windows-1251. This is the "right" wrong |
|
9 text; anything else is unexpected. */ |
|
10 const wrongText="\u0453\u2020\u0453\u006A\u0453\u0052\u0403\u005B\u0453\u0068\u201A\u041D\u0403\u0041\u201A\u00B7\u201A\u0427\u201A\u0414\u201A\u041C\u2022\u00B6\u040B\u0459\u201A\u0419\u040A\u0415\u2014\u004C\u201A\u041C\u201D\u0424\u040C\u2020\u201A\u0440\u2022\u0074\u2014\u005E\u201A\u00B5\u201A\u042C\u201A\u00B7"; |
|
11 |
|
12 function testContent(text) { |
|
13 is(gBrowser.contentDocument.getElementById("testpar").innerHTML, text, |
|
14 "<p> contains expected text"); |
|
15 is(gBrowser.contentDocument.getElementById("testtextarea").innerHTML, text, |
|
16 "<textarea> contains expected text"); |
|
17 is(gBrowser.contentDocument.getElementById("testinput").value, text, |
|
18 "<input> contains expected text"); |
|
19 } |
|
20 |
|
21 function afterOpen() { |
|
22 gBrowser.selectedBrowser.removeEventListener("load", afterOpen, true); |
|
23 gBrowser.selectedBrowser.addEventListener("load", afterChangeCharset, true); |
|
24 |
|
25 /* Test that the content on load is the expected wrong decoding */ |
|
26 testContent(wrongText); |
|
27 |
|
28 /* Force the page encoding to Shift_JIS */ |
|
29 BrowserSetForcedCharacterSet("Shift_JIS"); |
|
30 } |
|
31 |
|
32 function afterChangeCharset() { |
|
33 gBrowser.selectedBrowser.removeEventListener("load", afterChangeCharset, true); |
|
34 |
|
35 /* test that the content is decoded correctly */ |
|
36 testContent(rightText); |
|
37 gBrowser.removeCurrentTab(); |
|
38 finish(); |
|
39 } |
|
40 |
|
41 function test() { |
|
42 waitForExplicitFinish(); |
|
43 |
|
44 // Get the local directory. This needs to be a file: URI because chrome: URIs |
|
45 // are always UTF-8 (bug 617339) and we are testing decoding from other |
|
46 // charsets. |
|
47 var jar = getJar(getRootDirectory(gTestPath)); |
|
48 var dir = jar ? |
|
49 extractJarToTmp(jar) : |
|
50 getChromeDir(getResolvedURI(gTestPath)); |
|
51 var rootDir = Services.io.newFileURI(dir).spec; |
|
52 |
|
53 gBrowser.selectedTab = gBrowser.addTab(rootDir + "test-form_sjis.html"); |
|
54 gBrowser.selectedBrowser.addEventListener("load", afterOpen, true); |
|
55 } |