| Index: LayoutTests/fast/encoding/api/textdecoder-labels.html
|
| diff --git a/LayoutTests/fast/encoding/api/textdecoder-labels.html b/LayoutTests/fast/encoding/api/textdecoder-labels.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1b38ce33fb6f7fa2dfd879c4731f8fbc8506473a
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/encoding/api/textdecoder-labels.html
|
| @@ -0,0 +1,51 @@
|
| +<!DOCTYPE html>
|
| +<title>Encoding API: TextDecoder labels and whitespace</title>
|
| +<script src="../../../resources/testharness.js"></script>
|
| +<script src="../../../resources/testharnessreport.js"></script>
|
| +<script src="resources/shared.js"></script>
|
| +<script>
|
| +var tests = [], failure_tests = [];
|
| +setup(function() {
|
| + var whitespace = [' ', '\t', '\n', '\f', '\r'];
|
| + var bad_whitespace = ['\u000B', '\u00A0', '\u2028', '\u2029'];
|
| + encodings_table.forEach(function(section) {
|
| + section.encodings.filter(function(encoding) {
|
| + return encoding.name !== 'replacement';
|
| + }).forEach(function(encoding) {
|
| + var name = encoding.name;
|
| + encoding.labels.forEach(function(label) {
|
| + tests.push([label, encoding.name]);
|
| + whitespace.forEach(function(ws) {
|
| + tests.push([ws + label, encoding.name]);
|
| + tests.push([label + ws, encoding.name]);
|
| + tests.push([ws + label + ws, encoding.name]);
|
| + });
|
| + bad_whitespace.forEach(function(ws) {
|
| + failure_tests.push([ws + label, encoding.name]);
|
| + failure_tests.push([label + ws, encoding.name]);
|
| + failure_tests.push([ws + label + ws, encoding.name]);
|
| + });
|
| + });
|
| + });
|
| + });
|
| +});
|
| +
|
| +tests.forEach(function(t) {
|
| + var input = t[0], output = t[1];
|
| + test(function() {
|
| + assert_equals(new TextDecoder(input).encoding, output,
|
| + 'label for encoding should match');
|
| + assert_equals(new TextDecoder(input.toUpperCase()).encoding, output,
|
| + 'label matching should be case-insensitive');
|
| + }, format_value(input) + " => " + format_value(output));
|
| +});
|
| +
|
| +failure_tests.forEach(function(t) {
|
| + var input = t[0], output = t[1];
|
| + test(function() {
|
| + assert_throws({name:'RangeError'},
|
| + function() { new TextDecoder(input); },
|
| + 'non-ASCII whitespace should not be stripped');
|
| + }, format_value(input) + " => " + format_value(output));
|
| +});
|
| +</script>
|
|
|