Chromium Code Reviews| 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" | 
| 
 
tyoshino (SeeGerritForStatus)
2016/08/12 05:57:38
include sstream
 
tkent
2016/08/12 06:34:54
Done.
 
 | |
| 29 | 29 | 
| 30 namespace WTF { | 30 namespace WTF { | 
| 31 | 31 | 
| 32 namespace { | |
| 33 | |
| 34 CString printedString(const CString& string) | |
| 35 { | |
| 36 std::ostringstream output; | |
| 37 output << string; | |
| 38 const std::string& result = output.str(); | |
| 39 return CString(result.data(), result.length()); | |
| 40 } | |
| 41 | |
| 42 } // anonymous namespace | |
| 43 | |
| 32 TEST(CStringTest, NullStringConstructor) | 44 TEST(CStringTest, NullStringConstructor) | 
| 33 { | 45 { | 
| 34 CString string; | 46 CString string; | 
| 35 EXPECT_TRUE(string.isNull()); | 47 EXPECT_TRUE(string.isNull()); | 
| 36 EXPECT_EQ(static_cast<const char*>(0), string.data()); | 48 EXPECT_EQ(static_cast<const char*>(0), string.data()); | 
| 37 EXPECT_EQ(static_cast<size_t>(0), string.length()); | 49 EXPECT_EQ(static_cast<size_t>(0), string.length()); | 
| 38 | 50 | 
| 39 CString stringFromCharPointer(static_cast<const char*>(0)); | 51 CString stringFromCharPointer(static_cast<const char*>(0)); | 
| 40 EXPECT_TRUE(stringFromCharPointer.isNull()); | 52 EXPECT_TRUE(stringFromCharPointer.isNull()); | 
| 41 EXPECT_EQ(static_cast<const char*>(0), stringFromCharPointer.data()); | 53 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"; | 202 c = "a"; | 
| 191 d = ""; | 203 d = ""; | 
| 192 EXPECT_FALSE(c == d); | 204 EXPECT_FALSE(c == d); | 
| 193 EXPECT_TRUE(c != d); | 205 EXPECT_TRUE(c != d); | 
| 194 c = ""; | 206 c = ""; | 
| 195 d = "b"; | 207 d = "b"; | 
| 196 EXPECT_FALSE(c == d); | 208 EXPECT_FALSE(c == d); | 
| 197 EXPECT_TRUE(c != d); | 209 EXPECT_TRUE(c != d); | 
| 198 } | 210 } | 
| 199 | 211 | 
| 212 TEST(CStringTest, Printer) | |
| 213 { | |
| 214 EXPECT_EQ(CString("<null>"), printedString(CString())); | |
| 215 EXPECT_EQ(CString("\"abc\""), printedString("abc")); | |
| 216 EXPECT_EQ(CString("\"\\t\\n\\r\\\"\\\\\""), printedString("\t\n\r\"\\")); | |
| 217 EXPECT_EQ(CString("\"\\xFF\\x00\\x01\""), printedString(CString("\xff\0\x01" , 3))); | |
| 
 
tyoshino (SeeGerritForStatus)
2016/08/12 05:57:38
using CString also for the expectation side to che
 
tkent
2016/08/12 06:34:54
It isn't so meaningful.  I thought returning char*
 
tyoshino (SeeGerritForStatus)
2016/08/12 06:38:30
Acknowledged.
 
 | |
| 218 } | |
| 219 | |
| 200 } // namespace WTF | 220 } // namespace WTF | 
| OLD | NEW |