OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/parser/BisonCSSParser.h" | 6 #include "core/css/parser/BisonCSSParser.h" |
7 | 7 |
8 #include "core/css/CSSTimingFunctionValue.h" | 8 #include "core/css/CSSTimingFunctionValue.h" |
9 #include "core/css/MediaList.h" | 9 #include "core/css/MediaList.h" |
10 #include "core/css/StyleRule.h" | 10 #include "core/css/StyleRule.h" |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 const WillBeHeapVector<OwnPtrWillBeMember<MediaQuery> >& queryVector = query
Set.queryVector(); | 72 const WillBeHeapVector<OwnPtrWillBeMember<MediaQuery> >& queryVector = query
Set.queryVector(); |
73 size_t queryVectorSize = queryVector.size(); | 73 size_t queryVectorSize = queryVector.size(); |
74 StringBuilder output; | 74 StringBuilder output; |
75 | 75 |
76 for (size_t i = 0; i < queryVectorSize; ) { | 76 for (size_t i = 0; i < queryVectorSize; ) { |
77 String queryText = queryVector[i]->cssText(); | 77 String queryText = queryVector[i]->cssText(); |
78 output.append(queryText); | 78 output.append(queryText); |
79 ++i; | 79 ++i; |
80 if (i >= queryVectorSize) | 80 if (i >= queryVectorSize) |
81 break; | 81 break; |
82 output.append(", "); | 82 output.appendLiteral(", "); |
83 } | 83 } |
84 ASSERT_STREQ(expected, output.toString().ascii().data()); | 84 ASSERT_STREQ(expected, output.toString().ascii().data()); |
85 } | 85 } |
86 | 86 |
87 TEST(BisonCSSParserTest, MediaQuery) | 87 TEST(BisonCSSParserTest, MediaQuery) |
88 { | 88 { |
89 struct { | 89 struct { |
90 const char* input; | 90 const char* input; |
91 const char* output; | 91 const char* output; |
92 } testCases[] = { | 92 } testCases[] = { |
93 {"@media s} {}", "not all"}, | 93 {"@media s} {}", "not all"}, |
94 {"@media } {}", "not all"}, | 94 {"@media } {}", "not all"}, |
95 {"@media tv {}", "tv"}, | 95 {"@media tv {}", "tv"}, |
96 {"@media tv, screen {}", "tv, screen"}, | 96 {"@media tv, screen {}", "tv, screen"}, |
97 {"@media s}, tv {}", "not all, tv"}, | 97 {"@media s}, tv {}", "not all, tv"}, |
98 {"@media tv, screen and (}) {}", "tv, not all"}, | 98 {"@media tv, screen and (}) {}", "tv, not all"}, |
99 }; | 99 }; |
100 | 100 |
101 BisonCSSParser parser(strictCSSParserContext()); | 101 BisonCSSParser parser(strictCSSParserContext()); |
102 | 102 |
103 for (unsigned i = 0; i < ARRAY_SIZE(testCases); ++i) { | 103 for (unsigned i = 0; i < ARRAY_SIZE(testCases); ++i) { |
104 RefPtrWillBeRawPtr<StyleRuleBase> rule = parser.parseRule(nullptr, Strin
g(testCases[i].input)); | 104 RefPtrWillBeRawPtr<StyleRuleBase> rule = parser.parseRule(nullptr, Strin
g(testCases[i].input)); |
105 | 105 |
106 EXPECT_TRUE(rule->isMediaRule()); | 106 EXPECT_TRUE(rule->isMediaRule()); |
107 testMediaQuery(testCases[i].output, *static_cast<StyleRuleMedia*>(rule.g
et())->mediaQueries()); | 107 testMediaQuery(testCases[i].output, *static_cast<StyleRuleMedia*>(rule.g
et())->mediaQueries()); |
108 } | 108 } |
109 } | 109 } |
110 | 110 |
111 } // namespace blink | 111 } // namespace blink |
OLD | NEW |