<!doctype html>
<meta charset=utf-8>
<meta name="timeout" content="long">
<link rel=stylesheet href=../include/reset.css>
<title>inserthorizontalrule - HTML editing conformance tests</title>

<p id=timing></p>

<div id=log></div>

<div id=test-container></div>

<script src=../include/implementation.js></script>
<script>var testsJsLibraryOnly = true</script>
<script src=../include/tests.js></script>
<script src=../data/inserthorizontalrule.js></script>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/subset-tests.js"></script>
<script>
"use strict";

(function() {
    var startTime = Date.now();

    // Make document.body.innerHTML more tidy by removing unnecessary things.
    [].forEach.call(document.querySelectorAll("script"), function(node) {
        node.parentNode.removeChild(node);
    });

    if (true) {
        // Silly hack: the CSS styling flag should be true, not false, to match
        // expected results.  This is because every group of tests except the
        // last (multitest) sets styleWithCSS automatically, and it sets it
        // first to false and then to true.  Thus it's left at true at the end
        // of each group of tests, so in gentest.html it will be true when
        // starting each group of tests other than the first.  But browsers are
        // supposed to default it to false when the page loads, so flip it.
        try { document.execCommand("styleWithCSS", false, "true") } catch(e) {}
    }

    browserTests.forEach(runConformanceTest);

    document.getElementById("test-container").parentNode
        .removeChild(document.getElementById("test-container"));

    var elapsed = Math.round(Date.now() - startTime)/1000;
    document.getElementById("timing").textContent =
        "Time elapsed: " + Math.floor(elapsed/60) + ":"
        + ((elapsed % 60) < 10 ? "0" : "")
        + (elapsed % 60).toFixed(3) + " min.";
})();
</script>
