summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/syntax/parsing/zero.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/syntax/parsing/zero.html')
-rw-r--r--testing/web-platform/tests/html/syntax/parsing/zero.html93
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, "&auml;");
+ }, "U+0000 should vanish after ampersand");
+
+ test(function() {
+ var div = document.getElementsByTagName("div")[0];
+ div.innerHTML = "&a\u0000uml;";
+ assert_equals(div.firstChild.data, "&auml;");
+ }, "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, "&auml;");
+ }, "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, "&auml;");
+ }, "U+0000 should vanish after ampersand and three letters of entity prefix");
+
+ test(function() {
+ var div = document.getElementsByTagName("div")[0];
+ div.innerHTML = "&auml\u0000;";
+ assert_equals(div.firstChild.data, "\u00E4;");
+ }, "U+0000 should vanish after semicolonless entity");
+
+ test(function() {
+ var div = document.getElementsByTagName("div")[0];
+ div.innerHTML = "&notin\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='&auml\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='&notin\u0000;'>";
+ assert_equals(div.firstChild.title, "&notin\uFFFD;");
+ }, "U+0000 should get replaced with U+FFFD before required semicolon");
+
+
+
+</script>