<!doctype html>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script>
test(() => {
const textNode = new Text('chopped off and then some');
const range = new Range();
range.setStart(textNode, textNode.length);
textNode.deleteData(11, 0xfffffff7);
assert_equals(textNode.data, 'chopped off');
assert_equals(range.endOffset, 11);
}, 'Range#deleteData() with huge end offset');
test(() => {
const textNode = new Text('hello world');
const range = new Range();
range.setStart(textNode, textNode.length);
textNode.replaceData(6, 0xfffffffe, 'bob');
assert_equals(textNode.data, 'hello bob');
assert_equals(range.endOffset, 6);
}, 'Range#replaceData() with huge end offset');
test(() => {
const textNode = new Text('hello world');
const range = new Range();
range.setStart(textNode, textNode.length);
textNode.replaceData(6, -1, 'bob');
assert_equals(textNode.data, 'hello bob');
assert_equals(range.endOffset, 6);
}, 'Range#replaceData() with negative end offset(-1)');
test(() => {
const textNode = new Text('hello world');
const range = new Range();
range.setStart(textNode, textNode.length);
textNode.replaceData(6, -2, 'bob');
assert_equals(textNode.data, 'hello bob');
assert_equals(range.endOffset, 6);
}, 'Range#replaceData() with negative end offset(-2)');
</script>