Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3247)

Unified Diff: base/values_unittest.cc

Issue 13230: Added std::string to Value via Set/GetString overloading. (Closed)
Patch Set: Final upload check. Created 12 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/values.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/values_unittest.cc
diff --git a/base/values_unittest.cc b/base/values_unittest.cc
index 67515ece3be87a1d3093206981996b507e8a2d6b..1a7808945c87e60eb35ba226b61961080dfd7303 100644
--- a/base/values_unittest.cc
+++ b/base/values_unittest.cc
@@ -93,6 +93,30 @@ TEST(ValuesTest, BinaryValue) {
delete binary;
}
+TEST(ValuesTest, StringValue) {
+ // Test overloaded CreateStringValue.
+ Value* narrow_value = Value::CreateStringValue("narrow");
+ ASSERT_TRUE(narrow_value);
+ ASSERT_TRUE(narrow_value->IsType(Value::TYPE_STRING));
+ Value* wide_value = Value::CreateStringValue(L"wide");
+ ASSERT_TRUE(wide_value);
+ ASSERT_TRUE(wide_value->IsType(Value::TYPE_STRING));
+
+ // Test overloaded GetString.
+ std::string narrow = "http://google.com";
+ std::wstring wide = L"http://google.com";
+ ASSERT_TRUE(narrow_value->GetAsString(&narrow));
+ ASSERT_TRUE(narrow_value->GetAsString(&wide));
+ ASSERT_EQ(std::string("narrow"), narrow);
+ ASSERT_EQ(std::wstring(L"narrow"), wide);
+ ASSERT_TRUE(wide_value->GetAsString(&narrow));
+ ASSERT_TRUE(wide_value->GetAsString(&wide));
+ ASSERT_EQ(std::string("wide"), narrow);
+ ASSERT_EQ(std::wstring(L"wide"), wide);
+ delete narrow_value;
+ delete wide_value;
+}
+
// This is a Value object that allows us to tell if it's been
// properly deleted by modifying the value of external flag on destruction.
class DeletionTestValue : public Value {
@@ -242,8 +266,10 @@ TEST(ValuesTest, DeepCopy) {
original_dict.Set(L"int", original_int);
Value* original_real = Value::CreateRealValue(3.14);
original_dict.Set(L"real", original_real);
- Value* original_string = Value::CreateStringValue(L"peek-a-boo");
+ Value* original_string = Value::CreateStringValue("hello");
original_dict.Set(L"string", original_string);
+ Value* original_wstring = Value::CreateStringValue(L"peek-a-boo");
+ original_dict.Set(L"wstring", original_wstring);
char* original_buffer = new char[42];
memset(original_buffer, '!', 42);
@@ -300,9 +326,22 @@ TEST(ValuesTest, DeepCopy) {
ASSERT_TRUE(copy_string);
ASSERT_NE(copy_string, original_string);
ASSERT_TRUE(copy_string->IsType(Value::TYPE_STRING));
- std::wstring copy_string_value;
+ std::string copy_string_value;
+ std::wstring copy_wstring_value;
ASSERT_TRUE(copy_string->GetAsString(&copy_string_value));
- ASSERT_EQ(std::wstring(L"peek-a-boo"), copy_string_value);
+ ASSERT_TRUE(copy_string->GetAsString(&copy_wstring_value));
+ ASSERT_EQ(std::string("hello"), copy_string_value);
+ ASSERT_EQ(std::wstring(L"hello"), copy_wstring_value);
+
+ Value* copy_wstring = NULL;
+ ASSERT_TRUE(copy_dict->Get(L"wstring", &copy_wstring));
+ ASSERT_TRUE(copy_wstring);
+ ASSERT_NE(copy_wstring, original_wstring);
+ ASSERT_TRUE(copy_wstring->IsType(Value::TYPE_STRING));
+ ASSERT_TRUE(copy_wstring->GetAsString(&copy_string_value));
+ ASSERT_TRUE(copy_wstring->GetAsString(&copy_wstring_value));
+ ASSERT_EQ(std::string("peek-a-boo"), copy_string_value);
+ ASSERT_EQ(std::wstring(L"peek-a-boo"), copy_wstring_value);
Value* copy_binary = NULL;
ASSERT_TRUE(copy_dict->Get(L"binary", &copy_binary));
@@ -360,7 +399,8 @@ TEST(ValuesTest, Equals) {
dv.SetBoolean(L"a", false);
dv.SetInteger(L"b", 2);
dv.SetReal(L"c", 2.5);
- dv.SetString(L"d", L"string");
+ dv.SetString(L"d1", "string");
+ dv.SetString(L"d2", L"string");
dv.Set(L"e", Value::CreateNullValue());
DictionaryValue* copy = static_cast<DictionaryValue*>(dv.DeepCopy());
« no previous file with comments | « base/values.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698