chromium/third_party/blink/web_tests/fast/dom/set-outer-html.html

<html>
<head>
    <style>
        pre { margin: 0; }
    </style>
    <script src="../../resources/dump-as-markup.js"></script>
    <script>
    Markup.noAutoDump();
    
    function assertMarkup(name, element, expected)
    {
        var markup = Markup.get(element);
        if (markup == expected)
            log('PASS: ' + name);
        else
            log('FAIL: ' + name  + '\nWas:\n' + markup + '\nExpected:\n' + expected);
    }

    function log(text)
    {
        var el = document.createElement('pre');
        el.appendChild(document.createTextNode(text));
        document.getElementById('result').appendChild(el);
    }

    function runTest()
    {
        if (window.testRunner)
            testRunner.dumpAsText()

        var items = document.getElementsByTagName('li');
        document.getElementById('testReplace').outerHTML = '<span>Replaced</span> node';
        assertMarkup('replace', items[0], '| <span>\n|   "Replaced"\n| " node using outerHTML."');

        document.getElementById('testRemove').outerHTML = '';
        assertMarkup('remove', items[1], '| " removing node using outerHTML."');

        document.getElementById('testMerge').outerHTML = 'merging';
        assertMarkup('merge text nodes', items[2], '| "Testing merging text nodes."');

        document.getElementById('testAddBr').outerHTML = '<br>';
        assertMarkup('line break', items[3], '| "Testing adding "\n| <br>\n| " using outerHTML."');
    }
    </script>
</head>
<body onload="runTest()">
    <ul>
        <li><span id="testReplace">Testing replacing node</span> using outerHTML.</li>
        <li><span id="testRemove">Testing</span> removing node using outerHTML.</li>
        <li>Testing <span id="testMerge">merging</span> text nodes.</li>
        <li>Testing adding <span id="testAddBr">line break</span> using outerHTML.</li>
    </ul>
    <div id="result"></div>
</body>
</html>