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

Unified Diff: third_party/WebKit/Source/core/css/parser/CSSPropertyParserTest.cpp

Issue 2546993002: [css-grid] Fix crash clamping grid lines (Closed)
Patch Set: Use clampTo() Created 4 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 b6fa6b96ef010438e0a5fdaedb4388b661e9041a..e485e30c60f060d106c0ad12c46333c4ef26daed 100644
--- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParserTest.cpp
+++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParserTest.cpp
@@ -156,4 +156,69 @@ TEST(CSSPropertyParserTest, GridTrackLimit16) {
EXPECT_EQ(computeNumberOfTracks(toCSSValueList(value)), 999999);
}
+static int getGridPositionInteger(const CSSValue& value) {
+ DCHECK(value.isValueList());
+ const auto& list = toCSSValueList(value);
+ DCHECK_EQ(list.length(), static_cast<size_t>(1));
+ const auto& primitiveValue = toCSSPrimitiveValue(list.item(0));
+ DCHECK(primitiveValue.isNumber());
+ return primitiveValue.getIntValue();
+}
+
+TEST(CSSPropertyParserTest, GridPositionLimit1) {
+ const CSSValue* value =
+ CSSParser::parseSingleValue(CSSPropertyGridColumnStart, "999999");
+ DCHECK(value);
+ EXPECT_EQ(getGridPositionInteger(*value), 999999);
+}
+
+TEST(CSSPropertyParserTest, GridPositionLimit2) {
+ const CSSValue* value =
+ CSSParser::parseSingleValue(CSSPropertyGridColumnEnd, "1000000");
+ DCHECK(value);
+ EXPECT_EQ(getGridPositionInteger(*value), 1000000);
+}
+
+TEST(CSSPropertyParserTest, GridPositionLimit3) {
+ const CSSValue* value =
+ CSSParser::parseSingleValue(CSSPropertyGridRowStart, "1000001");
+ DCHECK(value);
+ EXPECT_EQ(getGridPositionInteger(*value), 1000000);
+}
+
+TEST(CSSPropertyParserTest, GridPositionLimit4) {
+ const CSSValue* value =
+ CSSParser::parseSingleValue(CSSPropertyGridRowEnd, "5000000000");
+ DCHECK(value);
+ EXPECT_EQ(getGridPositionInteger(*value), 1000000);
+}
+
+TEST(CSSPropertyParserTest, GridPositionLimit5) {
+ const CSSValue* value =
+ CSSParser::parseSingleValue(CSSPropertyGridColumnStart, "-999999");
+ DCHECK(value);
+ EXPECT_EQ(getGridPositionInteger(*value), -999999);
+}
+
+TEST(CSSPropertyParserTest, GridPositionLimit6) {
+ const CSSValue* value =
+ CSSParser::parseSingleValue(CSSPropertyGridColumnEnd, "-1000000");
+ DCHECK(value);
+ EXPECT_EQ(getGridPositionInteger(*value), -1000000);
+}
+
+TEST(CSSPropertyParserTest, GridPositionLimit7) {
+ const CSSValue* value =
+ CSSParser::parseSingleValue(CSSPropertyGridRowStart, "-1000001");
+ DCHECK(value);
+ EXPECT_EQ(getGridPositionInteger(*value), -1000000);
+}
+
+TEST(CSSPropertyParserTest, GridPositionLimit8) {
+ const CSSValue* value =
+ CSSParser::parseSingleValue(CSSPropertyGridRowEnd, "-5000000000");
+ DCHECK(value);
+ EXPECT_EQ(getGridPositionInteger(*value), -1000000);
+}
+
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698