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

Side by Side Diff: third_party/WebKit/Source/core/html/HTMLDimensionTest.cpp

Issue 2528673003: Rework the "rules for parsing dimension values" implementation (Closed)
Patch Set: Rebase; clarify comment. 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 191
192 TEST(HTMLDimensionTest, parseListOfDimensionsMultipleDimensionsWithOneEmpty) { 192 TEST(HTMLDimensionTest, parseListOfDimensionsMultipleDimensionsWithOneEmpty) {
193 Vector<HTMLDimension> result = parseListOfDimensions(String("2*,,8.%")); 193 Vector<HTMLDimension> result = parseListOfDimensions(String("2*,,8.%"));
194 194
195 ASSERT_EQ(3U, result.size()); 195 ASSERT_EQ(3U, result.size());
196 ASSERT_EQ(HTMLDimension(2, HTMLDimension::Relative), result[0]); 196 ASSERT_EQ(HTMLDimension(2, HTMLDimension::Relative), result[0]);
197 ASSERT_EQ(HTMLDimension(0, HTMLDimension::Relative), result[1]); 197 ASSERT_EQ(HTMLDimension(0, HTMLDimension::Relative), result[1]);
198 ASSERT_EQ(HTMLDimension(8., HTMLDimension::Percentage), result[2]); 198 ASSERT_EQ(HTMLDimension(8., HTMLDimension::Percentage), result[2]);
199 } 199 }
200 200
201 TEST(HTMLDimensionTest, parseDimensionValueEmptyString) {
202 HTMLDimension dimension;
203 EXPECT_FALSE(parseDimensionValue(String(""), dimension));
204 }
205
206 TEST(HTMLDimensionTest, parseDimensionValueSpacesOnly) {
207 HTMLDimension dimension;
208 EXPECT_FALSE(parseDimensionValue(String(" "), dimension));
209 }
210
211 TEST(HTMLDimensionTest, parseDimensionValueAllowedSpaces) {
212 HTMLDimension dimension;
213 EXPECT_TRUE(parseDimensionValue(String(" \t\f\r\n10"), dimension));
214 EXPECT_EQ(HTMLDimension(10, HTMLDimension::Absolute), dimension);
215 }
216
217 TEST(HTMLDimensionTest, parseDimensionValueLeadingPlus) {
218 HTMLDimension dimension;
219 EXPECT_FALSE(parseDimensionValue(String("+10"), dimension));
220 }
221
222 TEST(HTMLDimensionTest, parseDimensionValueAbsolute) {
223 HTMLDimension dimension;
224 EXPECT_TRUE(parseDimensionValue(String("10"), dimension));
225 EXPECT_EQ(HTMLDimension(10, HTMLDimension::Absolute), dimension);
226 }
227
228 TEST(HTMLDimensionTest, parseDimensionValueAbsoluteFraction) {
229 HTMLDimension dimension;
230 EXPECT_TRUE(parseDimensionValue(String("10.50"), dimension));
231 EXPECT_EQ(HTMLDimension(10.5, HTMLDimension::Absolute), dimension);
232 }
233
234 TEST(HTMLDimensionTest, parseDimensionValueAbsoluteDotNoFraction) {
235 HTMLDimension dimension;
236 EXPECT_TRUE(parseDimensionValue(String("10.%"), dimension));
237 EXPECT_EQ(HTMLDimension(10, HTMLDimension::Percentage), dimension);
238 }
239
240 TEST(HTMLDimensionTest, parseDimensionValueAbsoluteTrailingGarbage) {
241 HTMLDimension dimension;
242 EXPECT_TRUE(parseDimensionValue(String("10foo"), dimension));
243 EXPECT_EQ(HTMLDimension(10, HTMLDimension::Absolute), dimension);
244 }
245
246 TEST(HTMLDimensionTest, parseDimensionValueAbsoluteTrailingGarbageAfterSpace) {
247 HTMLDimension dimension;
248 EXPECT_TRUE(parseDimensionValue(String("10 foo"), dimension));
249 EXPECT_EQ(HTMLDimension(10, HTMLDimension::Absolute), dimension);
250 }
251
252 TEST(HTMLDimensionTest, parseDimensionValuePercentage) {
253 HTMLDimension dimension;
254 EXPECT_TRUE(parseDimensionValue(String("10%"), dimension));
255 EXPECT_EQ(HTMLDimension(10, HTMLDimension::Percentage), dimension);
256 }
257
258 TEST(HTMLDimensionTest, parseDimensionValueRelative) {
259 HTMLDimension dimension;
260 EXPECT_TRUE(parseDimensionValue(String("10*"), dimension));
261 EXPECT_EQ(HTMLDimension(10, HTMLDimension::Relative), dimension);
262 }
263
264 TEST(HTMLDimensionTest, parseDimensionValueInvalidNumberFormatDot) {
265 HTMLDimension dimension;
266 EXPECT_FALSE(parseDimensionValue(String(".50"), dimension));
267 }
268
269 TEST(HTMLDimensionTest, parseDimensionValueInvalidNumberFormatExponent) {
270 HTMLDimension dimension;
271 EXPECT_TRUE(parseDimensionValue(String("10e10"), dimension));
272 EXPECT_EQ(HTMLDimension(10, HTMLDimension::Absolute), dimension);
273 }
274
201 } // namespace blink 275 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/html/HTMLDimension.cpp ('k') | third_party/WebKit/Source/core/html/HTMLElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698