Index: third_party/WebKit/LayoutTests/fast/encoding/resources/char-decoding-utils.js |
diff --git a/third_party/WebKit/LayoutTests/fast/encoding/resources/char-decoding-utils.js b/third_party/WebKit/LayoutTests/fast/encoding/resources/char-decoding-utils.js |
index 4d5888cb7cf0574833ed9975f21ea1a460a696b8..d194d55a7c64025fc61967f98476106a94588dec 100644 |
--- a/third_party/WebKit/LayoutTests/fast/encoding/resources/char-decoding-utils.js |
+++ b/third_party/WebKit/LayoutTests/fast/encoding/resources/char-decoding-utils.js |
@@ -1,34 +1,37 @@ |
-function decodeText(charsetName, characterSequence) |
-{ |
- var req = new XMLHttpRequest; |
- req.open('GET', 'data:text/plain,' + characterSequence, false); |
- req.overrideMimeType('text/plain; charset="' + charsetName + '"'); |
+function decodeText(charsetName, characterSequence) { |
+ return new Promise((resolve, reject) => { |
+ const req = new XMLHttpRequest; |
+ req.open('GET', `data:text/plain,${characterSequence}`); |
+ req.overrideMimeType(`text/plain; charset="${charsetName}"`); |
req.send(''); |
- return req.responseText; |
+ req.onload = () => resolve(req.responseText); |
+ req.onerror = () => reject(new Error(req.statusText)); |
+ }); |
} |
-function decode(charsetName, characterSequence) |
-{ |
- var decodedText = decodeText(charsetName, characterSequence); |
- var result = ""; |
- for (var i = 0; i < decodedText.length; ++i) { |
- var code = decodedText.charCodeAt(i).toString(16).toUpperCase(); |
- if (i) |
- result += "/"; |
- result += "U+" + ("0000" + code).slice(-4); |
- } |
- return result; |
+function decode(charsetName, characterSequence) { |
+ return decodeText(charsetName, characterSequence).then(decodedText => { |
+ return decodedText.split('') |
+ .map(char => char.charCodeAt(0)) |
+ .map(code => 'U+' + ('0000' + code.toString(16).toUpperCase()).slice(-4)) |
+ .join('/'); |
+ }); |
} |
-function testDecode(charsetName, characterSequence, unicode) |
-{ |
- shouldBe("decode('" + charsetName + "', '" + characterSequence + "')", "'" + unicode + "'"); |
+function testDecode(charsetName, characterSequence, unicode) { |
+ promise_test(t => { |
+ return decode(charsetName, characterSequence).then(result => { |
+ assert_equals(result, unicode); |
+ }); |
+ }, `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]); |
+function batchTestDecode(inputData) { |
+ for (let i in inputData.encodings) { |
+ for (let j in inputData.encoded) { |
+ testDecode(inputData.encodings[i], |
+ inputData.encoded[j], |
+ inputData.unicode[j]); |
} |
+ } |
} |