summaryrefslogtreecommitdiffstats
path: root/extensions/universalchardet/tests/CharsetDetectionTests.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--extensions/universalchardet/tests/CharsetDetectionTests.js49
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();
+}