| Index: third_party/WebKit/Source/core/css/RuleFeatureSetTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/RuleFeatureSetTest.cpp b/third_party/WebKit/Source/core/css/RuleFeatureSetTest.cpp
|
| index 4afd7ba6ee4116a8d6dc54f62ca28c765b28438e..eba129ca4d501a6a39d17cff5d29311ba841a9cc 100644
|
| --- a/third_party/WebKit/Source/core/css/RuleFeatureSetTest.cpp
|
| +++ b/third_party/WebKit/Source/core/css/RuleFeatureSetTest.cpp
|
| @@ -211,6 +211,15 @@ public:
|
| EXPECT_TRUE(ids.contains(id));
|
| }
|
|
|
| + void expectIdsInvalidation(const AtomicString& firstId, const AtomicString& secondId, InvalidationSetVector& invalidationSets)
|
| + {
|
| + EXPECT_EQ(1u, invalidationSets.size());
|
| + HashSet<AtomicString> ids = idSet(*invalidationSets[0]);
|
| + EXPECT_EQ(2u, ids.size());
|
| + EXPECT_TRUE(ids.contains(firstId));
|
| + EXPECT_TRUE(ids.contains(secondId));
|
| + }
|
| +
|
| void expectTagNameInvalidation(const AtomicString& tagName, InvalidationSetVector& invalidationSets)
|
| {
|
| EXPECT_EQ(1u, invalidationSets.size());
|
| @@ -219,6 +228,15 @@ public:
|
| EXPECT_TRUE(tagNames.contains(tagName));
|
| }
|
|
|
| + void expectTagNamesInvalidation(const AtomicString& firstTagName, const AtomicString& secondTagName, InvalidationSetVector& invalidationSets)
|
| + {
|
| + EXPECT_EQ(1u, invalidationSets.size());
|
| + HashSet<AtomicString> tagNames = tagNameSet(*invalidationSets[0]);
|
| + EXPECT_EQ(2u, tagNames.size());
|
| + EXPECT_TRUE(tagNames.contains(firstTagName));
|
| + EXPECT_TRUE(tagNames.contains(secondTagName));
|
| + }
|
| +
|
| void expectAttributeInvalidation(const AtomicString& attribute, InvalidationSetVector& invalidationSets)
|
| {
|
| EXPECT_EQ(1u, invalidationSets.size());
|
| @@ -324,6 +342,25 @@ TEST_F(RuleFeatureSetTest, any)
|
| expectNoInvalidation(invalidationLists.siblings);
|
| }
|
|
|
| +
|
| +TEST_F(RuleFeatureSetTest, anyIdDescendant)
|
| +{
|
| + EXPECT_EQ(RuleFeatureSet::SelectorMayMatch, collectFeatures(".a :-webkit-any(#b, #c)"));
|
| +
|
| + InvalidationLists invalidationLists;
|
| + collectInvalidationSetsForClass(invalidationLists, "a");
|
| + expectIdsInvalidation("b", "c", invalidationLists.descendants);
|
| +}
|
| +
|
| +TEST_F(RuleFeatureSetTest, anyTagDescendant)
|
| +{
|
| + EXPECT_EQ(RuleFeatureSet::SelectorMayMatch, collectFeatures(".a :-webkit-any(span, div)"));
|
| +
|
| + InvalidationLists invalidationLists;
|
| + collectInvalidationSetsForClass(invalidationLists, "a");
|
| + expectTagNamesInvalidation("span", "div", invalidationLists.descendants);
|
| +}
|
| +
|
| TEST_F(RuleFeatureSetTest, siblingAny)
|
| {
|
| EXPECT_EQ(RuleFeatureSet::SelectorMayMatch, collectFeatures(".v ~ :-webkit-any(.w, .x)"));
|
|
|