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

Side by Side Diff: LayoutTests/fast/css/style-scoped/registering.html

Issue 325663003: Remove scoped styles (retry) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix layout test (and expectation) Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 <html>
2 <head>
3 <script src="../../../resources/js-test.js"></script>
4 </head>
5 <body>
6 <p>Test [un]registering a &lt;style scoped&gt; element from its parent</p>
7 <div id="scope1">
8 <style id="global1"></style>
9 <style scoped='scoped1' id="scoped1"></style>
10 </div>
11 <div id="scope2">
12 </div>
13
14 <div id="console"></div>
15
16 <script>
17 if (!window.internals || !window.internals.numberOfScopedHTMLStyleChildr en)
18 debug("windows.internals.numberOfScopedHTMLStyleChildren not found!" );
19 else {
20 var scope1 = document.getElementById('scope1');
21 var scope2 = document.getElementById('scope2');
22 var scope3 = document.createElement('div');
23
24 var global1 = document.getElementById('global1');
25 var scoped1 = document.getElementById('scoped1');
26
27 var global2 = document.createElement('style');
28 var scoped2 = document.createElement('style');
29 scoped2.setAttribute('scoped', 'scoped');
30 var scoped3 = document.createElement('style');
31 scoped3.scoped = true;
32
33 /* NOTE: <style scoped> outside the document is NOT registered! */
34 debug("--- Initial ---");
35 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope1)", "1"); /* in tree */
36 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope2)", "0"); /* out of tree */
37 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope3)", "0"); /* out of tree */
38
39 debug("--- Attaching ---");
40 scope2.appendChild(scoped2);
41 scope2.appendChild(global2);
42 scope3.appendChild(scoped3);
43 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope1)", "1"); /* in tree */
44 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope2)", "1"); /* in tree */
45 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope3)", "0"); /* out of tree */
46
47 debug("--- Unsetting @scoped ---");
48 scoped1.scoped = false;
49 scoped2.scoped = false;
50 scoped3.removeAttribute('scoped');
51 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope1)", "0"); /* in tree */
52 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope2)", "0"); /* in tree */
53 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope3)", "0"); /* out of tree */
54
55 debug("--- Re-setting @scoped ---");
56 scoped1.scoped = true;
57 scoped2.setAttribute('scoped', 'scoped');
58 scoped3.setAttribute('scoped', '');
59 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope1)", "1"); /* in tree */
60 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope2)", "1"); /* in tree */
61 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope3)", "0"); /* out of tree */
62
63 debug("--- Inserting/removing scope elements from document ---");
64 document.body.insertBefore(scope3, scope2);
65 document.body.removeChild(scope2);
66 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope1)", "1"); /* in tree */
67 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope2)", "0"); /* out of tree */
68 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope3)", "1"); /* in tree */
69
70 debug("--- Multiple scoped style elements within single scope ---");
71 scope2.removeChild(scoped2);
72 scope2.removeChild(global2);
73 scope3.removeChild(scoped3);
74 scope1.appendChild(scoped3);
75 scope1.appendChild(scoped2);
76 scope1.appendChild(global2);
77 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope1)", "3"); /* in tree */
78 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope2)", "0"); /* out of tree */
79 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope3)", "0"); /* in tree */
80
81 debug("--- Removing scoping element from document ---");
82 document.body.removeChild(scope1);
83 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope1)", "0"); /* out of tree */
84 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope2)", "0"); /* out of tree */
85 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope3)", "0"); /* in tree */
86
87 debug("--- Inserting scope within other scope ---");
88 document.body.insertBefore(scope2, scope3);
89 scope1.removeChild(scoped2);
90 scope2.appendChild(scoped2);
91 scope2.appendChild(scope1);
92 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope1)", "2"); /* in tree, child of scope2 */
93 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope2)", "1"); /* in tree */
94 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope3)", "0"); /* in tree */
95
96 debug("--- Cloning &lt;style scoped&gt; and parents ---");
97 var clonescope1deep = scope1.cloneNode(true);
98 var clonescope1shallow = scope1.cloneNode(false);
99 var clonescope2deep = scope2.cloneNode(true);
100 var clonescope2shallow = scope2.cloneNode(false);
101 var clonescoped1deep = scoped1.cloneNode(true);
102 var clonescoped1shallow = scoped1.cloneNode(false);
103 var clonescoped2deep = scoped2.cloneNode(true);
104 var clonescoped2shallow = scoped2.cloneNode(false);
105 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope1)", "2"); /* in tree, child of scope2 */
106 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope2)", "1"); /* in tree */
107 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope3)", "0"); /* in tree */
108 shouldBe("internals.numberOfScopedHTMLStyleChildren(clonescope1deep) ", "0"); /* out of tree */
109 shouldBe("internals.numberOfScopedHTMLStyleChildren(clonescope1shall ow)", "0"); /* out of tree */
110 shouldBe("internals.numberOfScopedHTMLStyleChildren(clonescope2deep) ", "0"); /* out of tree */
111 shouldBe("internals.numberOfScopedHTMLStyleChildren(clonescope2shall ow)", "0"); /* out of tree */
112
113 debug("--- inserting clones into single parent ---");
114 scope3.appendChild(clonescope1deep);
115 scope3.appendChild(clonescope1shallow);
116 scope3.appendChild(clonescope2deep);
117 scope3.appendChild(clonescope2shallow);
118 scope3.appendChild(clonescoped1deep);
119 scope3.appendChild(clonescoped1shallow);
120 scope3.appendChild(clonescoped2deep);
121 scope3.appendChild(clonescoped2shallow);
122 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope1)", "2"); /* in tree, child of scope2 */
123 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope2)", "1"); /* in tree */
124 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope3)", "4"); /* in tree */
125 shouldBe("internals.numberOfScopedHTMLStyleChildren(clonescope1deep) ", "2"); /* in tree */
126 shouldBe("internals.numberOfScopedHTMLStyleChildren(clonescope1shall ow)", "0"); /* in tree */
127 shouldBe("internals.numberOfScopedHTMLStyleChildren(clonescope2deep) ", "1"); /* in tree */
128 shouldBe("internals.numberOfScopedHTMLStyleChildren(clonescope2shall ow)", "0"); /* in tree */
129
130 debug("--- Unsetting @scoped in nested scope ---");
131 scoped1.scoped = false;
132 scoped2.removeAttribute('scoped');
133 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope1)", "1"); /* in tree, child of scope2 */
134 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope2)", "0"); /* in tree */
135 shouldBe("internals.numberOfScopedHTMLStyleChildren(scope3)", "4"); /* in tree */
136
137 debug("--- DONE ---");
138 }
139 var successfullyParsed = true;
140 </script>
141 </body>
142 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698