OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "core/css/RuleFeature.h" | 6 #include "core/css/RuleFeature.h" |
7 | 7 |
8 #include "core/css/CSSSelectorList.h" | 8 #include "core/css/CSSSelectorList.h" |
9 #include "core/css/RuleSet.h" | 9 #include "core/css/RuleSet.h" |
10 #include "core/css/StylePropertySet.h" | 10 #include "core/css/StylePropertySet.h" |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 { | 94 { |
95 EXPECT_EQ(0u, invalidationSets.size()); | 95 EXPECT_EQ(0u, invalidationSets.size()); |
96 } | 96 } |
97 | 97 |
98 void expectSelfInvalidation(InvalidationSetVector& invalidationSets) | 98 void expectSelfInvalidation(InvalidationSetVector& invalidationSets) |
99 { | 99 { |
100 EXPECT_EQ(1u, invalidationSets.size()); | 100 EXPECT_EQ(1u, invalidationSets.size()); |
101 EXPECT_TRUE(invalidationSets[0]->invalidatesSelf()); | 101 EXPECT_TRUE(invalidationSets[0]->invalidatesSelf()); |
102 } | 102 } |
103 | 103 |
| 104 void expectNoSelfInvalidation(InvalidationSetVector& invalidationSets) |
| 105 { |
| 106 EXPECT_EQ(1u, invalidationSets.size()); |
| 107 EXPECT_FALSE(invalidationSets[0]->invalidatesSelf()); |
| 108 } |
| 109 |
104 void expectClassInvalidation(const AtomicString& className, InvalidationSetV
ector& invalidationSets) | 110 void expectClassInvalidation(const AtomicString& className, InvalidationSetV
ector& invalidationSets) |
105 { | 111 { |
106 EXPECT_EQ(1u, invalidationSets.size()); | 112 EXPECT_EQ(1u, invalidationSets.size()); |
107 HashSet<AtomicString> classes = classSet(*invalidationSets[0]); | 113 HashSet<AtomicString> classes = classSet(*invalidationSets[0]); |
108 EXPECT_EQ(1u, classes.size()); | 114 EXPECT_EQ(1u, classes.size()); |
109 EXPECT_TRUE(classes.contains(className)); | 115 EXPECT_TRUE(classes.contains(className)); |
110 } | 116 } |
111 | 117 |
112 void expectSiblingInvalidation(unsigned maxDirectAdjacentSelectors, const At
omicString& siblingName, InvalidationSetVector& invalidationSets) | 118 void expectSiblingInvalidation(unsigned maxDirectAdjacentSelectors, const At
omicString& siblingName, InvalidationSetVector& invalidationSets) |
113 { | 119 { |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 updateInvalidationSets(".o + .p"); | 200 updateInvalidationSets(".o + .p"); |
195 | 201 |
196 InvalidationLists invalidationLists; | 202 InvalidationLists invalidationLists; |
197 collectInvalidationSetsForClass(invalidationLists, "o"); | 203 collectInvalidationSetsForClass(invalidationLists, "o"); |
198 expectNoInvalidation(invalidationLists.descendants); | 204 expectNoInvalidation(invalidationLists.descendants); |
199 expectSiblingInvalidation(1, "p", invalidationLists.siblings); | 205 expectSiblingInvalidation(1, "p", invalidationLists.siblings); |
200 } | 206 } |
201 | 207 |
202 TEST_F(RuleFeatureSetTest, interleavedDescendantSibling3) | 208 TEST_F(RuleFeatureSetTest, interleavedDescendantSibling3) |
203 { | 209 { |
204 updateInvalidationSets(".n .o + .p"); | 210 updateInvalidationSets(".m + .n .o + .p"); |
205 | 211 |
206 InvalidationLists invalidationLists; | 212 InvalidationLists invalidationLists; |
207 collectInvalidationSetsForClass(invalidationLists, "n"); | 213 collectInvalidationSetsForClass(invalidationLists, "n"); |
| 214 expectNoSelfInvalidation(invalidationLists.descendants); |
208 expectClassInvalidation("p", invalidationLists.descendants); | 215 expectClassInvalidation("p", invalidationLists.descendants); |
209 expectNoInvalidation(invalidationLists.siblings); | 216 expectNoInvalidation(invalidationLists.siblings); |
210 } | 217 } |
211 | 218 |
212 TEST_F(RuleFeatureSetTest, interleavedDescendantSibling4) | 219 TEST_F(RuleFeatureSetTest, interleavedDescendantSibling4) |
213 { | 220 { |
214 updateInvalidationSets(".m + .n .o + .p"); | 221 updateInvalidationSets(".m + .n .o + .p"); |
215 | 222 |
216 InvalidationLists invalidationLists; | 223 InvalidationLists invalidationLists; |
217 collectInvalidationSetsForClass(invalidationLists, "m"); | 224 collectInvalidationSetsForClass(invalidationLists, "m"); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
310 TEST_F(RuleFeatureSetTest, tagName) | 317 TEST_F(RuleFeatureSetTest, tagName) |
311 { | 318 { |
312 updateInvalidationSets(":valid e"); | 319 updateInvalidationSets(":valid e"); |
313 | 320 |
314 InvalidationLists invalidationLists; | 321 InvalidationLists invalidationLists; |
315 collectInvalidationSetsForPseudoClass(invalidationLists, CSSSelector::Pseudo
Valid); | 322 collectInvalidationSetsForPseudoClass(invalidationLists, CSSSelector::Pseudo
Valid); |
316 expectTagNameInvalidation("e", invalidationLists.descendants); | 323 expectTagNameInvalidation("e", invalidationLists.descendants); |
317 } | 324 } |
318 | 325 |
319 } // namespace blink | 326 } // namespace blink |
OLD | NEW |