<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>
