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

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

Issue 1774113002: Move Shadow DOM V1 tests from fast/dom/shadow to shadow-dom (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 9 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
(Empty)
1 <!DOCTYPE html>
2 <script src="../../../resources/js-test.js"></script>
3 <style>
4 div#host:focus { display: none; }
5 </style>
6 <div id="sandbox"></div>
7 <div id="host"></div>
8 <script>
9 description('Check if shadow host with display:none CSS rule for :focus works. crbug.com/482830');
10
11 var host;
12 var root;
13 var input;
14
15 function setupShadowDOM(delegatesFocus) {
16 sandbox.innerHTML = '';
17 host = sandbox.appendChild(document.createElement('div'));
18 host.id = 'host';
19
20 root = host.attachShadow({ 'mode': 'open', 'delegatesFocus': delegatesFocus });
21 input = document.createElement('input');
22 root.appendChild(input);
23
24 host.tabIndex = 0;
25 }
26
27 function testFocusShadowHost() {
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 return new Promise(
31 function(resolve) {
32 host.focus();
33 shouldBeEqualToString('window.getComputedStyle(host).display', 'none ');
34 shouldBe('document.activeElement', 'host');
35 shouldBeNull('root.activeElement');
36
37 function onBlur() {
38 shouldBeEqualToString('window.getComputedStyle(host).display', ' block');
39 shouldBe('document.activeElement', 'document.body');
40 shouldBeNull('root.activeElement');
41 host.removeEventListener('blur', onBlur);
42 resolve();
43 }
44 host.addEventListener('blur', onBlur);
45 });
46 }
47
48 function testFocusInsideShadowRoot() {
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);
51 return new Promise(
52 function(resolve) {
53 input.focus();
54 shouldBeEqualToString('window.getComputedStyle(host).display', 'none ');
55 shouldBe('document.activeElement', 'host');
56 shouldBe('root.activeElement', 'input');
57
58 function onBlur() {
59 shouldBeEqualToString('window.getComputedStyle(host).display', ' block');
60 shouldBe('document.activeElement', 'document.body');
61 shouldBeNull('root.activeElement');
62 input.removeEventListener('blur', onBlur);
63 resolve();
64 }
65 input.addEventListener('blur', onBlur);
66 });
67 }
68
69 if (window.testRunner) {
70 testFocusShadowHost().then(testFocusInsideShadowRoot).then(function(){ testR unner.notifyDone(); });
71 testRunner.waitUntilDone();
72 }
73 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698