| 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 |