diff options
Diffstat (limited to 'testing/web-platform/tests/html/syntax/parsing/zero.html')
-rw-r--r-- | testing/web-platform/tests/html/syntax/parsing/zero.html | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/syntax/parsing/zero.html b/testing/web-platform/tests/html/syntax/parsing/zero.html new file mode 100644 index 0000000000..9ff793ae7c --- /dev/null +++ b/testing/web-platform/tests/html/syntax/parsing/zero.html @@ -0,0 +1,93 @@ +<!doctype html> +<meta charset=utf-8> +<title></title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<body> +<div></div> +<script> + test(function() { + var div = document.getElementsByTagName("div")[0]; + div.innerHTML = "<!-\u0000>"; + assert_equals(div.firstChild.data, "-\uFFFD"); + }, "U+0000 should get replaced with U+FFFD after markup declaration hyphen"); + + + + test(function() { + var div = document.getElementsByTagName("div")[0]; + div.innerHTML = "&\u0000auml;"; + assert_equals(div.firstChild.data, "ä"); + }, "U+0000 should vanish after ampersand"); + + test(function() { + var div = document.getElementsByTagName("div")[0]; + div.innerHTML = "&a\u0000uml;"; + assert_equals(div.firstChild.data, "ä"); + }, "U+0000 should vanish after ampersand and one letter of entity prefix"); + + test(function() { + var div = document.getElementsByTagName("div")[0]; + div.innerHTML = "&au\u0000ml;"; + assert_equals(div.firstChild.data, "ä"); + }, "U+0000 should vanish after ampersand and two letters of entity prefix"); + + test(function() { + var div = document.getElementsByTagName("div")[0]; + div.innerHTML = "&aum\u0000l;"; + assert_equals(div.firstChild.data, "ä"); + }, "U+0000 should vanish after ampersand and three letters of entity prefix"); + + test(function() { + var div = document.getElementsByTagName("div")[0]; + div.innerHTML = "ä\u0000;"; + assert_equals(div.firstChild.data, "\u00E4;"); + }, "U+0000 should vanish after semicolonless entity"); + + test(function() { + var div = document.getElementsByTagName("div")[0]; + div.innerHTML = "¬in\u0000;"; + assert_equals(div.firstChild.data, "\u00ACin;"); + }, "U+0000 should vanish before required semicolon"); + + + + test(function() { + var div = document.getElementsByTagName("div")[0]; + div.innerHTML = "<span title='&\u0000auml;'>"; + assert_equals(div.firstChild.title, "&\uFFFDauml;"); + }, "U+0000 should get replaced with U+FFFD after ampersand"); + + test(function() { + var div = document.getElementsByTagName("div")[0]; + div.innerHTML = "<span title='&a\u0000uml;'>"; + assert_equals(div.firstChild.title, "&a\uFFFDuml;"); + }, "U+0000 should get replaced with U+FFFD after ampersand and one letter of entity prefix"); + + test(function() { + var div = document.getElementsByTagName("div")[0]; + div.innerHTML = "<span title='&au\u0000ml;'>"; + assert_equals(div.firstChild.title, "&au\uFFFDml;"); + }, "U+0000 should get replaced with U+FFFD after ampersand and two letters of entity prefix"); + + test(function() { + var div = document.getElementsByTagName("div")[0]; + div.innerHTML = "<span title='&aum\u0000l;'>"; + assert_equals(div.firstChild.title, "&aum\uFFFDl;"); + }, "U+0000 should get replaced with U+FFFD after ampersand and three letters of entity prefix"); + + test(function() { + var div = document.getElementsByTagName("div")[0]; + div.innerHTML = "<span title='ä\u0000;'>"; + assert_equals(div.firstChild.title, "\u00E4\uFFFD;"); + }, "U+0000 should get replaced with U+FFFD after semicolonless entity"); + + test(function() { + var div = document.getElementsByTagName("div")[0]; + div.innerHTML = "<span title='¬in\u0000;'>"; + assert_equals(div.firstChild.title, "¬in\uFFFD;"); + }, "U+0000 should get replaced with U+FFFD before required semicolon"); + + + +</script> |