| <!DOCTYPE html> | |
| <title>Encoding API: invalid label</title> | |
| <meta name="timeout" content="long"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="resources/encodings.js"></script> | |
| <script> | |
| var tests = ["invalid-invalidLabel"]; | |
| setup(function() { | |
| encodings_table.forEach(function(section) { | |
| section.encodings.filter(function(encoding) { | |
| return encoding.name !== 'replacement'; | |
| }).forEach(function(encoding) { | |
| encoding.labels.forEach(function(label) { | |
| ["\u0000", "\u000b", "\u00a0", "\u2028", "\u2029"].forEach(function(ws) { | |
| tests.push(ws + label); | |
| tests.push(label + ws); | |
| tests.push(ws + label + ws); | |
| }); | |
| }); | |
| }); | |
| }); | |
| }); | |
| tests.forEach(function(input) { | |
| test(function() { | |
| assert_throws(new RangeError(), function() { new TextEncoder(input); }); | |
| }, 'Invalid label ' + format_value(input) + ' should be rejected by TextEncoder.'); | |
| test(function() { | |
| assert_throws(new RangeError(), function() { new TextDecoder(input); }); | |
| }, 'Invalid label ' + format_value(input) + ' should be rejected by TextDecoder.'); | |
| }); | |
| </script> |