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 "core/css/RuleFeature.h" | 5 #include "core/css/RuleFeature.h" |
6 | 6 |
7 #include "core/css/CSSSelectorList.h" | 7 #include "core/css/CSSSelectorList.h" |
8 #include "core/css/RuleSet.h" | 8 #include "core/css/RuleSet.h" |
9 #include "core/css/StylePropertySet.h" | 9 #include "core/css/StylePropertySet.h" |
10 #include "core/css/StyleRule.h" | 10 #include "core/css/StyleRule.h" |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 HashSet<AtomicString> attributes = attributeSet(*invalidationSets[0]); | 177 HashSet<AtomicString> attributes = attributeSet(*invalidationSets[0]); |
178 EXPECT_EQ(1u, attributes.size()); | 178 EXPECT_EQ(1u, attributes.size()); |
179 EXPECT_TRUE(attributes.contains(attribute)); | 179 EXPECT_TRUE(attributes.contains(attribute)); |
180 } | 180 } |
181 | 181 |
182 void expectSiblingRuleCount(unsigned count) | 182 void expectSiblingRuleCount(unsigned count) |
183 { | 183 { |
184 EXPECT_EQ(count, m_ruleFeatureSet.siblingRules.size()); | 184 EXPECT_EQ(count, m_ruleFeatureSet.siblingRules.size()); |
185 } | 185 } |
186 | 186 |
| 187 void expectUncommonAttributeRuleCount(unsigned count) |
| 188 { |
| 189 EXPECT_EQ(count, m_ruleFeatureSet.uncommonAttributeRules.size()); |
| 190 } |
| 191 |
187 DEFINE_INLINE_TRACE() | 192 DEFINE_INLINE_TRACE() |
188 { | 193 { |
189 #if ENABLE(OILPAN) | 194 #if ENABLE(OILPAN) |
190 visitor->trace(m_ruleFeatureSet); | 195 visitor->trace(m_ruleFeatureSet); |
191 visitor->trace(m_document); | 196 visitor->trace(m_document); |
192 #endif | 197 #endif |
193 } | 198 } |
194 | 199 |
195 private: | 200 private: |
196 RuleFeatureSet m_ruleFeatureSet; | 201 RuleFeatureSet m_ruleFeatureSet; |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 collectFeatures(".a + :host(.b)"); | 421 collectFeatures(".a + :host(.b)"); |
417 expectSiblingRuleCount(0); | 422 expectSiblingRuleCount(0); |
418 } | 423 } |
419 | 424 |
420 TEST_F(RuleFeatureSetTest, siblingRulesBeforeHostContext) | 425 TEST_F(RuleFeatureSetTest, siblingRulesBeforeHostContext) |
421 { | 426 { |
422 collectFeatures(".a + :host-context(.b)"); | 427 collectFeatures(".a + :host-context(.b)"); |
423 expectSiblingRuleCount(0); | 428 expectSiblingRuleCount(0); |
424 } | 429 } |
425 | 430 |
| 431 TEST_F(RuleFeatureSetTest, uncommonAttributeRulesAfterContentPseudo) |
| 432 { |
| 433 collectFeatures("div ::content [attr]"); |
| 434 expectUncommonAttributeRuleCount(1); |
| 435 } |
| 436 |
| 437 TEST_F(RuleFeatureSetTest, uncommonAttributeRulesBeforeContentPseudo) |
| 438 { |
| 439 collectFeatures("[attr] ::content div"); |
| 440 expectUncommonAttributeRuleCount(0); |
| 441 } |
| 442 |
| 443 TEST_F(RuleFeatureSetTest, uncommonAttributeRulesSlotted) |
| 444 { |
| 445 collectFeatures("::slotted([attr])"); |
| 446 expectUncommonAttributeRuleCount(1); |
| 447 } |
| 448 |
| 449 TEST_F(RuleFeatureSetTest, uncommonAttributeRulesBeforeSlotted) |
| 450 { |
| 451 collectFeatures("[attr]::slotted(*)"); |
| 452 expectUncommonAttributeRuleCount(0); |
| 453 } |
| 454 |
| 455 TEST_F(RuleFeatureSetTest, uncommonAttributeRulesHost) |
| 456 { |
| 457 collectFeatures(":host([attr])"); |
| 458 expectUncommonAttributeRuleCount(1); |
| 459 } |
| 460 |
| 461 TEST_F(RuleFeatureSetTest, uncommonAttributeRulesBeforeHost) |
| 462 { |
| 463 collectFeatures("[attr] :host"); |
| 464 expectUncommonAttributeRuleCount(0); |
| 465 } |
| 466 |
| 467 TEST_F(RuleFeatureSetTest, uncommonAttributeRulesHostContext) |
| 468 { |
| 469 collectFeatures(":host-context([attr])"); |
| 470 expectUncommonAttributeRuleCount(1); |
| 471 } |
| 472 |
| 473 TEST_F(RuleFeatureSetTest, uncommonAttributeRulesBeforeHostContext) |
| 474 { |
| 475 collectFeatures("[attr] :host-context(div)"); |
| 476 expectUncommonAttributeRuleCount(0); |
| 477 } |
| 478 |
426 } // namespace blink | 479 } // namespace blink |
OLD | NEW |