OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <title>Encoding API: TextDecoder ignoreBOM option</title> | |
3 <script src="../../../resources/testharness.js"></script> | |
4 <script src="../../../resources/testharnessreport.js"></script> | |
5 <script> | |
6 | |
7 var cases = [ | |
8 {encoding: 'utf-8', bytes: [0xEF, 0xBB, 0xBF, 0x61, 0x62, 0x63]}, | |
9 {encoding: 'utf-16le', bytes: [0xFF, 0xFE, 0x61, 0x00, 0x62, 0x00, 0x63, 0x0
0]}, | |
10 {encoding: 'utf-16be', bytes: [0xFE, 0xFF, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6
3]} | |
11 ]; | |
12 | |
13 cases.forEach(function(testCase) { | |
14 test(function() { | |
15 var BOM = '\uFEFF'; | |
16 var decoder = new TextDecoder(testCase.encoding, {ignoreBOM: true}); | |
17 var bytes = new Uint8Array(testCase.bytes); | |
18 assert_equals( | |
19 decoder.decode(bytes), | |
20 BOM + 'abc', | |
21 testCase.encoding + ': BOM should be present in decoded string if ig
nored'); | |
22 | |
23 decoder = new TextDecoder(testCase.encoding, {ignoreBOM: false}); | |
24 assert_equals( | |
25 decoder.decode(bytes), | |
26 'abc', | |
27 testCase.encoding + ': BOM should be absent from decoded string if n
ot ignored'); | |
28 | |
29 decoder = new TextDecoder(testCase.encoding); | |
30 assert_equals( | |
31 decoder.decode(bytes), | |
32 'abc', | |
33 testCase.encoding + ': BOM should be absent from decoded string by d
efault'); | |
34 }, 'BOM is ignored if ignoreBOM option is specified: ' + testCase.encoding); | |
35 }); | |
36 | |
37 test(function() { | |
38 assert_true('ignoreBOM' in new TextDecoder(), 'The ignoreBOM attribute shoul
d exist on TextDecoder.'); | |
39 assert_equals(typeof new TextDecoder().ignoreBOM, 'boolean', 'The type of t
he ignoreBOM attribute should be boolean.'); | |
40 assert_false(new TextDecoder().ignoreBOM, 'The ignoreBOM attribute should de
fault to false.'); | |
41 assert_true(new TextDecoder('utf-8', {ignoreBOM: true}).ignoreBOM, 'The igno
reBOM attribute can be set using an option.'); | |
42 | |
43 }, 'The ignoreBOM attribute of TextDecoder'); | |
44 | |
45 </script> | |
OLD | NEW |