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 "core/css/parser/CSSPropertyParser.h" | 5 #include "core/css/parser/CSSPropertyParser.h" |
6 | 6 |
7 #include "core/css/CSSValueList.h" | 7 #include "core/css/CSSValueList.h" |
8 #include "core/css/parser/CSSParser.h" | 8 #include "core/css/parser/CSSParser.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
11 namespace blink { | 11 namespace blink { |
12 | 12 |
13 static int computeNumberOfTracks(CSSValueList* valueList) | 13 static int computeNumberOfTracks(CSSValueList* valueList) |
14 { | 14 { |
15 int numberOfTracks = 0; | 15 int numberOfTracks = 0; |
16 for (auto& value : *valueList) { | 16 for (auto& value : *valueList) { |
17 if (value->isGridLineNamesValue()) | 17 if (value->isGridLineNamesValue()) |
18 continue; | 18 continue; |
19 ++numberOfTracks; | 19 ++numberOfTracks; |
20 } | 20 } |
21 return numberOfTracks; | 21 return numberOfTracks; |
22 } | 22 } |
23 | 23 |
24 TEST(CSSPropertyParserTest, GridTrackLimit1) | 24 TEST(CSSPropertyParserTest, GridTrackLimit1) |
25 { | 25 { |
26 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Columns, "repeat(999999, 20px)"); | 26 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns
, "repeat(999999, 20px)"); |
27 ASSERT_TRUE(value); | 27 ASSERT_TRUE(value); |
28 ASSERT_TRUE(value->isValueList()); | 28 ASSERT_TRUE(value->isValueList()); |
29 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); | 29 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 999999); |
30 } | 30 } |
31 | 31 |
32 TEST(CSSPropertyParserTest, GridTrackLimit2) | 32 TEST(CSSPropertyParserTest, GridTrackLimit2) |
33 { | 33 { |
34 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Rows, "repeat(999999, 20px)"); | 34 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "
repeat(999999, 20px)"); |
35 ASSERT_TRUE(value); | 35 ASSERT_TRUE(value); |
36 ASSERT_TRUE(value->isValueList()); | 36 ASSERT_TRUE(value->isValueList()); |
37 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); | 37 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 999999); |
38 } | 38 } |
39 | 39 |
40 TEST(CSSPropertyParserTest, GridTrackLimit3) | 40 TEST(CSSPropertyParserTest, GridTrackLimit3) |
41 { | 41 { |
42 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Columns, "repeat(1000000, 10%)"); | 42 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns
, "repeat(1000000, 10%)"); |
43 ASSERT_TRUE(value); | 43 ASSERT_TRUE(value); |
44 ASSERT_TRUE(value->isValueList()); | 44 ASSERT_TRUE(value->isValueList()); |
45 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); | 45 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 1000000); |
46 } | 46 } |
47 | 47 |
48 TEST(CSSPropertyParserTest, GridTrackLimit4) | 48 TEST(CSSPropertyParserTest, GridTrackLimit4) |
49 { | 49 { |
50 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Rows, "repeat(1000000, 10%)"); | 50 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "
repeat(1000000, 10%)"); |
51 ASSERT_TRUE(value); | 51 ASSERT_TRUE(value); |
52 ASSERT_TRUE(value->isValueList()); | 52 ASSERT_TRUE(value->isValueList()); |
53 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); | 53 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 1000000); |
54 } | 54 } |
55 | 55 |
56 TEST(CSSPropertyParserTest, GridTrackLimit5) | 56 TEST(CSSPropertyParserTest, GridTrackLimit5) |
57 { | 57 { |
58 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Columns, "repeat(1000000, [first] min-content [last])"); | 58 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns
, "repeat(1000000, [first] min-content [last])"); |
59 ASSERT_TRUE(value); | 59 ASSERT_TRUE(value); |
60 ASSERT_TRUE(value->isValueList()); | 60 ASSERT_TRUE(value->isValueList()); |
61 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); | 61 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 1000000); |
62 } | 62 } |
63 | 63 |
64 TEST(CSSPropertyParserTest, GridTrackLimit6) | 64 TEST(CSSPropertyParserTest, GridTrackLimit6) |
65 { | 65 { |
66 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Rows, "repeat(1000000, [first] min-content [last])"); | 66 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "
repeat(1000000, [first] min-content [last])"); |
67 ASSERT_TRUE(value); | 67 ASSERT_TRUE(value); |
68 ASSERT_TRUE(value->isValueList()); | 68 ASSERT_TRUE(value->isValueList()); |
69 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); | 69 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 1000000); |
70 } | 70 } |
71 | 71 |
72 TEST(CSSPropertyParserTest, GridTrackLimit7) | 72 TEST(CSSPropertyParserTest, GridTrackLimit7) |
73 { | 73 { |
74 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Columns, "repeat(1000001, auto)"); | 74 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns
, "repeat(1000001, auto)"); |
75 ASSERT_TRUE(value); | 75 ASSERT_TRUE(value); |
76 ASSERT_TRUE(value->isValueList()); | 76 ASSERT_TRUE(value->isValueList()); |
77 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); | 77 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 1000000); |
78 } | 78 } |
79 | 79 |
80 TEST(CSSPropertyParserTest, GridTrackLimit8) | 80 TEST(CSSPropertyParserTest, GridTrackLimit8) |
81 { | 81 { |
82 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Rows, "repeat(1000001, auto)"); | 82 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "
repeat(1000001, auto)"); |
83 ASSERT_TRUE(value); | 83 ASSERT_TRUE(value); |
84 ASSERT_TRUE(value->isValueList()); | 84 ASSERT_TRUE(value->isValueList()); |
85 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); | 85 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 1000000); |
86 } | 86 } |
87 | 87 |
88 TEST(CSSPropertyParserTest, GridTrackLimit9) | 88 TEST(CSSPropertyParserTest, GridTrackLimit9) |
89 { | 89 { |
90 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Columns, "repeat(400000, 2em minmax(10px, max-content) 0.5fr)"); | 90 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns
, "repeat(400000, 2em minmax(10px, max-content) 0.5fr)"); |
91 ASSERT_TRUE(value); | 91 ASSERT_TRUE(value); |
92 ASSERT_TRUE(value->isValueList()); | 92 ASSERT_TRUE(value->isValueList()); |
93 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); | 93 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 999999); |
94 } | 94 } |
95 | 95 |
96 TEST(CSSPropertyParserTest, GridTrackLimit10) | 96 TEST(CSSPropertyParserTest, GridTrackLimit10) |
97 { | 97 { |
98 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Rows, "repeat(400000, 2em minmax(10px, max-content) 0.5fr)"); | 98 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "
repeat(400000, 2em minmax(10px, max-content) 0.5fr)"); |
99 ASSERT_TRUE(value); | 99 ASSERT_TRUE(value); |
100 ASSERT_TRUE(value->isValueList()); | 100 ASSERT_TRUE(value->isValueList()); |
101 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); | 101 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 999999); |
102 } | 102 } |
103 | 103 |
104 TEST(CSSPropertyParserTest, GridTrackLimit11) | 104 TEST(CSSPropertyParserTest, GridTrackLimit11) |
105 { | 105 { |
106 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Columns, "repeat(600000, [first] 3vh 10% 2fr [nav] 10px auto 1fr 6em [last])"); | 106 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns
, "repeat(600000, [first] 3vh 10% 2fr [nav] 10px auto 1fr 6em [last])"); |
107 ASSERT_TRUE(value); | 107 ASSERT_TRUE(value); |
108 ASSERT_TRUE(value->isValueList()); | 108 ASSERT_TRUE(value->isValueList()); |
109 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); | 109 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 999999); |
110 } | 110 } |
111 | 111 |
112 TEST(CSSPropertyParserTest, GridTrackLimit12) | 112 TEST(CSSPropertyParserTest, GridTrackLimit12) |
113 { | 113 { |
114 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Rows, "repeat(600000, [first] 3vh 10% 2fr [nav] 10px auto 1fr 6em [last])"); | 114 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "
repeat(600000, [first] 3vh 10% 2fr [nav] 10px auto 1fr 6em [last])"); |
115 ASSERT_TRUE(value); | 115 ASSERT_TRUE(value); |
116 ASSERT_TRUE(value->isValueList()); | 116 ASSERT_TRUE(value->isValueList()); |
117 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); | 117 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 999999); |
118 } | 118 } |
119 | 119 |
120 TEST(CSSPropertyParserTest, GridTrackLimit13) | 120 TEST(CSSPropertyParserTest, GridTrackLimit13) |
121 { | 121 { |
122 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Columns, "repeat(100000000000000000000, 10% 1fr)"); | 122 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns
, "repeat(100000000000000000000, 10% 1fr)"); |
123 ASSERT_TRUE(value); | 123 ASSERT_TRUE(value); |
124 ASSERT_TRUE(value->isValueList()); | 124 ASSERT_TRUE(value->isValueList()); |
125 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); | 125 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 1000000); |
126 } | 126 } |
127 | 127 |
128 TEST(CSSPropertyParserTest, GridTrackLimit14) | 128 TEST(CSSPropertyParserTest, GridTrackLimit14) |
129 { | 129 { |
130 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Rows, "repeat(100000000000000000000, 10% 1fr)"); | 130 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "
repeat(100000000000000000000, 10% 1fr)"); |
131 ASSERT_TRUE(value); | 131 ASSERT_TRUE(value); |
132 ASSERT_TRUE(value->isValueList()); | 132 ASSERT_TRUE(value->isValueList()); |
133 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); | 133 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 1000000); |
134 } | 134 } |
135 | 135 |
136 TEST(CSSPropertyParserTest, GridTrackLimit15) | 136 TEST(CSSPropertyParserTest, GridTrackLimit15) |
137 { | 137 { |
138 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Columns, "repeat(100000000000000000000, 10% 5em 1fr auto auto 15px min-content)"
); | 138 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns
, "repeat(100000000000000000000, 10% 5em 1fr auto auto 15px min-content)"); |
139 ASSERT_TRUE(value); | 139 ASSERT_TRUE(value); |
140 ASSERT_TRUE(value->isValueList()); | 140 ASSERT_TRUE(value->isValueList()); |
141 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); | 141 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 999999); |
142 } | 142 } |
143 | 143 |
144 TEST(CSSPropertyParserTest, GridTrackLimit16) | 144 TEST(CSSPropertyParserTest, GridTrackLimit16) |
145 { | 145 { |
146 RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplate
Rows, "repeat(100000000000000000000, 10% 5em 1fr auto auto 15px min-content)"); | 146 CSSValue* value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "
repeat(100000000000000000000, 10% 5em 1fr auto auto 15px min-content)"); |
147 ASSERT_TRUE(value); | 147 ASSERT_TRUE(value); |
148 ASSERT_TRUE(value->isValueList()); | 148 ASSERT_TRUE(value->isValueList()); |
149 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); | 149 EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 999999); |
150 } | 150 } |
151 | 151 |
152 } // namespace blink | 152 } // namespace blink |
OLD | NEW |