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