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 |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 EXPECT_EQ(0, uninitializedString.data()[length]); | 104 EXPECT_EQ(0, uninitializedString.data()[length]); |
105 } | 105 } |
106 | 106 |
107 TEST(CStringTest, ZeroTerminated) | 107 TEST(CStringTest, ZeroTerminated) |
108 { | 108 { |
109 const char* referenceString = "WebKit"; | 109 const char* referenceString = "WebKit"; |
110 CString stringWithLength(referenceString, 3); | 110 CString stringWithLength(referenceString, 3); |
111 EXPECT_EQ(0, stringWithLength.data()[3]); | 111 EXPECT_EQ(0, stringWithLength.data()[3]); |
112 } | 112 } |
113 | 113 |
114 TEST(CStringTest, CopyOnWrite) | |
115 { | |
116 const char* initialString = "Webkit"; | |
117 CString string(initialString); | |
118 CString copy = string; | |
119 | |
120 string.mutableData()[3] = 'K'; | |
121 EXPECT_TRUE(string != copy); | |
122 EXPECT_STREQ("WebKit", string.data()); | |
123 EXPECT_STREQ(initialString, copy.data()); | |
124 } | |
125 | |
126 TEST(CStringTest, Comparison) | 114 TEST(CStringTest, Comparison) |
127 { | 115 { |
128 // Comparison with another CString. | 116 // Comparison with another CString. |
129 CString a; | 117 CString a; |
130 CString b; | 118 CString b; |
131 EXPECT_TRUE(a == b); | 119 EXPECT_TRUE(a == b); |
132 EXPECT_FALSE(a != b); | 120 EXPECT_FALSE(a != b); |
133 a = "a"; | 121 a = "a"; |
134 b = CString(); | 122 b = CString(); |
135 EXPECT_FALSE(a == b); | 123 EXPECT_FALSE(a == b); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 | 200 |
213 TEST(CStringTest, Printer) | 201 TEST(CStringTest, Printer) |
214 { | 202 { |
215 EXPECT_STREQ("<null>", printedString(CString()).data()); | 203 EXPECT_STREQ("<null>", printedString(CString()).data()); |
216 EXPECT_STREQ("\"abc\"", printedString("abc").data()); | 204 EXPECT_STREQ("\"abc\"", printedString("abc").data()); |
217 EXPECT_STREQ("\"\\t\\n\\r\\\"\\\\\"", printedString("\t\n\r\"\\").data()); | 205 EXPECT_STREQ("\"\\t\\n\\r\\\"\\\\\"", printedString("\t\n\r\"\\").data()); |
218 EXPECT_STREQ("\"\\xFF\\x00\\x01xyz\"", printedString(CString("\xff\0\x01xyz"
, 6)).data()); | 206 EXPECT_STREQ("\"\\xFF\\x00\\x01xyz\"", printedString(CString("\xff\0\x01xyz"
, 6)).data()); |
219 } | 207 } |
220 | 208 |
221 } // namespace WTF | 209 } // namespace WTF |
OLD | NEW |