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

Unified Diff: base/values_unittest.cc

Issue 2558023002: Inline FundamentalValue into base::Value (Closed)
Patch Set: Value(Type) initializes with the default value Created 4 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
« base/values.cc ('K') | « 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 873b7b7a970cb3ccb8e3571f71c2f2396a5eea6e..c3f2a5269878cefc65d2b17d570e70068171cd26 100644
--- a/base/values_unittest.cc
+++ b/base/values_unittest.cc
@@ -17,6 +17,141 @@
namespace base {
+// Group of tests for the value constructors.
+TEST(ValuesTest, ConstructBool) {
+ FundamentalValue true_value(true);
+ EXPECT_EQ(Value::Type::BOOLEAN, true_value.type());
+ EXPECT_TRUE(true_value.GetBool());
+
+ FundamentalValue false_value(false);
+ EXPECT_EQ(Value::Type::BOOLEAN, false_value.type());
+ EXPECT_FALSE(false_value.GetBool());
+}
+
+TEST(ValuesTest, ConstructInt) {
+ FundamentalValue value(-37);
+ EXPECT_EQ(Value::Type::INTEGER, value.type());
+ EXPECT_EQ(-37, value.GetInt());
+}
+
+TEST(ValuesTest, ConstructDouble) {
+ FundamentalValue value(-4.655);
+ EXPECT_EQ(Value::Type::DOUBLE, value.type());
+ EXPECT_EQ(-4.655, value.GetDouble());
+}
+
+// Group of tests for the copy constructors and copy-assigmnent. For equality
+// checks comparisons of the interesting fields are done instead of relying on
+// Equals being correct.
+TEST(ValuesTest, CopyBool) {
+ FundamentalValue true_value(true);
+ FundamentalValue copied_true_value(true_value);
+ EXPECT_EQ(true_value.type(), copied_true_value.type());
+ EXPECT_EQ(true_value.GetBool(), copied_true_value.GetBool());
+
+ FundamentalValue false_value(false);
+ FundamentalValue copied_false_value(false_value);
+ EXPECT_EQ(false_value.type(), copied_false_value.type());
+ EXPECT_EQ(false_value.GetBool(), copied_false_value.GetBool());
+
+ // TODO(crbug.com/646113): Create a Type::NONE value once the assignment
+ // operator of base::Value is public.
+ FundamentalValue blank(123);
+
+ blank = true_value;
+ EXPECT_EQ(true_value.type(), blank.type());
+ EXPECT_EQ(true_value.GetBool(), blank.GetBool());
+
+ blank = false_value;
+ EXPECT_EQ(false_value.type(), blank.type());
+ EXPECT_EQ(false_value.GetBool(), blank.GetBool());
+}
+
+TEST(ValuesTest, CopyInt) {
+ FundamentalValue value(74);
+ FundamentalValue copied_value(value);
+ EXPECT_EQ(value.type(), copied_value.type());
+ EXPECT_EQ(value.GetInt(), copied_value.GetInt());
+
+ // TODO(crbug.com/646113): Create a Type::NONE value once the assignment
+ // operator of base::Value is public.
+ FundamentalValue blank(false);
+
+ blank = value;
+ EXPECT_EQ(value.type(), blank.type());
+ EXPECT_EQ(value.GetInt(), blank.GetInt());
+}
+
+TEST(ValuesTest, CopyDouble) {
+ FundamentalValue value(74.896);
+ FundamentalValue copied_value(value);
+ EXPECT_EQ(value.type(), copied_value.type());
+ EXPECT_EQ(value.GetDouble(), copied_value.GetDouble());
+
+ // TODO(crbug.com/646113): Create a Type::NONE value once the assignment
+ // operator of base::Value is public.
+ FundamentalValue blank(false);
+
+ blank = value;
+ EXPECT_EQ(value.type(), blank.type());
+ EXPECT_EQ(value.GetDouble(), blank.GetDouble());
+}
+
+// Group of tests for the move constructors and move-assigmnent.
+TEST(ValuesTest, MoveBool) {
+ FundamentalValue true_value(true);
+ FundamentalValue moved_true_value(std::move(true_value));
+ EXPECT_EQ(Value::Type::BOOLEAN, moved_true_value.type());
+ EXPECT_TRUE(moved_true_value.GetBool());
+
+ FundamentalValue false_value(false);
+ FundamentalValue moved_false_value(std::move(false_value));
+ EXPECT_EQ(Value::Type::BOOLEAN, moved_false_value.type());
+ EXPECT_FALSE(moved_false_value.GetBool());
+
+ // TODO(crbug.com/646113): Create a Type::NONE value once the assignment
+ // operator of base::Value is public.
+ FundamentalValue blank(123);
+
+ blank = FundamentalValue(true);
+ EXPECT_EQ(Value::Type::BOOLEAN, blank.type());
+ EXPECT_TRUE(blank.GetBool());
+
+ blank = FundamentalValue(false);
+ EXPECT_EQ(Value::Type::BOOLEAN, blank.type());
+ EXPECT_FALSE(blank.GetBool());
+}
+
+TEST(ValuesTest, MoveInt) {
+ FundamentalValue value(74);
+ FundamentalValue moved_value(std::move(value));
+ EXPECT_EQ(Value::Type::INTEGER, moved_value.type());
+ EXPECT_EQ(74, moved_value.GetInt());
+
+ // TODO(crbug.com/646113): Create a Type::NONE value once the assignment
+ // operator of base::Value is public.
+ FundamentalValue blank(false);
+
+ blank = FundamentalValue(47);
+ EXPECT_EQ(Value::Type::INTEGER, blank.type());
+ EXPECT_EQ(47, blank.GetInt());
+}
+
+TEST(ValuesTest, MoveDouble) {
+ FundamentalValue value(74.896);
+ FundamentalValue moved_value(std::move(value));
+ EXPECT_EQ(Value::Type::DOUBLE, moved_value.type());
+ EXPECT_EQ(74.896, moved_value.GetDouble());
+
+ // TODO(crbug.com/646113): Create a Type::NONE value once the assignment
+ // operator of base::Value is public.
+ FundamentalValue blank(false);
+
+ blank = FundamentalValue(654.38);
+ EXPECT_EQ(Value::Type::DOUBLE, blank.type());
+ EXPECT_EQ(654.38, blank.GetDouble());
+}
+
TEST(ValuesTest, Basic) {
// Test basic dictionary getting/setting
DictionaryValue settings;
« base/values.cc ('K') | « base/values.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698