Index: third_party/WebKit/Source/core/css/parser/CSSSelectorParserTest.cpp |
diff --git a/third_party/WebKit/Source/core/css/parser/CSSSelectorParserTest.cpp b/third_party/WebKit/Source/core/css/parser/CSSSelectorParserTest.cpp |
index 539c1302aaa5d843a0c8fdcf7a04c7198c11d322..adec205ea18aa7f809467b1d3620b9828eda0205 100644 |
--- a/third_party/WebKit/Source/core/css/parser/CSSSelectorParserTest.cpp |
+++ b/third_party/WebKit/Source/core/css/parser/CSSSelectorParserTest.cpp |
@@ -5,6 +5,7 @@ |
#include "core/css/parser/CSSSelectorParser.h" |
#include "core/css/CSSSelectorList.h" |
+#include "core/css/StyleSheetContents.h" |
#include "core/css/parser/CSSTokenizer.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -251,4 +252,37 @@ TEST(CSSSelectorParserTest, InvalidPseudoElementInNonRightmostCompound) |
} |
} |
+TEST(CSSSelectorParserTest, SerializedUniversal) |
+{ |
+ const char* testCases[][2] = { |
+ { "*::-webkit-volume-slider", "::-webkit-volume-slider" }, |
+ { "*::cue(i)", "::cue(i)" }, |
+ { "*::shadow", "::shadow" }, |
+ { "*:host-context(.x)", "*:host-context(.x)" }, |
+ { "*:host", "*:host" }, |
+ { "|*::-webkit-volume-slider", "|*::-webkit-volume-slider" }, |
+ { "|*::cue(i)", "|*::cue(i)" }, |
+ { "|*::shadow", "|*::shadow" }, |
+ { "*|*::-webkit-volume-slider", "::-webkit-volume-slider" }, |
+ { "*|*::cue(i)", "::cue(i)" }, |
+ { "*|*::shadow", "::shadow" }, |
+ { "ns|*::-webkit-volume-slider", "ns|*::-webkit-volume-slider" }, |
+ { "ns|*::cue(i)", "ns|*::cue(i)" }, |
+ { "ns|*::shadow", "ns|*::shadow" } |
+ }; |
+ |
+ CSSParserContext context(HTMLStandardMode, nullptr); |
+ RefPtrWillBeRawPtr<StyleSheetContents> sheet = StyleSheetContents::create(context); |
+ sheet->parserAddNamespace("ns", "http://ns.org"); |
+ |
+ for (auto testCase : testCases) { |
+ SCOPED_TRACE(testCase[0]); |
+ CSSTokenizer::Scope scope(testCase[0]); |
+ CSSParserTokenRange range = scope.tokenRange(); |
+ CSSSelectorList list = CSSSelectorParser::parseSelector(range, context, sheet.get()); |
+ EXPECT_TRUE(list.isValid()); |
+ EXPECT_STREQ(testCase[1], list.selectorsText().ascii().data()); |
+ } |
+} |
+ |
} // namespace |