tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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, "&lt;/title&gt;&lt;div&gt;");
     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, "&lt;/textarea&gt;&lt;div&gt;");
     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>