<head>
<script>
    function $(id) { return document.getElementById(id); }
    
    function testIt()
    {
        description('Replace in heading by heading');
    
        var selection = window.getSelection();
        var range = document.createRange();
        range.selectNodeContents($('destination'));
        selection.addRange(range);
        document.execCommand('insertHTML', false, '<h2>source</h2>');
        shouldBeEqualToString('$("destination").textContent', 'source');
    
        if (window.testRunner)
            $('content').outerHTML = '';
    }
    </script>
</head>
<body>
<div id="content">
<p id="description"></p>
<h1 contenteditable="true" id="destination">destination</h1>
</div>
<div id="console"></div>
<script src="../../resources/js-test.js"></script>
<script>
    testIt();
</script>
</body>
