Index: third_party/WebKit/LayoutTests/editing/selection/user-select/user-select-all-contenteditable.html |
diff --git a/third_party/WebKit/LayoutTests/editing/selection/user-select/user-select-all-contenteditable.html b/third_party/WebKit/LayoutTests/editing/selection/user-select/user-select-all-contenteditable.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8a8862d4b334c1f9d26e93abef07cc26e9e6ef00 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/editing/selection/user-select/user-select-all-contenteditable.html |
@@ -0,0 +1,67 @@ |
+<!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">^foo|</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">|foo^</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> |