| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2012 Apple 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 | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| 11 * documentation and/or other materials provided with the distribution. | 11 * documentation and/or other materials provided with the distribution. |
| 12 * | 12 * |
| 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' | 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' |
| 14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, | 14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
| 15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS | 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS |
| 17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| 18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| 19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| 20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| 21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| 22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF | 22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |
| 23 * THE POSSIBILITY OF SUCH DAMAGE. | 23 * THE POSSIBILITY OF SUCH DAMAGE. |
| 24 */ | 24 */ |
| 25 | 25 |
| 26 #include "wtf/text/CString.h" | 26 #include "wtf/text/CString.h" |
| 27 | 27 |
| 28 #include "testing/gtest/include/gtest/gtest.h" | 28 #include "testing/gtest/include/gtest/gtest.h" |
| 29 #include <sstream> |
| 29 | 30 |
| 30 namespace WTF { | 31 namespace WTF { |
| 31 | 32 |
| 33 namespace { |
| 34 |
| 35 CString printedString(const CString& string) |
| 36 { |
| 37 std::ostringstream output; |
| 38 output << string; |
| 39 const std::string& result = output.str(); |
| 40 return CString(result.data(), result.length()); |
| 41 } |
| 42 |
| 43 } // anonymous namespace |
| 44 |
| 32 TEST(CStringTest, NullStringConstructor) | 45 TEST(CStringTest, NullStringConstructor) |
| 33 { | 46 { |
| 34 CString string; | 47 CString string; |
| 35 EXPECT_TRUE(string.isNull()); | 48 EXPECT_TRUE(string.isNull()); |
| 36 EXPECT_EQ(static_cast<const char*>(0), string.data()); | 49 EXPECT_EQ(static_cast<const char*>(0), string.data()); |
| 37 EXPECT_EQ(static_cast<size_t>(0), string.length()); | 50 EXPECT_EQ(static_cast<size_t>(0), string.length()); |
| 38 | 51 |
| 39 CString stringFromCharPointer(static_cast<const char*>(0)); | 52 CString stringFromCharPointer(static_cast<const char*>(0)); |
| 40 EXPECT_TRUE(stringFromCharPointer.isNull()); | 53 EXPECT_TRUE(stringFromCharPointer.isNull()); |
| 41 EXPECT_EQ(static_cast<const char*>(0), stringFromCharPointer.data()); | 54 EXPECT_EQ(static_cast<const char*>(0), stringFromCharPointer.data()); |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 c = "a"; | 203 c = "a"; |
| 191 d = ""; | 204 d = ""; |
| 192 EXPECT_FALSE(c == d); | 205 EXPECT_FALSE(c == d); |
| 193 EXPECT_TRUE(c != d); | 206 EXPECT_TRUE(c != d); |
| 194 c = ""; | 207 c = ""; |
| 195 d = "b"; | 208 d = "b"; |
| 196 EXPECT_FALSE(c == d); | 209 EXPECT_FALSE(c == d); |
| 197 EXPECT_TRUE(c != d); | 210 EXPECT_TRUE(c != d); |
| 198 } | 211 } |
| 199 | 212 |
| 213 TEST(CStringTest, Printer) |
| 214 { |
| 215 EXPECT_STREQ("<null>", printedString(CString()).data()); |
| 216 EXPECT_STREQ("\"abc\"", printedString("abc").data()); |
| 217 EXPECT_STREQ("\"\\t\\n\\r\\\"\\\\\"", printedString("\t\n\r\"\\").data()); |
| 218 EXPECT_STREQ("\"\\xFF\\x00\\x01xyz\"", printedString(CString("\xff\0\x01xyz"
, 6)).data()); |
| 219 } |
| 220 |
| 200 } // namespace WTF | 221 } // namespace WTF |
| OLD | NEW |