<script>
if (window.layoutTestController)
     layoutTestController.dumpEditingCallbacks();
</script>
<p>This test makes sure Insert{Un}OrderedList properly adds an id to the inserted list when requested. The tests inserts a new list using the command, then removes it programmatically from JS using the id.</p>
<br>
<div id="test" contenteditable="true">Foo</div>
<br>
<script>
var s = window.getSelection();
var div = document.getElementById("test");
var id = "foo";
s.setPosition(div, 0);
document.execCommand("InsertOrderedList", false, id);
div.blur();
var list = document.getElementById(id);
list.parentNode.removeChild(list);
</script>