summaryrefslogtreecommitdiffstats
path: root/LayoutTests/fast/encoding/resources/char-decoding-utils.js
diff options
context:
space:
mode:
authorIain Merrick <husky@google.com>2010-09-29 10:59:30 +0100
committerIain Merrick <husky@google.com>2010-09-29 16:27:50 +0100
commitfd5c6425ce58eb75211be7718d5dee960842a37e (patch)
treefdcd1da6ceced587fa315991889655ca4105efb1 /LayoutTests/fast/encoding/resources/char-decoding-utils.js
parenta477fea25b6f689360fd2b6a69ee21c3627d3b04 (diff)
downloadexternal_webkit-fd5c6425ce58eb75211be7718d5dee960842a37e.zip
external_webkit-fd5c6425ce58eb75211be7718d5dee960842a37e.tar.gz
external_webkit-fd5c6425ce58eb75211be7718d5dee960842a37e.tar.bz2
Add fast/encoding layout tests.
Merged from WebKit at r67178. The vast majority of these are passing. The exceptions: - Three Mac-specific tests, won't fix. - Four failures in the Java HTTP stack (no problem for the Chrome HTTP stack). - fast/encoding/mailto-always-utf-8 needs a new LayoutTestController callback. Change-Id: I16c613d42acd0ea2dc146909d514376d0a2e5aaa
Diffstat (limited to 'LayoutTests/fast/encoding/resources/char-decoding-utils.js')
-rw-r--r--LayoutTests/fast/encoding/resources/char-decoding-utils.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/LayoutTests/fast/encoding/resources/char-decoding-utils.js b/LayoutTests/fast/encoding/resources/char-decoding-utils.js
new file mode 100644
index 0000000..a091ad8
--- /dev/null
+++ b/LayoutTests/fast/encoding/resources/char-decoding-utils.js
@@ -0,0 +1,34 @@
+function hex(number)
+{
+ var hexDigit = "0123456789ABCDEF";
+ var hex = hexDigit.substr(number & 0xf, 1);
+ while (number > 15) {
+ number >>= 4;
+ hex = hexDigit.substr(number & 15, 1) + hex;
+ }
+ return hex;
+}
+
+function decode(charsetName, characterSequence)
+{
+ var req = new XMLHttpRequest;
+ req.open('GET', 'data:text/plain,' + characterSequence, false);
+ req.overrideMimeType('text/plain; charset="' + charsetName + '"');
+ req.send('');
+ var code = hex(req.responseText.charCodeAt(0));
+ return "U+" + ("0000" + code).substr(code.length, 4);
+}
+
+function testDecode(charsetName, characterSequence, unicode)
+{
+ shouldBe("decode('" + charsetName + "', '" + characterSequence + "')", "'" + unicode + "'");
+}
+
+function batchTestDecode(inputData)
+{
+ for (var i in inputData.encodings) {
+ for (var j in inputData.encoded)
+ testDecode(inputData.encodings[i], inputData.encoded[j], inputData.unicode[j]);
+ }
+}
+