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