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

Side by Side Diff: third_party/WebKit/LayoutTests/shadow-dom/focus-shadowhost-display-none.html

Issue 2333623003: Convert remaining focus tests in shadow-dom to use testharness.js (Closed)
Patch Set: Created 4 years, 3 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 <script src="../resources/js-test.js"></script> 2 <script src='../resources/testharness.js'></script>
3 <script src='../resources/testharnessreport.js'></script>
3 <style> 4 <style>
4 div#host:focus { display: none; } 5 #host:focus { display: none; }
5 </style> 6 </style>
6 <div id="sandbox"></div> 7 <div id='sandbox'></div>
7 <div id="host"></div>
8 <script> 8 <script>
9 description('Check if shadow host with display:none CSS rule for :focus works. crbug.com/482830'); 9 'use strict';
10
11 // Check if shadow host with display:none CSS rule for :focus works. crbug.com/ 482830
10 12
11 var host; 13 var host;
12 var root; 14 var root;
13 var input; 15 var input;
14 16
15 function setupShadowDOM(delegatesFocus) { 17 function setupShadowDOM(delegatesFocus) {
16 sandbox.innerHTML = ''; 18 sandbox.innerHTML = '';
17 host = sandbox.appendChild(document.createElement('div')); 19 host = sandbox.appendChild(document.createElement('div'));
18 host.id = 'host'; 20 host.id = 'host';
19 21
20 root = host.attachShadow({ 'mode': 'open', 'delegatesFocus': delegatesFocus }); 22 root = host.attachShadow({mode: 'open', delegatesFocus: delegatesFocus});
21 input = document.createElement('input'); 23 input = document.createElement('input');
22 root.appendChild(input); 24 root.appendChild(input);
23 25
24 host.tabIndex = 0; 26 host.tabIndex = 0;
25 } 27 }
26 28
27 function testFocusShadowHost() { 29 promise_test(() => {
28 debug('when shadow host itself is focused, it should match display:none, los e focus then becomes display:block again.');
29 setupShadowDOM(false); 30 setupShadowDOM(false);
30 return new Promise( 31 return new Promise(
31 function(resolve) { 32 function(resolve) {
32 host.focus(); 33 host.focus();
33 shouldBeEqualToString('window.getComputedStyle(host).display', 'none '); 34 assert_equals(window.getComputedStyle(host).display, 'none');
34 shouldBe('document.activeElement', 'host'); 35 assert_equals(document.activeElement, host);
35 shouldBeNull('root.activeElement'); 36 assert_equals(root.activeElement, null);
36 37
37 function onBlur() { 38 function onBlur() {
38 shouldBeEqualToString('window.getComputedStyle(host).display', ' block'); 39 assert_equals(window.getComputedStyle(host).display, 'block');
39 shouldBe('document.activeElement', 'document.body'); 40 assert_equals(document.activeElement, document.body);
40 shouldBeNull('root.activeElement'); 41 assert_equals(root.activeElement, null);
41 host.removeEventListener('blur', onBlur); 42 host.removeEventListener('blur', onBlur);
42 resolve(); 43 resolve();
43 } 44 }
44 host.addEventListener('blur', onBlur); 45 host.addEventListener('blur', onBlur);
45 }); 46 });
46 } 47 }, 'when shadow host itself is focused, it should match display:none, lose focus then becomes display:block again.');
47 48
48 function testFocusInsideShadowRoot() { 49 promise_test(() => {
49 debug('when shadow host with delegatesFocus=true has focused element inside the shadow, it should also match display:none, then lose focus and become displa y:block again.');
50 setupShadowDOM(true); 50 setupShadowDOM(true);
51 return new Promise( 51 return new Promise(
52 function(resolve) { 52 function(resolve) {
53 input.focus(); 53 input.focus();
54 shouldBeEqualToString('window.getComputedStyle(host).display', 'none '); 54 assert_equals(window.getComputedStyle(host).display, 'none');
55 shouldBe('document.activeElement', 'host'); 55 assert_equals(document.activeElement, host);
56 shouldBe('root.activeElement', 'input'); 56 assert_equals(root.activeElement, input);
57 57
58 function onBlur() { 58 function onBlur() {
59 shouldBeEqualToString('window.getComputedStyle(host).display', ' block'); 59 assert_equals(window.getComputedStyle(host).display, 'block');
60 shouldBe('document.activeElement', 'document.body'); 60 assert_equals(document.activeElement, document.body);
61 shouldBeNull('root.activeElement'); 61 assert_equals(root.activeElement, null);
62 input.removeEventListener('blur', onBlur); 62 input.removeEventListener('blur', onBlur);
63 resolve(); 63 resolve();
64 } 64 }
65 input.addEventListener('blur', onBlur); 65 input.addEventListener('blur', onBlur);
66 }); 66 });
67 } 67 }, 'when shadow host with delegatesFocus=true has focused element inside the sha dow, it should also match display:none, then lose focus and become display:block again.');
68
69 if (window.testRunner) {
70 testFocusShadowHost().then(testFocusInsideShadowRoot).then(function(){ testR unner.notifyDone(); });
71 testRunner.waitUntilDone();
72 }
73 </script> 68 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698