1/* 2 * Copyright 2013, Google Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are 6 * met: 7 * 8 * * Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * * Redistributions in binary form must reproduce the above 11 * copyright notice, this list of conditions and the following disclaimer 12 * in the documentation and/or other materials provided with the 13 * distribution. 14 * * Neither the name of Google Inc. nor the names of its 15 * contributors may be used to endorse or promote products derived from 16 * this software without specific prior written permission. 17 * 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 */ 30 31#include "config.h" 32#include "core/css/parser/CSSParserValues.h" 33 34#include <gtest/gtest.h> 35 36using namespace blink; 37 38namespace { 39 40TEST(CSSParserValuesTest, InitWithEmpty8BitsString) 41{ 42 String string8bit("a"); 43 44 CSSParserString cssParserString; 45 cssParserString.init(string8bit, 1, 0); 46 ASSERT_EQ(0u, cssParserString.length()); 47} 48 49TEST(CSSParserValuesTest, InitWithEmpty16BitsString) 50{ 51 String string16bit("a"); 52 string16bit.ensure16Bit(); 53 54 CSSParserString cssParserString; 55 cssParserString.init(string16bit, 1, 0); 56 ASSERT_EQ(0u, cssParserString.length()); 57} 58 59TEST(CSSParserValuesTest, EqualIgnoringCase8BitsString) 60{ 61 CSSParserString cssParserString; 62 String string8bit("sHaDOw"); 63 cssParserString.init(string8bit, 0, string8bit.length()); 64 65 ASSERT_TRUE(cssParserString.equalIgnoringCase("shadow")); 66 ASSERT_TRUE(cssParserString.equalIgnoringCase("ShaDow")); 67 ASSERT_FALSE(cssParserString.equalIgnoringCase("shadow-all")); 68 ASSERT_FALSE(cssParserString.equalIgnoringCase("sha")); 69 ASSERT_FALSE(cssParserString.equalIgnoringCase("abCD")); 70} 71 72TEST(CSSParserValuesTest, EqualIgnoringCase16BitsString) 73{ 74 String string16bit("sHaDOw"); 75 string16bit.ensure16Bit(); 76 77 CSSParserString cssParserString; 78 cssParserString.init(string16bit, 0, string16bit.length()); 79 80 ASSERT_TRUE(cssParserString.equalIgnoringCase("shadow")); 81 ASSERT_TRUE(cssParserString.equalIgnoringCase("ShaDow")); 82 ASSERT_FALSE(cssParserString.equalIgnoringCase("shadow-all")); 83 ASSERT_FALSE(cssParserString.equalIgnoringCase("sha")); 84 ASSERT_FALSE(cssParserString.equalIgnoringCase("abCD")); 85} 86 87TEST(CSSParserValuesTest, CSSParserValuelistClear) 88{ 89 CSSParserValueList list; 90 for (int i = 0; i < 3; ++i) { 91 CSSParserValue value; 92 value.setFromNumber(3); 93 list.addValue(value); 94 } 95 list.clearAndLeakValues(); 96 ASSERT_FALSE(list.size()); 97 ASSERT_FALSE(list.currentIndex()); 98} 99 100} // namespace 101