Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Side by Side Diff: third_party/WebKit/LayoutTests/fast/dom/inert/inert-node-is-uneditable.html

Issue 2088453002: Implement the inert attribute (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: esprehn comments and fix layout tests to use testharness.js Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <script src="../../../resources/js-test.js"></script> 4 <script src="../../../resources/testharness.js"></script>
5 <script src="../../../resources/testharnessreport.js"></script>
5 </head> 6 </head>
6 <body> 7 <body>
7 <span id="not-editable" contenteditable>I'm not editable.</span> 8 <span inert id="not-editable" contenteditable>I'm not editable.</span>
8 <dialog> 9 <span id="editable" contenteditable>I'm editable.</span>
9 <span id="editable" contenteditable>I'm editable.</span>
10 </dialog>
11 <script> 10 <script>
12 function clickOn(element) 11 function clickOn(element)
13 { 12 {
14 if (!window.eventSender) 13 if (!window.eventSender)
15 return; 14 return;
16 15
17 var absoluteTop = 0; 16 var absoluteTop = 0;
18 var absoluteLeft = 0; 17 var absoluteLeft = 0;
19 for (var parentNode = element; parentNode; parentNode = parentNode.offsetPar ent) { 18 for (var parentNode = element; parentNode; parentNode = parentNode.offsetPar ent) {
20 absoluteLeft += parentNode.offsetLeft; 19 absoluteLeft += parentNode.offsetLeft;
21 absoluteTop += parentNode.offsetTop; 20 absoluteTop += parentNode.offsetTop;
22 } 21 }
23 22
24 var x = absoluteLeft + element.offsetWidth / 2; 23 var x = absoluteLeft + element.offsetWidth / 2;
25 var y = absoluteTop + element.offsetHeight / 2; 24 var y = absoluteTop + element.offsetHeight / 2;
26 eventSender.mouseMoveTo(x, y); 25 eventSender.mouseMoveTo(x, y);
27 eventSender.mouseDown(); 26 eventSender.mouseDown();
28 eventSender.mouseUp(); 27 eventSender.mouseUp();
29 eventSender.mouseMoveTo(0, 0); 28 eventSender.mouseMoveTo(0, 0);
30 } 29 }
31 30
32 function test() 31 notEditable = document.querySelector('#not-editable');
33 { 32 editable = document.querySelector('#editable');
34 description('Test that inert nodes cannot be edited. The test passes if the only text you can edit is in the dialog.');
35 33
36 dialog = document.querySelector('dialog'); 34 test(function() {
37 dialog.showModal();
38 notEditable = document.querySelector('#not-editable');
39 editable = document.querySelector('#editable');
40
41 if (!window.eventSender)
42 return;
43 clickOn(notEditable); 35 clickOn(notEditable);
44 oldValue = notEditable.textContent; 36 oldValue = notEditable.textContent;
45 eventSender.keyDown('a'); 37 eventSender.keyDown('a');
46 shouldBe('notEditable.textContent', 'oldValue'); 38 assert_equals(notEditable.textContent, oldValue);
39 }, "Can't edit inert contenteditable");
47 40
41 test(function() {
48 clickOn(editable); 42 clickOn(editable);
49 oldValue = editable.textContent; 43 oldValue = editable.textContent;
50 eventSender.keyDown('a'); 44 eventSender.keyDown('a');
51 shouldNotBe('editable.textContent', 'oldValue'); 45 assert_not_equals(editable.textContent, oldValue);
46 }, "Can edit non-inert contenteditable");
52 47
53 notEditable.remove();
54 editable.remove();
55 }
56
57 test();
58 </script> 48 </script>
59 </body> 49 </body>
60 </html> 50 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698