tokenizer-modes-001.html (2968B)
1 <!DOCTYPE html> 2 <html lang="en" > 3 <head> 4 <title>Tokenizer states</title> 5 <link rel='author' title='Henri Sivonen' href='mailto:hsivonen@hsivonen.fi'> 6 <link rel='help' href='https://html.spec.whatwg.org/#html-fragment-parsing-algorithm'> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 </head> 10 <body> 11 <script> 12 test(function() { 13 var e = document.createElement("title"); 14 e.innerHTML = "</title><div>"; 15 assert_equals(e.getElementsByTagName("div").length, 0); 16 assert_equals(e.innerHTML, "</title><div>"); 17 }, "</title> should not break out of title."); 18 19 test(function() { 20 var e = document.createElement("textarea"); 21 e.innerHTML = "</textarea><div>"; 22 assert_equals(e.getElementsByTagName("div").length, 0); 23 assert_equals(e.innerHTML, "</textarea><div>"); 24 }, "</textarea> should not break out of textarea."); 25 26 test(function() { 27 var e = document.createElement("style"); 28 e.innerHTML = "</style><div>"; 29 assert_equals(e.getElementsByTagName("div").length, 0); 30 assert_equals(e.innerHTML, "</style><div>"); 31 }, "</style> should not break out of style."); 32 33 test(function() { 34 var e = document.createElement("xmp"); 35 e.innerHTML = "</xmp><div>"; 36 assert_equals(e.getElementsByTagName("div").length, 0); 37 assert_equals(e.innerHTML, "</xmp><div>"); 38 }, "</xmp> should not break out of xmp."); 39 40 test(function() { 41 var e = document.createElement("iframe"); 42 e.innerHTML = "</iframe><div>"; 43 assert_equals(e.getElementsByTagName("div").length, 0); 44 assert_equals(e.innerHTML, "</iframe><div>"); 45 }, "</iframe> should not break out of iframe."); 46 47 test(function() { 48 var e = document.createElement("noembed"); 49 e.innerHTML = "</noembed><div>"; 50 assert_equals(e.getElementsByTagName("div").length, 0); 51 assert_equals(e.innerHTML, "</noembed><div>"); 52 }, "</noembed> should not break out of noembed."); 53 54 test(function() { 55 var e = document.createElement("noframes"); 56 e.innerHTML = "</noframes><div>"; 57 assert_equals(e.getElementsByTagName("div").length, 0); 58 assert_equals(e.innerHTML, "</noframes><div>"); 59 }, "</noframes> should not break out of noframes."); 60 61 test(function() { 62 var e = document.createElement("script"); 63 e.innerHTML = "<\/script><div>"; 64 assert_equals(e.getElementsByTagName("div").length, 0); 65 assert_equals(e.innerHTML, "<\/script><div>"); 66 }, "<\/script> should not break out of script."); 67 68 69 test(function() { 70 var e = document.createElement("noscript"); 71 e.innerHTML = "</noscript><div>"; 72 assert_equals(e.getElementsByTagName("div").length, 0); 73 assert_equals(e.innerHTML, "</noscript><div>"); 74 }, "</noscript> should not break out of noscript."); 75 76 test(function() { 77 var e = document.createElement("plaintext"); 78 e.innerHTML = "</plaintext><div>"; 79 assert_equals(e.getElementsByTagName("div").length, 0); 80 assert_equals(e.innerHTML, "</plaintext><div>"); 81 }, "</plaintext> should not break out of plaintext."); 82 83 </script> 84 </body> 85 </html>