Index: core/fxcrt/fx_basic_wstring_unittest.cpp |
diff --git a/core/fxcrt/fx_basic_wstring_unittest.cpp b/core/fxcrt/fx_basic_wstring_unittest.cpp |
index 708556af1d1299ead0ed251984a98070f3a4d26d..0750babd515fb5e2edc2e645d38391aa83dd7de1 100644 |
--- a/core/fxcrt/fx_basic_wstring_unittest.cpp |
+++ b/core/fxcrt/fx_basic_wstring_unittest.cpp |
@@ -591,6 +591,84 @@ TEST(fxcrt, WideStringTrimLeftCopies) { |
} |
} |
+TEST(fxcrt, WideStringReserve) { |
+ { |
+ CFX_WideString str; |
+ str.Reserve(6); |
+ const FX_WCHAR* old_buffer = str.c_str(); |
+ str += L"ABCDEF"; |
+ EXPECT_EQ(old_buffer, str.c_str()); |
+ str += L"Blah Blah Blah Blah Blah Blah"; |
+ EXPECT_NE(old_buffer, str.c_str()); |
+ } |
+ { |
+ CFX_WideString str(L"A"); |
+ str.Reserve(6); |
+ const FX_WCHAR* old_buffer = str.c_str(); |
+ str.TrimLeft(); |
Lei Zhang
2016/04/26 18:51:12
The bytestring version doesn't have this. Intentio
Tom Sepez
2016/04/26 18:57:11
Argh, cut n paste fail.
|
+ str += L"BCDEF"; |
+ EXPECT_EQ(old_buffer, str.c_str()); |
+ str += L"Blah Blah Blah Blah Blah Blah"; |
+ EXPECT_NE(old_buffer, str.c_str()); |
+ } |
+} |
+ |
+TEST(fxcrt, WideStringGetBuffer) { |
+ { |
+ CFX_WideString str; |
+ FX_WCHAR* buffer = str.GetBuffer(12); |
+ wcscpy(buffer, L"clams"); |
+ str.ReleaseBuffer(); |
+ EXPECT_EQ(L"clams", str); |
+ } |
+ { |
+ CFX_WideString str(L"cl"); |
+ FX_WCHAR* buffer = str.GetBuffer(12); |
+ wcscpy(buffer + 2, L"ams"); |
+ str.ReleaseBuffer(); |
+ EXPECT_EQ(L"clams", str); |
+ } |
+} |
+ |
+TEST(fxcrt, WideStringReleaseBuffer) { |
+ { |
+ CFX_WideString str; |
+ str.Reserve(12); |
+ str += L"clams"; |
+ const FX_WCHAR* old_buffer = str.c_str(); |
+ str.ReleaseBuffer(4); |
+ EXPECT_EQ(old_buffer, str.c_str()); |
+ EXPECT_EQ(L"clam", str); |
+ } |
+ { |
+ CFX_WideString str(L"c"); |
+ str.Reserve(12); |
+ str += L"lams"; |
+ const FX_WCHAR* old_buffer = str.c_str(); |
+ str.ReleaseBuffer(4); |
+ EXPECT_EQ(old_buffer, str.c_str()); |
+ EXPECT_EQ(L"clam", str); |
+ } |
+ { |
+ CFX_WideString str; |
+ str.Reserve(200); |
+ str += L"clams"; |
+ const FX_WCHAR* old_buffer = str.c_str(); |
+ str.ReleaseBuffer(4); |
+ EXPECT_NE(old_buffer, str.c_str()); |
+ EXPECT_EQ(L"clam", str); |
+ } |
+ { |
+ CFX_WideString str(L"c"); |
+ str.Reserve(200); |
+ str += L"lams"; |
+ const FX_WCHAR* old_buffer = str.c_str(); |
+ str.ReleaseBuffer(4); |
+ EXPECT_NE(old_buffer, str.c_str()); |
+ EXPECT_EQ(L"clam", str); |
+ } |
+} |
+ |
TEST(fxcrt, WideStringUTF16LE_Encode) { |
struct UTF16LEEncodeCase { |
CFX_WideString ws; |