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

Side by Side Diff: LayoutTests/fast/encoding/api/basics.html

Issue 240283013: Convert Encoding API tests to W3C testharness.js (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Move UTF-16 surrogate tests to separate file Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src="../../../resources/js-test.js"></script> 2 <title>Encoding API: Basics</title>
3 <script src="../../../resources/testharness.js"></script>
4 <script src="../../../resources/testharnessreport.js"></script>
3 <script> 5 <script>
4 6
5 description("This tests the basics of the Encoding API."); 7 test(function() {
6 8
7 shouldBeTrue("'TextEncoder' in window"); 9 assert_true('TextEncoder' in window);
8 shouldBeTrue("'TextDecoder' in window"); 10 assert_true('TextDecoder' in window);
9 11
10 shouldBeTrue("'encoding' in new TextEncoder"); 12 assert_true('encoding' in new TextEncoder);
11 shouldBeTrue("'encoding' in new TextDecoder"); 13 assert_true('encoding' in new TextDecoder);
14 assert_equals(typeof (new TextEncoder).encoding, 'string');
15 assert_equals(typeof (new TextDecoder).encoding, 'string');
12 16
13 shouldBeEqualToString("typeof (new TextEncoder).encoding", "string"); 17 assert_true('encode' in new TextEncoder);
14 shouldBeEqualToString("typeof (new TextDecoder).encoding", "string"); 18 assert_true('decode' in new TextDecoder);
15 19
16 shouldBeTrue("'encode' in new TextEncoder"); 20 assert_equals(typeof (new TextEncoder).encode, 'function');
17 shouldBeTrue("'decode' in new TextDecoder"); 21 assert_equals(typeof (new TextDecoder).decode, 'function');
18 22
19 shouldBeEqualToString("typeof (new TextEncoder).encode", "function"); 23 assert_equals((new TextEncoder).encoding, 'utf-8', 'default encoding is utf- 8');
20 shouldBeEqualToString("typeof (new TextDecoder).decode", "function"); 24 assert_equals((new TextDecoder).encoding, 'utf-8', 'default encoding is utf- 8');
21 25
26 function testEncodeDecodeSample(encoding, string, bytes) {
27 var encoded = new TextEncoder(encoding).encode(string);
28 assert_array_equals([].slice.call(encoded), bytes);
29 assert_equals(new TextDecoder(encoding).decode(new Uint8Array(bytes)), s tring);
30 }
22 31
23 shouldBeEqualToString("(new TextEncoder).encoding", "utf-8"); 32 // z (ASCII U+007A), cent (Latin-1 U+00A2), CJK water (BMP U+6C34),
24 shouldBeEqualToString("(new TextDecoder).encoding", "utf-8"); 33 // G-Clef (non-BMP U+1D11E), PUA (BMP U+F8FF), PUA (non-BMP U+10FFFD)
34 // byte-swapped BOM (non-character U+FFFE)
35 var sample = 'z\xA2\u6C34\uD834\uDD1E\uF8FF\uDBFF\uDFFD\uFFFE';
25 36
26 function toArray(arrayLike) { 37 testEncodeDecodeSample(
27 return [].map.call(arrayLike, function(x) { return x; }); 38 'utf-8',
28 } 39 sample,
29 40 [0x7A, 0xC2, 0xA2, 0xE6, 0xB0, 0xB4, 0xF0, 0x9D, 0x84, 0x9E, 0xEF, 0xA3, 0xBF, 0xF4, 0x8F, 0xBF, 0xBD, 0xEF, 0xBF, 0xBE]
30 function testEncodeDecodeSample(encoding, string, bytes) { 41 );
31 debug(""); 42 testEncodeDecodeSample(
32 debug("test encode/decode sample - " + encoding); 43 'utf-16le',
33 44 sample,
34 evalAndLog("encoded = new TextEncoder('" + encoding + "').encode(" + JSON.st ringify(string) + ")"); 45 [0x7A, 0x00, 0xA2, 0x00, 0x34, 0x6C, 0x34, 0xD8, 0x1E, 0xDD, 0xFF, 0xF8, 0xFF, 0xDB, 0xFD, 0xDF, 0xFE, 0xFF]
35 shouldBeEqualToString("JSON.stringify(toArray(encoded))", JSON.stringify(byt es)); 46 );
36 shouldBeEqualToString("new TextDecoder('" + encoding + "').decode(new Uint8A rray(" + JSON.stringify(bytes) + "))", string); 47 testEncodeDecodeSample(
37 } 48 'utf-16be',
38 49 sample,
39 testEncodeDecodeSample( 50 [0x00, 0x7A, 0x00, 0xA2, 0x6C, 0x34, 0xD8, 0x34, 0xDD, 0x1E, 0xF8, 0xFF, 0xDB, 0xFF, 0xDF, 0xFD, 0xFF, 0xFE]
40 "utf-8", 51 );
41 "z\xA2\u6C34\uD834\uDD1E\uDBFF\uDFFD", // z, cent, CJK water, G-Clef, Privat e-use character 52 testEncodeDecodeSample(
42 [0x7A, 0xC2, 0xA2, 0xE6, 0xB0, 0xB4, 0xF0, 0x9D, 0x84, 0x9E, 0xF4, 0x8F, 0xB F, 0xBD] 53 'utf-16',
43 ); 54 sample,
44 testEncodeDecodeSample( 55 [0x7A, 0x00, 0xA2, 0x00, 0x34, 0x6C, 0x34, 0xD8, 0x1E, 0xDD, 0xFF, 0xF8, 0xFF, 0xDB, 0xFD, 0xDF, 0xFE, 0xFF]
45 "utf-16le", 56 );
46 "z\xA2\u6C34\uD834\uDD1E\uDBFF\uDFFD", // z, cent, CJK water, G-Clef, Privat e-use character 57 }, 'Encoding API basics');
47 [0x7A, 0x00, 0xA2, 0x00, 0x34, 0x6C, 0x34, 0xD8, 0x1E, 0xDD, 0xFF, 0xDB, 0xF D, 0xDF]
48 );
49 testEncodeDecodeSample(
50 "utf-16be",
51 "z\xA2\u6C34\uD834\uDD1E\uDBFF\uDFFD", // z, cent, CJK water, G-Clef, Privat e-use character
52 [0x00, 0x7A, 0x00, 0xA2, 0x6C, 0x34, 0xD8, 0x34, 0xDD, 0x1E, 0xDB, 0xFF, 0xD F, 0xFD]
53 );
54 testEncodeDecodeSample(
55 "utf-16",
56 "z\xA2\u6C34\uD834\uDD1E\uDBFF\uDFFD", // z, cent, CJK water, G-Clef, Privat e-use character
57 [0x7A, 0x00, 0xA2, 0x00, 0x34, 0x6C, 0x34, 0xD8, 0x1E, 0xDD, 0xFF, 0xDB, 0xF D, 0xDF]
58 );
59 58
60 </script> 59 </script>
OLDNEW
« no previous file with comments | « LayoutTests/fast/encoding/api/ascii-supersets-expected.txt ('k') | LayoutTests/fast/encoding/api/basics-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698