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