1e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch/* 2e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * Copyright (C) 2013 Google Inc. All rights reserved. 3e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * 4e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * Redistribution and use in source and binary forms, with or without 5e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * modification, are permitted provided that the following conditions are 6e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * met: 7e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * 8e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * * Redistributions of source code must retain the above copyright 9e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * notice, this list of conditions and the following disclaimer. 10e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * * Redistributions in binary form must reproduce the above 11e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * copyright notice, this list of conditions and the following disclaimer 12e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * in the documentation and/or other materials provided with the 13e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * distribution. 14e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * * Neither the name of Google Inc. nor the names of its 15e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * contributors may be used to endorse or promote products derived from 16e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * this software without specific prior written permission. 17e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * 18e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch */ 30e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 31e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#include "config.h" 32e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#include "core/html/HTMLDimension.h" 33e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 34e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#include "wtf/text/WTFString.h" 35e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#include <gtest/gtest.h> 36e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 37c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 38e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 39e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch// This assertion-prettify function needs to be in the WebCore namespace. 407757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdochvoid PrintTo(const HTMLDimension& dimension, ::std::ostream* os) 41e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 427757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch *os << "HTMLDimension => type: " << dimension.type() << ", value=" << dimension.value(); 43e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 44e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 45e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 46e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 47c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)using namespace blink; 48e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 49e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdochnamespace { 50e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 51e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsEmptyString) 52e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 537757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("")); 547757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(Vector<HTMLDimension>(), result); 55e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 56e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 57e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsNoNumberAbsolute) 58e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 597757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String(" \t")); 60e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 617757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(0, HTMLDimension::Relative), result[0]); 62e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 63e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 64e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsNoNumberPercent) 65e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 667757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String(" \t%")); 67e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 687757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(0, HTMLDimension::Percentage), result[0]); 69e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 70e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 71e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsNoNumberRelative) 72e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 737757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("\t *")); 74e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 757757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(0, HTMLDimension::Relative), result[0]); 76e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 77e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 78e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsSingleAbsolute) 79e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 807757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("10")); 81e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 82e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 837757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(10, HTMLDimension::Absolute), result[0]); 84e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 85e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 86e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsSinglePercentageWithSpaces) 87e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 887757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("50 %")); 89e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 90e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 917757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(50, HTMLDimension::Percentage), result[0]); 92e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 93e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 94e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsSingleRelative) 95e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 967757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("25*")); 97e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 98e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 997757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(25, HTMLDimension::Relative), result[0]); 100e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 101e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 102e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsDoubleAbsolute) 103e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 1047757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("10.054")); 105e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 106e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 1077757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(10.054, HTMLDimension::Absolute), result[0]); 108e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 109e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 110e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsLeadingSpaceAbsolute) 111e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 1127757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("\t \t 10")); 113e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 114e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 1157757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(10, HTMLDimension::Absolute), result[0]); 116e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 117e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 118e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsLeadingSpaceRelative) 119e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 1207757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String(" \r25*")); 121e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 122e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 1237757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(25, HTMLDimension::Relative), result[0]); 124e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 125e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 126e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsLeadingSpacePercentage) 127e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 1287757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("\n 25%")); 129e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 130e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 1317757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(25, HTMLDimension::Percentage), result[0]); 132e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 133e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 134e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsDoublePercentage) 135e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 1367757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("10.054%")); 137e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 138e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 1397757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(10.054, HTMLDimension::Percentage), result[0]); 140e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 141e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 142e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsDoubleRelative) 143e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 1447757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("10.054*")); 145e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 146e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 1477757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(10.054, HTMLDimension::Relative), result[0]); 148e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 149e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 150e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsSpacesInIntegerDoubleAbsolute) 151e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 1527757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("1\n0 .025%")); 153e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 154e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 1557757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(1, HTMLDimension::Absolute), result[0]); 156e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 157e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 158e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsSpacesInIntegerDoublePercent) 159e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 1607757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("1\n0 .025%")); 161e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 162e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 1637757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(1, HTMLDimension::Absolute), result[0]); 164e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 165e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 166e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsSpacesInIntegerDoubleRelative) 167e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 1687757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("1\n0 .025*")); 169e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 170e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 1717757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(1, HTMLDimension::Absolute), result[0]); 172e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 173e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 174e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsSpacesInFractionAfterDotDoublePercent) 175e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 1767757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("10. 0 25%")); 177e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 178e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 1797757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(10.025, HTMLDimension::Percentage), result[0]); 180e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 181e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 182e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsSpacesInFractionAfterDigitDoublePercent) 183e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 1847757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("10.05\r25%")); 185e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 186e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 1877757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(10.0525, HTMLDimension::Percentage), result[0]); 188e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 189e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 190e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsTrailingComma) 191e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 1927757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("10,")); 193e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 194e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(1U, result.size()); 1957757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(10, HTMLDimension::Absolute), result[0]); 196e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 197e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 198e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsTwoDimensions) 199e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 2007757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("10*,25 %")); 201e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 202e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(2U, result.size()); 2037757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(10, HTMLDimension::Relative), result[0]); 2047757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(25, HTMLDimension::Percentage), result[1]); 205e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 206e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 207e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsMultipleDimensionsWithSpaces) 208e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 2097757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("10 * ,\t25 , 10.05\n5%")); 210e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 211e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(3U, result.size()); 2127757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(10, HTMLDimension::Relative), result[0]); 2137757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(25, HTMLDimension::Absolute), result[1]); 2147757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(10.055, HTMLDimension::Percentage), result[2]); 215e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 216e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 217e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben MurdochTEST(WebCoreHTMLDimension, parseListOfDimensionsMultipleDimensionsWithOneEmpty) 218e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch{ 2197757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch Vector<HTMLDimension> result = parseListOfDimensions(String("2*,,8.%")); 220e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 221e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch ASSERT_EQ(3U, result.size()); 2227757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(2, HTMLDimension::Relative), result[0]); 2237757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(0, HTMLDimension::Relative), result[1]); 2247757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ASSERT_EQ(HTMLDimension(8., HTMLDimension::Percentage), result[2]); 225e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 226e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 227e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} 228