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

Side by Side Diff: base/values_unittest.cc

Issue 2558023002: Inline FundamentalValue into base::Value (Closed)
Patch Set: Value(Type) initializes with the default value Created 3 years, 12 months 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 unified diff | Download patch
« base/values.cc ('K') | « base/values.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/values.h" 5 #include "base/values.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <limits> 9 #include <limits>
10 #include <memory> 10 #include <memory>
11 #include <utility> 11 #include <utility>
12 12
13 #include "base/memory/ptr_util.h" 13 #include "base/memory/ptr_util.h"
14 #include "base/strings/string16.h" 14 #include "base/strings/string16.h"
15 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 17
18 namespace base { 18 namespace base {
19 19
20 // Group of tests for the value constructors.
21 TEST(ValuesTest, ConstructBool) {
22 FundamentalValue true_value(true);
23 EXPECT_EQ(Value::Type::BOOLEAN, true_value.type());
24 EXPECT_TRUE(true_value.GetBool());
25
26 FundamentalValue false_value(false);
27 EXPECT_EQ(Value::Type::BOOLEAN, false_value.type());
28 EXPECT_FALSE(false_value.GetBool());
29 }
30
31 TEST(ValuesTest, ConstructInt) {
32 FundamentalValue value(-37);
33 EXPECT_EQ(Value::Type::INTEGER, value.type());
34 EXPECT_EQ(-37, value.GetInt());
35 }
36
37 TEST(ValuesTest, ConstructDouble) {
38 FundamentalValue value(-4.655);
39 EXPECT_EQ(Value::Type::DOUBLE, value.type());
40 EXPECT_EQ(-4.655, value.GetDouble());
41 }
42
43 // Group of tests for the copy constructors and copy-assigmnent. For equality
44 // checks comparisons of the interesting fields are done instead of relying on
45 // Equals being correct.
46 TEST(ValuesTest, CopyBool) {
47 FundamentalValue true_value(true);
48 FundamentalValue copied_true_value(true_value);
49 EXPECT_EQ(true_value.type(), copied_true_value.type());
50 EXPECT_EQ(true_value.GetBool(), copied_true_value.GetBool());
51
52 FundamentalValue false_value(false);
53 FundamentalValue copied_false_value(false_value);
54 EXPECT_EQ(false_value.type(), copied_false_value.type());
55 EXPECT_EQ(false_value.GetBool(), copied_false_value.GetBool());
56
57 // TODO(crbug.com/646113): Create a Type::NONE value once the assignment
58 // operator of base::Value is public.
59 FundamentalValue blank(123);
60
61 blank = true_value;
62 EXPECT_EQ(true_value.type(), blank.type());
63 EXPECT_EQ(true_value.GetBool(), blank.GetBool());
64
65 blank = false_value;
66 EXPECT_EQ(false_value.type(), blank.type());
67 EXPECT_EQ(false_value.GetBool(), blank.GetBool());
68 }
69
70 TEST(ValuesTest, CopyInt) {
71 FundamentalValue value(74);
72 FundamentalValue copied_value(value);
73 EXPECT_EQ(value.type(), copied_value.type());
74 EXPECT_EQ(value.GetInt(), copied_value.GetInt());
75
76 // TODO(crbug.com/646113): Create a Type::NONE value once the assignment
77 // operator of base::Value is public.
78 FundamentalValue blank(false);
79
80 blank = value;
81 EXPECT_EQ(value.type(), blank.type());
82 EXPECT_EQ(value.GetInt(), blank.GetInt());
83 }
84
85 TEST(ValuesTest, CopyDouble) {
86 FundamentalValue value(74.896);
87 FundamentalValue copied_value(value);
88 EXPECT_EQ(value.type(), copied_value.type());
89 EXPECT_EQ(value.GetDouble(), copied_value.GetDouble());
90
91 // TODO(crbug.com/646113): Create a Type::NONE value once the assignment
92 // operator of base::Value is public.
93 FundamentalValue blank(false);
94
95 blank = value;
96 EXPECT_EQ(value.type(), blank.type());
97 EXPECT_EQ(value.GetDouble(), blank.GetDouble());
98 }
99
100 // Group of tests for the move constructors and move-assigmnent.
101 TEST(ValuesTest, MoveBool) {
102 FundamentalValue true_value(true);
103 FundamentalValue moved_true_value(std::move(true_value));
104 EXPECT_EQ(Value::Type::BOOLEAN, moved_true_value.type());
105 EXPECT_TRUE(moved_true_value.GetBool());
106
107 FundamentalValue false_value(false);
108 FundamentalValue moved_false_value(std::move(false_value));
109 EXPECT_EQ(Value::Type::BOOLEAN, moved_false_value.type());
110 EXPECT_FALSE(moved_false_value.GetBool());
111
112 // TODO(crbug.com/646113): Create a Type::NONE value once the assignment
113 // operator of base::Value is public.
114 FundamentalValue blank(123);
115
116 blank = FundamentalValue(true);
117 EXPECT_EQ(Value::Type::BOOLEAN, blank.type());
118 EXPECT_TRUE(blank.GetBool());
119
120 blank = FundamentalValue(false);
121 EXPECT_EQ(Value::Type::BOOLEAN, blank.type());
122 EXPECT_FALSE(blank.GetBool());
123 }
124
125 TEST(ValuesTest, MoveInt) {
126 FundamentalValue value(74);
127 FundamentalValue moved_value(std::move(value));
128 EXPECT_EQ(Value::Type::INTEGER, moved_value.type());
129 EXPECT_EQ(74, moved_value.GetInt());
130
131 // TODO(crbug.com/646113): Create a Type::NONE value once the assignment
132 // operator of base::Value is public.
133 FundamentalValue blank(false);
134
135 blank = FundamentalValue(47);
136 EXPECT_EQ(Value::Type::INTEGER, blank.type());
137 EXPECT_EQ(47, blank.GetInt());
138 }
139
140 TEST(ValuesTest, MoveDouble) {
141 FundamentalValue value(74.896);
142 FundamentalValue moved_value(std::move(value));
143 EXPECT_EQ(Value::Type::DOUBLE, moved_value.type());
144 EXPECT_EQ(74.896, moved_value.GetDouble());
145
146 // TODO(crbug.com/646113): Create a Type::NONE value once the assignment
147 // operator of base::Value is public.
148 FundamentalValue blank(false);
149
150 blank = FundamentalValue(654.38);
151 EXPECT_EQ(Value::Type::DOUBLE, blank.type());
152 EXPECT_EQ(654.38, blank.GetDouble());
153 }
154
20 TEST(ValuesTest, Basic) { 155 TEST(ValuesTest, Basic) {
21 // Test basic dictionary getting/setting 156 // Test basic dictionary getting/setting
22 DictionaryValue settings; 157 DictionaryValue settings;
23 std::string homepage = "http://google.com"; 158 std::string homepage = "http://google.com";
24 ASSERT_FALSE(settings.GetString("global.homepage", &homepage)); 159 ASSERT_FALSE(settings.GetString("global.homepage", &homepage));
25 ASSERT_EQ(std::string("http://google.com"), homepage); 160 ASSERT_EQ(std::string("http://google.com"), homepage);
26 161
27 ASSERT_FALSE(settings.Get("global", NULL)); 162 ASSERT_FALSE(settings.Get("global", NULL));
28 settings.SetBoolean("global", true); 163 settings.SetBoolean("global", true);
29 ASSERT_TRUE(settings.Get("global", NULL)); 164 ASSERT_TRUE(settings.Get("global", NULL));
(...skipping 1117 matching lines...) Expand 10 before | Expand all | Expand 10 after
1147 EXPECT_FALSE(main_list.GetList(1, NULL)); 1282 EXPECT_FALSE(main_list.GetList(1, NULL));
1148 EXPECT_FALSE(main_list.GetList(2, NULL)); 1283 EXPECT_FALSE(main_list.GetList(2, NULL));
1149 EXPECT_FALSE(main_list.GetList(3, NULL)); 1284 EXPECT_FALSE(main_list.GetList(3, NULL));
1150 EXPECT_FALSE(main_list.GetList(4, NULL)); 1285 EXPECT_FALSE(main_list.GetList(4, NULL));
1151 EXPECT_FALSE(main_list.GetList(5, NULL)); 1286 EXPECT_FALSE(main_list.GetList(5, NULL));
1152 EXPECT_TRUE(main_list.GetList(6, NULL)); 1287 EXPECT_TRUE(main_list.GetList(6, NULL));
1153 EXPECT_FALSE(main_list.GetList(7, NULL)); 1288 EXPECT_FALSE(main_list.GetList(7, NULL));
1154 } 1289 }
1155 1290
1156 } // namespace base 1291 } // namespace base
OLDNEW
« 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