1 /* 2 * Copyright (C) 2013 Samsung Electronics. 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 "AtomicString.h" 33 34 #include <gtest/gtest.h> 35 36 namespace { 37 38 TEST(AtomicStringTest, Number) 39 { 40 int intValue = 1234; 41 ASSERT_EQ(AtomicString::number(intValue), "1234"); 42 intValue = -1234; 43 ASSERT_EQ(AtomicString::number(intValue), "-1234"); 44 unsigned unsignedValue = 1234u; 45 ASSERT_EQ(AtomicString::number(unsignedValue), "1234"); 46 long longValue = 6553500; 47 ASSERT_EQ(AtomicString::number(longValue), "6553500"); 48 longValue = -6553500; 49 ASSERT_EQ(AtomicString::number(longValue), "-6553500"); 50 unsigned long unsignedLongValue = 4294967295u; 51 ASSERT_EQ(AtomicString::number(unsignedLongValue), "4294967295"); 52 long long longlongValue = 9223372036854775807; 53 ASSERT_EQ(AtomicString::number(longlongValue), "9223372036854775807"); 54 longlongValue = -9223372036854775807; 55 ASSERT_EQ(AtomicString::number(longlongValue), "-9223372036854775807"); 56 unsigned long long unsignedLongLongValue = 18446744073709551615u; 57 ASSERT_EQ(AtomicString::number(unsignedLongLongValue), "18446744073709551615"); 58 double doubleValue = 1234.56; 59 ASSERT_EQ(AtomicString::number(doubleValue), "1234.56"); 60 doubleValue = 1234.56789; 61 ASSERT_EQ(AtomicString::number(doubleValue, 9), "1234.56789"); 62 } 63 64 TEST(AtomicStringTest, ImplEquality) 65 { 66 AtomicString foo("foo"); 67 AtomicString bar("bar"); 68 AtomicString baz("baz"); 69 AtomicString foo2("foo"); 70 AtomicString baz2("baz"); 71 AtomicString bar2("bar"); 72 ASSERT_EQ(foo.impl(), foo2.impl()); 73 ASSERT_EQ(bar.impl(), bar2.impl()); 74 ASSERT_EQ(baz.impl(), baz2.impl()); 75 ASSERT_NE(foo.impl(), bar.impl()); 76 ASSERT_NE(foo.impl(), baz.impl()); 77 ASSERT_NE(bar.impl(), baz.impl()); 78 } 79 80 } // namespace 81