diff options
Diffstat (limited to '')
-rw-r--r-- | extensions/universalchardet/tests/CharsetDetectionTests.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/extensions/universalchardet/tests/CharsetDetectionTests.js b/extensions/universalchardet/tests/CharsetDetectionTests.js new file mode 100644 index 0000000000..a92b808e45 --- /dev/null +++ b/extensions/universalchardet/tests/CharsetDetectionTests.js @@ -0,0 +1,49 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*- */ +/* vim: set ts=8 et sw=4 tw=80: */ +var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); + +var gExpectedCharset; +var gLocalDir; + +function CharsetDetectionTests(aTestFile, aExpectedCharset) { + gExpectedCharset = aExpectedCharset; + + InitDetectorTests(); + + var fileURI = gLocalDir + aTestFile; + $("testframe").src = fileURI; + + SimpleTest.waitForExplicitFinish(); +} + +function InitDetectorTests() { + var loader = Services.scriptloader; + var ioService = Services.io; + loader.loadSubScript("chrome://mochikit/content/chrome-harness.js"); + + $("testframe").onload = DoDetectionTest; + + if (gExpectedCharset == "default") { + // No point trying to be generic here, because we have plenty of other + // unit tests that fail if run using a non-windows-1252 locale. + gExpectedCharset = "windows-1252"; + } + + // Get the local directory. This needs to be a file: URI because chrome: + // URIs are always UTF-8 (bug 617339) and we are testing decoding from other + // charsets. + var jar = getJar(getRootDirectory(window.location.href)); + var dir = jar + ? extractJarToTmp(jar) + : getChromeDir(getResolvedURI(window.location.href)); + gLocalDir = ioService.newFileURI(dir).spec; +} + +function DoDetectionTest() { + var iframeDoc = $("testframe").contentDocument; + var charset = iframeDoc.characterSet; + + is(charset, gExpectedCharset, "decoded as " + gExpectedCharset); + + SimpleTest.finish(); +} |