| <!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> |