Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(38)

Unified Diff: third_party/WebKit/LayoutTests/fast/encoding/resources/char-decoding-utils.js

Issue 2390083002: Text Encoding: Convert fast/encoding tests to testharness.js (Closed)
Patch Set: Review feedback Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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]);
}
+ }
}

Powered by Google App Engine
This is Rietveld 408576698