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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/dom/shadow/multiple-shadowroot-with-params.html

Issue 1408443003: Add Element.attachShadow under the ShadowDOMV1 runtime flag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rewrite a test Created 5 years, 2 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/js-test.js"></script>
3 <script> 3 <script>
4 description('This tests multiple shadow roots creation with createShadowRoot and mode parameter.'); 4 description('This tests multiple shadow roots creation with createShadowRoot and mode parameter.');
5 5
6 function shouldBeOpenByDefaultShadowRoot(root) { 6 function shouldBeOpenByDefaultShadowRoot(root) {
7 shouldBeEqualToString('internals.shadowRootType(' + root + ')', 'OpenByDefau ltShadowRoot'); 7 shouldBeEqualToString('internals.shadowRootType(' + root + ')', 'OpenByDefau ltShadowRoot');
8 } 8 }
9 9
10 function shouldBeOpenShadowRoot(root) { 10 function shouldBeOpenShadowRoot(root) {
11 shouldBeEqualToString('internals.shadowRootType(' + root + ')', 'OpenShadowR oot'); 11 shouldBeEqualToString('internals.shadowRootType(' + root + ')', 'OpenShadowR oot');
12 } 12 }
13 13
14 function shouldBeClosedShadowRoot(root) { 14 function shouldBeClosedShadowRoot(root) {
15 shouldBeEqualToString('internals.shadowRootType(' + root + ')', 'ClosedShado wRoot'); 15 shouldBeEqualToString('internals.shadowRootType(' + root + ')', 'ClosedShado wRoot');
16 } 16 }
17 17
18 function shouldBeUserAgentShadowRoot(root) { 18 function shouldBeUserAgentShadowRoot(root) {
19 shouldBeEqualToString('internals.shadowRootType(' + root + ')', 'UserAgentSh adowRoot'); 19 shouldBeEqualToString('internals.shadowRootType(' + root + ')', 'UserAgentSh adowRoot');
20 } 20 }
21 21
22 function youngestShadowRootShouldBe(host, root) { 22 function youngestShadowRootShouldBe(host, root) {
23 shouldBe('internals.youngestShadowRoot(' + host + ')', root); 23 shouldBe('internals.youngestShadowRoot(' + host + ')', root);
24 } 24 }
25 25
26 debug('(1/1) For compatibility, no parameter createShadowRoot() can still create multiple shadow roots.'); 26 debug('createShadowRoot() can still create multiple shadow roots.');
27
27 var div = document.createElement('div'); 28 var div = document.createElement('div');
28 var shadow1 = div.createShadowRoot(); 29 var shadow1 = div.createShadowRoot();
29 shouldBeOpenByDefaultShadowRoot('shadow1'); 30 shouldBeOpenByDefaultShadowRoot('shadow1');
30
31 var shadow2 = div.createShadowRoot(); 31 var shadow2 = div.createShadowRoot();
32 shouldBeOpenByDefaultShadowRoot('shadow2'); 32 shouldBeOpenByDefaultShadowRoot('shadow2');
33
34 youngestShadowRootShouldBe('div', 'shadow2'); 33 youngestShadowRootShouldBe('div', 'shadow2');
35 shouldBe('shadow2.olderShadowRoot', 'shadow1'); 34 shouldBe('shadow2.olderShadowRoot', 'shadow1');
36 35
36 debug('Other attempts to create multiple shadow roots should fail');
37 37
38 debug('(2/2) createShadowRoot({mode:"open"}) cannot create multiple shadow roots ');
39 div = document.createElement('div'); 38 div = document.createElement('div');
40 shadow1 = div.createShadowRoot(); 39 shadow1 = div.createShadowRoot();
41 shouldBeOpenByDefaultShadowRoot('shadow1'); 40 shouldBeOpenByDefaultShadowRoot('shadow1');
41 shouldThrow('div.attachShadow({mode: "open"})');
42 shouldThrow('div.attachShadow({mode: "closed"})');
43 youngestShadowRootShouldBe('div', 'shadow1');
42 44
43 shouldThrow('div.createShadowRoot({mode: "open"})'); 45 div = document.createElement('div');
46 shadow1 = div.attachShadow({mode: "open"});
47 shouldBeOpenShadowRoot('shadow1');
48 shouldThrow('div.createShadowRoot()');
49 shouldThrow('div.attachShadow({mode: "open"})');
50 shouldThrow('div.attachShadow({mode: "closed"})');
51 youngestShadowRootShouldBe('div', 'shadow1');
52
53 div = document.createElement('div');
54 shadow1 = div.attachShadow({mode: "closed"});
55 shouldBeClosedShadowRoot('shadow1');
56 shouldThrow('div.createShadowRoot()');
57 shouldThrow('div.attachShadow({mode: "open"})');
58 shouldThrow('div.attachShadow({mode: "closed"})');
44 youngestShadowRootShouldBe('div', 'shadow1'); 59 youngestShadowRootShouldBe('div', 'shadow1');
45 60
46 61
47 debug('(3/3) createShadowRoot() cannot create multiple shadow roots on shadow ro ot with explicit open parameter.'); 62 debug('V1 shadow root cannot be created on UA shadow root');
48 div = document.createElement('div');
49 shadow1 = div.createShadowRoot({mode: 'open'});
50 shouldBeOpenShadowRoot('shadow1');
51
52 shouldThrow('div.createShadowRoot()');
53 youngestShadowRootShouldBe('div', 'shadow1');
54
55
56 debug('(4/4) closed shadow root cannot be created on any open shadow roots');
57 div = document.createElement('div');
58 shadow1 = div.createShadowRoot();
59 shouldBeOpenByDefaultShadowRoot('shadow1');
60
61 shouldThrow('div.createShadowRoot({mode: "closed"})');
62 youngestShadowRootShouldBe('div', 'shadow1');
63
64 div = document.createElement('div');
65 shadow1 = div.createShadowRoot({mode: 'open'});
66 shouldBeOpenShadowRoot('shadow1');
67
68 shouldThrow('div.createShadowRoot({mode: "closed"})');
69 youngestShadowRootShouldBe('div', 'shadow1');
70
71
72 debug('(5/5) any shadow root cannot be created on closed shadow root');
73 div = document.createElement('div');
74 shadow1 = div.createShadowRoot({mode: 'closed'});
75 shouldBeClosedShadowRoot('shadow1');
76
77 shouldThrow('div.createShadowRoot()');
78 shouldThrow('div.createShadowRoot({mode: "open"})');
79 shouldThrow('div.createShadowRoot({mode: "closed"})');
80
81
82 debug('(6/6) explicitly open/closed shadow root cannot be created on UA shadow r oot');
83 var input = document.createElement('input'); 63 var input = document.createElement('input');
84 shouldBeUserAgentShadowRoot('internals.shadowRoot(input)'); 64 shouldBeUserAgentShadowRoot('internals.shadowRoot(input)');
85 shadow1 = input.createShadowRoot(); 65 shadow1 = input.createShadowRoot();
86 youngestShadowRootShouldBe('input', 'shadow1'); 66 youngestShadowRootShouldBe('input', 'shadow1');
87 shouldBeOpenByDefaultShadowRoot('shadow1'); 67 shouldBeOpenByDefaultShadowRoot('shadow1');
88 68
89 input = document.createElement('input'); 69 input = document.createElement('input');
90 shouldThrow('input.createShadowRoot({mode: "open"})'); 70 shouldThrow('input.attachShadow({mode: "open"})');
91 71
92 input = document.createElement('input'); 72 input = document.createElement('input');
93 shouldThrow('input.createShadowRoot({mode: "closed"})'); 73 shouldThrow('input.attachShadow({mode: "closed"})');
94 </script> 74 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698