Index: third_party/WebKit/Source/core/css/parser/CSSPropertyParserTest.cpp |
diff --git a/third_party/WebKit/Source/core/css/parser/CSSPropertyParserTest.cpp b/third_party/WebKit/Source/core/css/parser/CSSPropertyParserTest.cpp |
index 9b51151bfeb720fdd9be072a27b73cbf9b461b3a..ddf5f2097cb30289616a6f49e9f8fe8e36ac929d 100644 |
--- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParserTest.cpp |
+++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParserTest.cpp |
@@ -10,9 +10,9 @@ |
namespace blink { |
-static unsigned computeNumberOfTracks(CSSValueList* valueList) |
+static int computeNumberOfTracks(CSSValueList* valueList) |
{ |
- unsigned numberOfTracks = 0; |
+ int numberOfTracks = 0; |
for (auto& value : *valueList) { |
if (value->isGridLineNamesValue()) |
continue; |
@@ -21,37 +21,132 @@ static unsigned computeNumberOfTracks(CSSValueList* valueList) |
return numberOfTracks; |
} |
-TEST(CSSPropertyParserTest, DISABLED_GridTrackLimits) |
-{ |
- struct { |
- const CSSPropertyID propertyID; |
- const char* input; |
- const size_t output; |
- } testCases[] = { |
- {CSSPropertyGridTemplateColumns, "repeat(999999, 20px)", 999999}, |
- {CSSPropertyGridTemplateRows, "repeat(999999, 20px)", 999999}, |
- {CSSPropertyGridTemplateColumns, "repeat(1000000, 10%)", 1000000}, |
- {CSSPropertyGridTemplateRows, "repeat(1000000, 10%)", 1000000}, |
- {CSSPropertyGridTemplateColumns, "repeat(1000000, [first] min-content [last])", 1000000}, |
- {CSSPropertyGridTemplateRows, "repeat(1000000, [first] min-content [last])", 1000000}, |
- {CSSPropertyGridTemplateColumns, "repeat(1000001, auto)", 1000000}, |
- {CSSPropertyGridTemplateRows, "repeat(1000001, auto)", 1000000}, |
- {CSSPropertyGridTemplateColumns, "repeat(400000, 2em minmax(10px, max-content) 0.5fr)", 999999}, |
- {CSSPropertyGridTemplateRows, "repeat(400000, 2em minmax(10px, max-content) 0.5fr)", 999999}, |
- {CSSPropertyGridTemplateColumns, "repeat(600000, [first] 3vh 10% 2fr [nav] 10px auto 1fr 6em [last])", 999999}, |
- {CSSPropertyGridTemplateRows, "repeat(600000, [first] 3vh 10% 2fr [nav] 10px auto 1fr 6em [last])", 999999}, |
- {CSSPropertyGridTemplateColumns, "repeat(100000000000000000000, 10% 1fr)", 1000000}, |
- {CSSPropertyGridTemplateRows, "repeat(100000000000000000000, 10% 1fr)", 1000000}, |
- {CSSPropertyGridTemplateColumns, "repeat(100000000000000000000, 10% 5em 1fr auto auto 15px min-content)", 999999}, |
- {CSSPropertyGridTemplateRows, "repeat(100000000000000000000, 10% 5em 1fr auto auto 15px min-content)", 999999}, |
- }; |
- |
- for (unsigned i = 0; i < WTF_ARRAY_LENGTH(testCases); ++i) { |
- RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(testCases[i].propertyID, testCases[i].input); |
- ASSERT_TRUE(value); |
- ASSERT_TRUE(value->isValueList()); |
- EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), testCases[i].output); |
- } |
+TEST(CSSPropertyParserTest, GridTrackLimit1) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns, "repeat(999999, 20px)"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit2) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "repeat(999999, 20px)"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit3) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns, "repeat(1000000, 10%)"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit4) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "repeat(1000000, 10%)"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit5) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns, "repeat(1000000, [first] min-content [last])"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit6) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "repeat(1000000, [first] min-content [last])"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit7) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns, "repeat(1000001, auto)"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit8) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "repeat(1000001, auto)"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit9) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns, "repeat(400000, 2em minmax(10px, max-content) 0.5fr)"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit10) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "repeat(400000, 2em minmax(10px, max-content) 0.5fr)"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit11) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns, "repeat(600000, [first] 3vh 10% 2fr [nav] 10px auto 1fr 6em [last])"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit12) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "repeat(600000, [first] 3vh 10% 2fr [nav] 10px auto 1fr 6em [last])"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit13) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns, "repeat(100000000000000000000, 10% 1fr)"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit14) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "repeat(100000000000000000000, 10% 1fr)"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 1000000); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit15) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateColumns, "repeat(100000000000000000000, 10% 5em 1fr auto auto 15px min-content)"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); |
+} |
+ |
+TEST(CSSPropertyParserTest, GridTrackLimit16) |
+{ |
+ RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyGridTemplateRows, "repeat(100000000000000000000, 10% 5em 1fr auto auto 15px min-content)"); |
+ ASSERT_TRUE(value); |
+ ASSERT_TRUE(value->isValueList()); |
+ EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value.get())), 999999); |
} |
} // namespace blink |