Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(278)

Side by Side Diff: Source/core/css/parser/CSSSelectorParserTest.cpp

Issue 962093002: CSS Tokenizer: Add an on-stack tokenizer scope (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/css/parser/CSSParserValuesTest.cpp ('k') | Source/core/css/parser/CSSTokenizer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/CSSSelectorParser.h" 6 #include "core/css/parser/CSSSelectorParser.h"
7 7
8 #include "core/css/parser/CSSTokenizer.h" 8 #include "core/css/parser/CSSTokenizer.h"
9 #include <gtest/gtest.h> 9 #include <gtest/gtest.h>
10 10
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 {"+n + 61", 1, 61}, 66 {"+n + 61", 1, 61},
67 {"+N - 63", 1, -63}, 67 {"+N - 63", 1, -63},
68 {"+n/**/- 48", 1, -48}, 68 {"+n/**/- 48", 1, -48},
69 {"-n + 81", -1, 81}, 69 {"-n + 81", -1, 81},
70 {"-N - 88", -1, -88}, 70 {"-N - 88", -1, -88},
71 }; 71 };
72 72
73 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(testCases); ++i) { 73 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(testCases); ++i) {
74 SCOPED_TRACE(testCases[i].input); 74 SCOPED_TRACE(testCases[i].input);
75 75
76 Vector<CSSParserToken> tokens;
77 CSSTokenizer::tokenize(testCases[i].input, tokens);
78 CSSParserTokenRange range(tokens);
79
80 std::pair<int, int> ab; 76 std::pair<int, int> ab;
77 CSSTokenizer::Scope scope(testCases[i].input);
78 CSSParserTokenRange range = scope.tokenRange();
81 bool passed = CSSSelectorParser::consumeANPlusB(range, ab); 79 bool passed = CSSSelectorParser::consumeANPlusB(range, ab);
82 EXPECT_TRUE(passed); 80 EXPECT_TRUE(passed);
83 EXPECT_EQ(ab.first, testCases[i].a); 81 EXPECT_EQ(ab.first, testCases[i].a);
84 EXPECT_EQ(ab.second, testCases[i].b); 82 EXPECT_EQ(ab.second, testCases[i].b);
85 } 83 }
86 } 84 }
87 85
88 TEST(CSSSelectorParserTest, InvalidANPlusB) 86 TEST(CSSSelectorParserTest, InvalidANPlusB)
89 { 87 {
90 // Some of these have token range prefixes which are valid <an+b> and could 88 // Some of these have token range prefixes which are valid <an+b> and could
91 // in theory be valid in consumeANPlusB, but this behaviour isn't needed 89 // in theory be valid in consumeANPlusB, but this behaviour isn't needed
92 // anywhere and not implemented. 90 // anywhere and not implemented.
93 const char* testCases[] = { 91 const char* testCases[] = {
94 " odd", 92 " odd",
95 "+ n", 93 "+ n",
96 "3m+4", 94 "3m+4",
97 "12n--34", 95 "12n--34",
98 "12n- -34", 96 "12n- -34",
99 "12n- +34", 97 "12n- +34",
100 "23n-+43", 98 "23n-+43",
101 "10n 5", 99 "10n 5",
102 "10n + +5", 100 "10n + +5",
103 "10n + -5", 101 "10n + -5",
104 }; 102 };
105 103
106 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(testCases); ++i) { 104 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(testCases); ++i) {
107 SCOPED_TRACE(testCases[i]); 105 SCOPED_TRACE(testCases[i]);
108 106
109 Vector<CSSParserToken> tokens;
110 CSSTokenizer::tokenize(testCases[i], tokens);
111 CSSParserTokenRange range(tokens);
112
113 std::pair<int, int> ab; 107 std::pair<int, int> ab;
108 CSSTokenizer::Scope scope(testCases[i]);
109 CSSParserTokenRange range = scope.tokenRange();
114 bool passed = CSSSelectorParser::consumeANPlusB(range, ab); 110 bool passed = CSSSelectorParser::consumeANPlusB(range, ab);
115 EXPECT_FALSE(passed); 111 EXPECT_FALSE(passed);
116 } 112 }
117 } 113 }
118 114
119 } // namespace 115 } // namespace
OLDNEW
« no previous file with comments | « Source/core/css/parser/CSSParserValuesTest.cpp ('k') | Source/core/css/parser/CSSTokenizer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698