summaryrefslogtreecommitdiffstats
path: root/LayoutTests/fast/encoding/resources/char-decoding-utils.js
blob: a091ad858088dd1adaef79f1732381581e87234a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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]);
    }
}