blob: daeb8590075c722ba7e18b8b40dfa214f2484450 [file] [log] [blame]
<!doctype HTML>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../assert_selection.js"></script>
<div id="log"></div>
<script>
test(function(){
assert_selection(
'<div contenteditable="true" id="div" style="-webkit-user-select:all">foo</div>',
selection => selection.collapse(selection.document.getElementById('div').firstChild, 1),
'<div contenteditable="true" id="div" style="-webkit-user-select:all">f|oo</div>');
assert_selection(
'<div contenteditable="true" id="div" style="-webkit-user-select:all">f|oo</div>',
selection => selection.extend(selection.document.getElementById('div').firstChild, 2),
'<div contenteditable="true" id="div" style="-webkit-user-select:all">f^o|o</div>');
assert_selection(
'<div contenteditable="true" id="div" style="-webkit-user-select:all">foo</div>',
selection => {
var div = selection.document.getElementById('div');
selection.setBaseAndExtent(div.firstChild, 1, div.firstChild, 2);
},
'<div contenteditable="true" id="div" style="-webkit-user-select:all">f^o|o</div>');
assert_selection(
'<div contenteditable="true" id="div" style="-webkit-user-select:all">foo</div>',
selection => {
var range = selection.document.createRange();
var div = selection.document.getElementById('div');
range.setStart(div, 0);
range.setEnd(div, 1);
selection.addRange(range);
},
'<div contenteditable="true" id="div" style="-webkit-user-select:all">^foo|</div>');
assert_selection(
'<div contenteditable="true" id="div" style="-webkit-user-select:all">|foo</div>',
selection => selection.modify('move', 'forward', 'character'),
'<div contenteditable="true" id="div" style="-webkit-user-select:all">f|oo</div>');
assert_selection(
'<div contenteditable="true" id="div" style="-webkit-user-select:all">f|oo</div>',
selection => selection.modify('move', 'backward', 'character'),
'<div contenteditable="true" id="div" style="-webkit-user-select:all">|foo</div>');
assert_selection(
'<div contenteditable="true" id="div" style="-webkit-user-select:all">|foo</div>',
selection => selection.modify('extend', 'forward', 'character'),
'<div contenteditable="true" id="div" style="-webkit-user-select:all">^f|oo</div>');
assert_selection(
'<div contenteditable="true" id="div" style="-webkit-user-select:all">foo|</div>',
selection => selection.modify('extend', 'backward', 'character'),
'<div contenteditable="true" id="div" style="-webkit-user-select:all">fo|o^</div>');
},
'Selection API can edit in -webkit-user-select:all contenteditable element');
test(function(){
assert_selection(
'<div contenteditable="true" id="div" style="-webkit-user-select:all">|foo</div>',
selection => selection.document.execCommand('insertText', false, 'bar'),
'<div contenteditable="true" id="div" style="-webkit-user-select:all">bar|foo</div>');
},
'Execcommand inserttext in -webkit-user-select:all contenteditable element');
test(function(){
assert_selection(
'<div contenteditable="true" id="div" style="-webkit-user-select:all">foo</div>',
selection => assert_true(selection.document.getElementById('div').isContentEditable),
'<div contenteditable="true" id="div" style="-webkit-user-select:all">foo</div>');
},
'-webkit-user-select:all contenteditable element is HTMLElement.isContentEditable == true');
</script>