chromium/third_party/blink/web_tests/fast/dynamic/insertAdjacentHTML.html

<body>
   <pre id="error-log"></pre>
   <span id="container" style="color: green">
   </span>
   <span id="status" style="color: red">
      FAILURE
   </span>
</body>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

   // verify all standard cases
   document.getElementById("container").insertAdjacentHTML("beforeBegin", "<span id='1''> 1 (black)</span>");
   document.getElementById("container").insertAdjacentHTML("afterBegin", "<span id='2''> 2 (green)</span>");
   document.getElementById("container").insertAdjacentHTML("beforeEnd", "<span id='3''> 3 (green)</span>");
   document.getElementById("container").insertAdjacentHTML("afterEnd", "<span id='4''> 4 (black)</span>");

   function assertThrows(func) {
      var testPassed = false;
      try {
         func();
         document.getElementById("error-log").textContent += "Expected exception missing.\n";
      } catch (e) {
         document.getElementById("error-log").textContent += "Caught expected exception: " + e + "\n";
         testPassed = true;
      }
      return testPassed;
   }

   // check that exceptions are thrown as required
   var passes = true;
   passes = assertThrows(function() {
      // should throw SyntaxError
      document.getElementById("container").insertAdjacentHTML("blah", "<span>html</span>");
   }) && passes;
   passes = assertThrows(function() {
      // Should throw NoModificationAllowedError
      document.createElement('div').insertAdjacentHTML("afterEnd", "<span>html</span>");
   }) && passes;
   passes = assertThrows(function() {
      // Should throw TypeError
      document.getElementById("container").insertAdjacentHTML();
   }) && passes;
   passes = assertThrows(function() {
      // Should throw TypeError
      document.getElementById("container").insertAdjacentHTML("beforeBegin");
   }) && passes;

   if (passes) {
      document.getElementById("status").style.color = "green";
      document.getElementById("status").innerHTML = "<br><br>PASS";
   }
</script>