| 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
|
|
|