Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * Copyright (C) 2013 Apple Inc. All rights reserved. | 3 * Copyright (C) 2013 Apple Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 23 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 23 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| 24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 30 */ | 30 */ |
| 31 | 31 |
| 32 #include "config.h" | 32 #include "config.h" |
| 33 #include "wtf/text/StringBuilder.h" | |
| 33 | 34 |
| 34 #include "wtf/Assertions.h" | 35 #include "wtf/Assertions.h" |
| 35 #include "wtf/text/CString.h" | 36 #include "wtf/text/CString.h" |
| 36 #include "wtf/text/StringBuilder.h" | |
| 37 #include "wtf/text/WTFString.h" | 37 #include "wtf/text/WTFString.h" |
| 38 #include "wtf/unicode/CharacterNames.h" | 38 #include "wtf/unicode/CharacterNames.h" |
| 39 #include <gtest/gtest.h> | 39 #include <gtest/gtest.h> |
| 40 | 40 |
| 41 namespace WTF { | 41 namespace WTF { |
| 42 | 42 |
| 43 static std::ostream& operator<<(std::ostream& os, const String& string) | 43 static std::ostream& operator<<(std::ostream& os, const String& string) |
|
kochi
2015/06/15 03:34:22
How about using anonymous namespace to remove 'sta
tkent
2015/06/15 04:45:57
Remove operator<< by including wtf/testing/WTFTest
kochi
2015/06/15 04:54:45
Acknowledged.
| |
| 44 { | 44 { |
| 45 return os << string.utf8().data(); | 45 return os << string.utf8().data(); |
| 46 } | 46 } |
| 47 | 47 |
| 48 } | |
| 49 | |
| 50 namespace { | |
| 51 | |
| 52 static void expectBuilderContent(const String& expected, const StringBuilder& bu ilder) | 48 static void expectBuilderContent(const String& expected, const StringBuilder& bu ilder) |
| 53 { | 49 { |
| 54 // Not using builder.toString() because it changes internal state of builder . | 50 // Not using builder.toString() because it changes internal state of builder . |
| 55 if (builder.is8Bit()) | 51 if (builder.is8Bit()) |
| 56 EXPECT_EQ(expected, String(builder.characters8(), builder.length())); | 52 EXPECT_EQ(expected, String(builder.characters8(), builder.length())); |
| 57 else | 53 else |
| 58 EXPECT_EQ(expected, String(builder.characters16(), builder.length())); | 54 EXPECT_EQ(expected, String(builder.characters16(), builder.length())); |
| 59 } | 55 } |
| 60 | 56 |
| 61 void expectEmpty(const StringBuilder& builder) | 57 void expectEmpty(const StringBuilder& builder) |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 92 builder1.append(builder.characters8(), builder.length()); | 88 builder1.append(builder.characters8(), builder.length()); |
| 93 builder1.append("XYZ"); | 89 builder1.append("XYZ"); |
| 94 builder.append(builder1.characters8(), builder1.length()); | 90 builder.append(builder1.characters8(), builder1.length()); |
| 95 expectBuilderContent("0123456789abcdefg#0123456789abcdefg#XYZ", builder); | 91 expectBuilderContent("0123456789abcdefg#0123456789abcdefg#XYZ", builder); |
| 96 | 92 |
| 97 StringBuilder builder2; | 93 StringBuilder builder2; |
| 98 builder2.reserveCapacity(100); | 94 builder2.reserveCapacity(100); |
| 99 builder2.append("xyz"); | 95 builder2.append("xyz"); |
| 100 const LChar* characters = builder2.characters8(); | 96 const LChar* characters = builder2.characters8(); |
| 101 builder2.append("0123456789"); | 97 builder2.append("0123456789"); |
| 102 ASSERT_EQ(characters, builder2.characters8()); | 98 EXPECT_EQ(characters, builder2.characters8()); |
| 103 | 99 |
| 104 // Test appending UChar32 characters to StringBuilder. | 100 // Test appending UChar32 characters to StringBuilder. |
| 105 StringBuilder builderForUChar32Append; | 101 StringBuilder builderForUChar32Append; |
| 106 UChar32 frakturAChar = 0x1D504; | 102 UChar32 frakturAChar = 0x1D504; |
| 107 builderForUChar32Append.append(frakturAChar); // The fraktur A is not in the BMP, so it's two UTF-16 code units long. | 103 builderForUChar32Append.append(frakturAChar); // The fraktur A is not in the BMP, so it's two UTF-16 code units long. |
| 108 ASSERT_EQ(2U, builderForUChar32Append.length()); | 104 EXPECT_EQ(2U, builderForUChar32Append.length()); |
| 109 builderForUChar32Append.append(static_cast<UChar32>('A')); | 105 builderForUChar32Append.append(static_cast<UChar32>('A')); |
| 110 ASSERT_EQ(3U, builderForUChar32Append.length()); | 106 EXPECT_EQ(3U, builderForUChar32Append.length()); |
| 111 const UChar resultArray[] = { U16_LEAD(frakturAChar), U16_TRAIL(frakturAChar ), 'A' }; | 107 const UChar resultArray[] = { U16_LEAD(frakturAChar), U16_TRAIL(frakturAChar ), 'A' }; |
| 112 expectBuilderContent(String(resultArray, WTF_ARRAY_LENGTH(resultArray)), bui lderForUChar32Append); | 108 expectBuilderContent(String(resultArray, WTF_ARRAY_LENGTH(resultArray)), bui lderForUChar32Append); |
| 113 } | 109 } |
| 114 | 110 |
| 115 TEST(StringBuilderTest, ToString) | 111 TEST(StringBuilderTest, ToString) |
| 116 { | 112 { |
| 117 StringBuilder builder; | 113 StringBuilder builder; |
| 118 builder.append("0123456789"); | 114 builder.append("0123456789"); |
| 119 String string = builder.toString(); | 115 String string = builder.toString(); |
| 120 ASSERT_EQ(String("0123456789"), string); | 116 EXPECT_EQ(String("0123456789"), string); |
| 121 ASSERT_EQ(string.impl(), builder.toString().impl()); | 117 EXPECT_EQ(string.impl(), builder.toString().impl()); |
| 122 | 118 |
| 123 // Changing the StringBuilder should not affect the original result of toStr ing(). | 119 // Changing the StringBuilder should not affect the original result of toStr ing(). |
| 124 builder.append("abcdefghijklmnopqrstuvwxyz"); | 120 builder.append("abcdefghijklmnopqrstuvwxyz"); |
| 125 ASSERT_EQ(String("0123456789"), string); | 121 EXPECT_EQ(String("0123456789"), string); |
| 126 | 122 |
| 127 // Changing the StringBuilder should not affect the original result of toStr ing() in case the capacity is not changed. | 123 // Changing the StringBuilder should not affect the original result of toStr ing() in case the capacity is not changed. |
| 128 builder.reserveCapacity(200); | 124 builder.reserveCapacity(200); |
| 129 string = builder.toString(); | 125 string = builder.toString(); |
| 130 ASSERT_EQ(String("0123456789abcdefghijklmnopqrstuvwxyz"), string); | 126 EXPECT_EQ(String("0123456789abcdefghijklmnopqrstuvwxyz"), string); |
| 131 builder.append("ABC"); | 127 builder.append("ABC"); |
| 132 ASSERT_EQ(String("0123456789abcdefghijklmnopqrstuvwxyz"), string); | 128 EXPECT_EQ(String("0123456789abcdefghijklmnopqrstuvwxyz"), string); |
| 133 | 129 |
| 134 // Changing the original result of toString() should not affect the content of the StringBuilder. | 130 // Changing the original result of toString() should not affect the content of the StringBuilder. |
| 135 String string1 = builder.toString(); | 131 String string1 = builder.toString(); |
| 136 ASSERT_EQ(String("0123456789abcdefghijklmnopqrstuvwxyzABC"), string1); | 132 EXPECT_EQ(String("0123456789abcdefghijklmnopqrstuvwxyzABC"), string1); |
| 137 string1.append("DEF"); | 133 string1.append("DEF"); |
| 138 ASSERT_EQ(String("0123456789abcdefghijklmnopqrstuvwxyzABC"), builder.toStrin g()); | 134 EXPECT_EQ(String("0123456789abcdefghijklmnopqrstuvwxyzABC"), builder.toStrin g()); |
| 139 ASSERT_EQ(String("0123456789abcdefghijklmnopqrstuvwxyzABCDEF"), string1); | 135 EXPECT_EQ(String("0123456789abcdefghijklmnopqrstuvwxyzABCDEF"), string1); |
| 140 | 136 |
| 141 // Resizing the StringBuilder should not affect the original result of toStr ing(). | 137 // Resizing the StringBuilder should not affect the original result of toStr ing(). |
| 142 string1 = builder.toString(); | 138 string1 = builder.toString(); |
| 143 builder.resize(10); | 139 builder.resize(10); |
| 144 builder.append("###"); | 140 builder.append("###"); |
| 145 ASSERT_EQ(String("0123456789abcdefghijklmnopqrstuvwxyzABC"), string1); | 141 EXPECT_EQ(String("0123456789abcdefghijklmnopqrstuvwxyzABC"), string1); |
| 146 } | 142 } |
| 147 | 143 |
| 148 TEST(StringBuilderTest, Clear) | 144 TEST(StringBuilderTest, Clear) |
| 149 { | 145 { |
| 150 StringBuilder builder; | 146 StringBuilder builder; |
| 151 builder.append("0123456789"); | 147 builder.append("0123456789"); |
| 152 builder.clear(); | 148 builder.clear(); |
| 153 expectEmpty(builder); | 149 expectEmpty(builder); |
| 154 } | 150 } |
| 155 | 151 |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 180 EXPECT_EQ(7U, builder.length()); | 176 EXPECT_EQ(7U, builder.length()); |
| 181 expectBuilderContent("0123456", builder); | 177 expectBuilderContent("0123456", builder); |
| 182 builder.resize(0); | 178 builder.resize(0); |
| 183 expectEmpty(builder); | 179 expectEmpty(builder); |
| 184 } | 180 } |
| 185 | 181 |
| 186 TEST(StringBuilderTest, Equal) | 182 TEST(StringBuilderTest, Equal) |
| 187 { | 183 { |
| 188 StringBuilder builder1; | 184 StringBuilder builder1; |
| 189 StringBuilder builder2; | 185 StringBuilder builder2; |
| 190 ASSERT_TRUE(builder1 == builder2); | 186 EXPECT_TRUE(builder1 == builder2); |
| 191 ASSERT_TRUE(equal(builder1, static_cast<LChar*>(0), 0)); | 187 EXPECT_TRUE(equal(builder1, static_cast<LChar*>(0), 0)); |
| 192 ASSERT_TRUE(builder1 == String()); | 188 EXPECT_TRUE(builder1 == String()); |
| 193 ASSERT_TRUE(String() == builder1); | 189 EXPECT_TRUE(String() == builder1); |
| 194 ASSERT_TRUE(builder1 != String("abc")); | 190 EXPECT_TRUE(builder1 != String("abc")); |
| 195 | 191 |
| 196 builder1.append("123"); | 192 builder1.append("123"); |
| 197 builder1.reserveCapacity(32); | 193 builder1.reserveCapacity(32); |
| 198 builder2.append("123"); | 194 builder2.append("123"); |
| 199 builder1.reserveCapacity(64); | 195 builder1.reserveCapacity(64); |
| 200 ASSERT_TRUE(builder1 == builder2); | 196 EXPECT_TRUE(builder1 == builder2); |
| 201 ASSERT_TRUE(builder1 == String("123")); | 197 EXPECT_TRUE(builder1 == String("123")); |
| 202 ASSERT_TRUE(String("123") == builder1); | 198 EXPECT_TRUE(String("123") == builder1); |
| 203 | 199 |
| 204 builder2.append("456"); | 200 builder2.append("456"); |
| 205 ASSERT_TRUE(builder1 != builder2); | 201 EXPECT_TRUE(builder1 != builder2); |
| 206 ASSERT_TRUE(builder2 != builder1); | 202 EXPECT_TRUE(builder2 != builder1); |
| 207 ASSERT_TRUE(String("123") != builder2); | 203 EXPECT_TRUE(String("123") != builder2); |
| 208 ASSERT_TRUE(builder2 != String("123")); | 204 EXPECT_TRUE(builder2 != String("123")); |
| 209 builder2.toString(); // Test after reifyString(). | 205 builder2.toString(); // Test after reifyString(). |
| 210 ASSERT_TRUE(builder1 != builder2); | 206 EXPECT_TRUE(builder1 != builder2); |
| 211 | 207 |
| 212 builder2.resize(3); | 208 builder2.resize(3); |
| 213 ASSERT_TRUE(builder1 == builder2); | 209 EXPECT_TRUE(builder1 == builder2); |
| 214 | 210 |
| 215 builder1.toString(); // Test after reifyString(). | 211 builder1.toString(); // Test after reifyString(). |
| 216 ASSERT_TRUE(builder1 == builder2); | 212 EXPECT_TRUE(builder1 == builder2); |
| 217 } | 213 } |
| 218 | 214 |
| 219 TEST(StringBuilderTest, CanShrink) | 215 TEST(StringBuilderTest, CanShrink) |
| 220 { | 216 { |
| 221 StringBuilder builder; | 217 StringBuilder builder; |
| 222 builder.reserveCapacity(256); | 218 builder.reserveCapacity(256); |
| 223 ASSERT_TRUE(builder.canShrink()); | 219 EXPECT_TRUE(builder.canShrink()); |
| 224 for (int i = 0; i < 256; i++) | 220 for (int i = 0; i < 256; i++) |
| 225 builder.append('x'); | 221 builder.append('x'); |
| 226 ASSERT_EQ(builder.length(), builder.capacity()); | 222 EXPECT_EQ(builder.length(), builder.capacity()); |
| 227 ASSERT_FALSE(builder.canShrink()); | 223 EXPECT_FALSE(builder.canShrink()); |
| 228 } | 224 } |
| 229 | 225 |
| 230 TEST(StringBuilderTest, ToAtomicString) | 226 TEST(StringBuilderTest, ToAtomicString) |
| 231 { | 227 { |
| 232 StringBuilder builder; | 228 StringBuilder builder; |
| 233 builder.append("123"); | 229 builder.append("123"); |
| 234 AtomicString atomicString = builder.toAtomicString(); | 230 AtomicString atomicString = builder.toAtomicString(); |
| 235 ASSERT_EQ(String("123"), atomicString); | 231 EXPECT_EQ(String("123"), atomicString); |
| 236 | 232 |
| 237 builder.reserveCapacity(256); | 233 builder.reserveCapacity(256); |
| 238 ASSERT_TRUE(builder.canShrink()); | 234 EXPECT_TRUE(builder.canShrink()); |
| 239 for (int i = builder.length(); i < 128; i++) | 235 for (int i = builder.length(); i < 128; i++) |
| 240 builder.append('x'); | 236 builder.append('x'); |
| 241 AtomicString atomicString1 = builder.toAtomicString(); | 237 AtomicString atomicString1 = builder.toAtomicString(); |
| 242 ASSERT_EQ(128u, atomicString1.length()); | 238 EXPECT_EQ(128u, atomicString1.length()); |
| 243 ASSERT_EQ('x', atomicString1[127]); | 239 EXPECT_EQ('x', atomicString1[127]); |
| 244 | 240 |
| 245 // Later change of builder should not affect the atomic string. | 241 // Later change of builder should not affect the atomic string. |
| 246 for (int i = builder.length(); i < 256; i++) | 242 for (int i = builder.length(); i < 256; i++) |
| 247 builder.append('x'); | 243 builder.append('x'); |
| 248 ASSERT_EQ(128u, atomicString1.length()); | 244 EXPECT_EQ(128u, atomicString1.length()); |
| 249 | 245 |
| 250 ASSERT_FALSE(builder.canShrink()); | 246 EXPECT_FALSE(builder.canShrink()); |
| 251 String string = builder.toString(); | 247 String string = builder.toString(); |
| 252 AtomicString atomicString2 = builder.toAtomicString(); | 248 AtomicString atomicString2 = builder.toAtomicString(); |
| 253 // They should share the same StringImpl. | 249 // They should share the same StringImpl. |
| 254 ASSERT_EQ(atomicString2.impl(), string.impl()); | 250 EXPECT_EQ(atomicString2.impl(), string.impl()); |
| 255 } | 251 } |
| 256 | 252 |
| 257 TEST(StringBuilderTest, ToAtomicStringOnEmpty) | 253 TEST(StringBuilderTest, ToAtomicStringOnEmpty) |
| 258 { | 254 { |
| 259 { // Default constructed. | 255 { // Default constructed. |
| 260 StringBuilder builder; | 256 StringBuilder builder; |
| 261 AtomicString atomicString = builder.toAtomicString(); | 257 AtomicString atomicString = builder.toAtomicString(); |
| 262 ASSERT_EQ(emptyAtom, atomicString); | 258 EXPECT_EQ(emptyAtom, atomicString); |
| 263 } | 259 } |
| 264 { // With capacity. | 260 { // With capacity. |
| 265 StringBuilder builder; | 261 StringBuilder builder; |
| 266 builder.reserveCapacity(64); | 262 builder.reserveCapacity(64); |
| 267 AtomicString atomicString = builder.toAtomicString(); | 263 AtomicString atomicString = builder.toAtomicString(); |
| 268 ASSERT_EQ(emptyAtom, atomicString); | 264 EXPECT_EQ(emptyAtom, atomicString); |
| 269 } | 265 } |
| 270 { // AtomicString constructed from a null string. | 266 { // AtomicString constructed from a null string. |
| 271 StringBuilder builder; | 267 StringBuilder builder; |
| 272 builder.append(String()); | 268 builder.append(String()); |
| 273 AtomicString atomicString = builder.toAtomicString(); | 269 AtomicString atomicString = builder.toAtomicString(); |
| 274 ASSERT_EQ(emptyAtom, atomicString); | 270 EXPECT_EQ(emptyAtom, atomicString); |
| 275 } | 271 } |
| 276 { // AtomicString constructed from an empty string. | 272 { // AtomicString constructed from an empty string. |
| 277 StringBuilder builder; | 273 StringBuilder builder; |
| 278 builder.append(emptyString()); | 274 builder.append(emptyString()); |
| 279 AtomicString atomicString = builder.toAtomicString(); | 275 AtomicString atomicString = builder.toAtomicString(); |
| 280 ASSERT_EQ(emptyAtom, atomicString); | 276 EXPECT_EQ(emptyAtom, atomicString); |
| 281 } | 277 } |
| 282 { // AtomicString constructed from an empty StringBuilder. | 278 { // AtomicString constructed from an empty StringBuilder. |
| 283 StringBuilder builder; | 279 StringBuilder builder; |
| 284 StringBuilder emptyBuilder; | 280 StringBuilder emptyBuilder; |
| 285 builder.append(emptyBuilder); | 281 builder.append(emptyBuilder); |
| 286 AtomicString atomicString = builder.toAtomicString(); | 282 AtomicString atomicString = builder.toAtomicString(); |
| 287 ASSERT_EQ(emptyAtom, atomicString); | 283 EXPECT_EQ(emptyAtom, atomicString); |
| 288 } | 284 } |
| 289 { // AtomicString constructed from an empty char* string. | 285 { // AtomicString constructed from an empty char* string. |
| 290 StringBuilder builder; | 286 StringBuilder builder; |
| 291 builder.append("", 0); | 287 builder.append("", 0); |
| 292 AtomicString atomicString = builder.toAtomicString(); | 288 AtomicString atomicString = builder.toAtomicString(); |
| 293 ASSERT_EQ(emptyAtom, atomicString); | 289 EXPECT_EQ(emptyAtom, atomicString); |
| 294 } | 290 } |
| 295 { // Cleared StringBuilder. | 291 { // Cleared StringBuilder. |
| 296 StringBuilder builder; | 292 StringBuilder builder; |
| 297 builder.appendLiteral("WebKit"); | 293 builder.appendLiteral("WebKit"); |
| 298 builder.clear(); | 294 builder.clear(); |
| 299 AtomicString atomicString = builder.toAtomicString(); | 295 AtomicString atomicString = builder.toAtomicString(); |
| 300 ASSERT_EQ(emptyAtom, atomicString); | 296 EXPECT_EQ(emptyAtom, atomicString); |
| 301 } | 297 } |
| 302 } | 298 } |
| 303 | 299 |
| 304 TEST(StringBuilderTest, Substring) | 300 TEST(StringBuilderTest, Substring) |
| 305 { | 301 { |
| 306 { // Default constructed. | 302 { // Default constructed. |
| 307 StringBuilder builder; | 303 StringBuilder builder; |
| 308 String substring = builder.substring(0, 10); | 304 String substring = builder.substring(0, 10); |
| 309 ASSERT_EQ(emptyString(), substring); | 305 EXPECT_EQ(emptyString(), substring); |
| 310 } | 306 } |
| 311 { // With capacity. | 307 { // With capacity. |
| 312 StringBuilder builder; | 308 StringBuilder builder; |
| 313 builder.reserveCapacity(64); | 309 builder.reserveCapacity(64); |
| 314 builder.append("abc"); | 310 builder.append("abc"); |
| 315 String substring = builder.substring(2, 10); | 311 String substring = builder.substring(2, 10); |
| 316 ASSERT_EQ(String("c"), substring); | 312 EXPECT_EQ(String("c"), substring); |
| 317 } | 313 } |
| 318 } | 314 } |
| 319 | 315 |
| 320 TEST(StringBuilderTest, AppendNumberDoubleUChar) | 316 TEST(StringBuilderTest, AppendNumberDoubleUChar) |
| 321 { | 317 { |
| 322 const double someNumber = 1.2345; | 318 const double someNumber = 1.2345; |
| 323 StringBuilder reference; | 319 StringBuilder reference; |
| 324 reference.append(replacementCharacter); // Make it UTF-16. | 320 reference.append(replacementCharacter); // Make it UTF-16. |
| 325 reference.append(String::number(someNumber)); | 321 reference.append(String::number(someNumber)); |
| 326 StringBuilder test; | 322 StringBuilder test; |
| 327 test.append(replacementCharacter); | 323 test.append(replacementCharacter); |
| 328 test.appendNumber(someNumber); | 324 test.appendNumber(someNumber); |
| 329 ASSERT_EQ(reference, test); | 325 EXPECT_EQ(reference, test); |
| 330 } | 326 } |
| 331 | 327 |
| 332 } // namespace | 328 } // namespace WTF |
| OLD | NEW |