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

Side by Side Diff: extensions/browser/value_store/value_store_change_unittest.cc

Issue 1940133002: Use std::unique_ptr to transfer base::Value ownership in extensions::ValueStoreChange (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 7 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/json/json_reader.h" 5 #include "base/json/json_reader.h"
6 #include "base/json/json_writer.h" 6 #include "base/json/json_writer.h"
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/ptr_util.h"
8 #include "base/values.h" 9 #include "base/values.h"
9 #include "extensions/browser/value_store/value_store_change.h" 10 #include "extensions/browser/value_store/value_store_change.h"
10 #include "extensions/common/value_builder.h" 11 #include "extensions/common/value_builder.h"
11 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
12 13
13 using base::DictionaryValue; 14 using base::DictionaryValue;
14 using base::Value; 15 using base::Value;
15 using extensions::DictionaryBuilder; 16 using extensions::DictionaryBuilder;
16 using extensions::ListBuilder; 17 using extensions::ListBuilder;
17 18
18 namespace { 19 namespace {
19 20
20 TEST(ValueStoreChangeTest, NullOldValue) { 21 TEST(ValueStoreChangeTest, NullOldValue) {
21 ValueStoreChange change("key", NULL, new base::StringValue("value")); 22 ValueStoreChange change("key", nullptr,
23 base::WrapUnique(new base::StringValue("value")));
22 24
23 EXPECT_EQ("key", change.key()); 25 EXPECT_EQ("key", change.key());
24 EXPECT_EQ(NULL, change.old_value()); 26 EXPECT_EQ(NULL, change.old_value());
25 { 27 {
26 std::unique_ptr<base::Value> expected(new base::StringValue("value")); 28 base::StringValue expected("value");
27 EXPECT_TRUE(change.new_value()->Equals(expected.get())); 29 EXPECT_TRUE(change.new_value()->Equals(&expected));
28 } 30 }
29 } 31 }
30 32
31 TEST(ValueStoreChangeTest, NullNewValue) { 33 TEST(ValueStoreChangeTest, NullNewValue) {
32 ValueStoreChange change("key", new base::StringValue("value"), NULL); 34 ValueStoreChange change(
35 "key", base::WrapUnique(new base::StringValue("value")), nullptr);
33 36
34 EXPECT_EQ("key", change.key()); 37 EXPECT_EQ("key", change.key());
35 { 38 {
36 std::unique_ptr<base::Value> expected(new base::StringValue("value")); 39 base::StringValue expected("value");
37 EXPECT_TRUE(change.old_value()->Equals(expected.get())); 40 EXPECT_TRUE(change.old_value()->Equals(&expected));
38 } 41 }
39 EXPECT_EQ(NULL, change.new_value()); 42 EXPECT_EQ(NULL, change.new_value());
40 } 43 }
41 44
42 TEST(ValueStoreChangeTest, NonNullValues) { 45 TEST(ValueStoreChangeTest, NonNullValues) {
43 ValueStoreChange change("key", 46 ValueStoreChange change("key",
44 new base::StringValue("old_value"), 47 base::WrapUnique(new base::StringValue("old_value")),
45 new base::StringValue("new_value")); 48 base::WrapUnique(new base::StringValue("new_value")));
46 49
47 EXPECT_EQ("key", change.key()); 50 EXPECT_EQ("key", change.key());
48 { 51 {
49 std::unique_ptr<base::Value> expected(new base::StringValue("old_value")); 52 base::StringValue expected("old_value");
50 EXPECT_TRUE(change.old_value()->Equals(expected.get())); 53 EXPECT_TRUE(change.old_value()->Equals(&expected));
51 } 54 }
52 { 55 {
53 std::unique_ptr<base::Value> expected(new base::StringValue("new_value")); 56 base::StringValue expected("new_value");
54 EXPECT_TRUE(change.new_value()->Equals(expected.get())); 57 EXPECT_TRUE(change.new_value()->Equals(&expected));
55 } 58 }
56 } 59 }
57 60
58 TEST(ValueStoreChangeTest, ToJson) { 61 TEST(ValueStoreChangeTest, ToJson) {
59 // Create a mildly complicated structure that has dots in it. 62 // Create a mildly complicated structure that has dots in it.
60 std::unique_ptr<base::DictionaryValue> value = 63 std::unique_ptr<base::DictionaryValue> value =
61 DictionaryBuilder() 64 DictionaryBuilder()
62 .Set("key", "value") 65 .Set("key", "value")
63 .Set("key.with.dots", "value.with.dots") 66 .Set("key.with.dots", "value.with.dots")
64 .Set("tricked", DictionaryBuilder().Set("you", "nodots").Build()) 67 .Set("tricked", DictionaryBuilder().Set("you", "nodots").Build())
65 .Set("tricked.you", "with.dots") 68 .Set("tricked.you", "with.dots")
66 .Build(); 69 .Build();
67 70
68 ValueStoreChangeList change_list; 71 ValueStoreChangeList change_list;
69 change_list.push_back( 72 change_list.push_back(ValueStoreChange("key", value->CreateDeepCopy(),
70 ValueStoreChange("key", value->DeepCopy(), value->DeepCopy())); 73 value->CreateDeepCopy()));
71 change_list.push_back( 74 change_list.push_back(ValueStoreChange(
72 ValueStoreChange("key.with.dots", value->DeepCopy(), value->DeepCopy())); 75 "key.with.dots", value->CreateDeepCopy(), value->CreateDeepCopy()));
73 76
74 std::string json = ValueStoreChange::ToJson(change_list); 77 std::string json = ValueStoreChange::ToJson(change_list);
75 std::unique_ptr<base::Value> from_json(base::JSONReader::Read(json)); 78 std::unique_ptr<base::Value> from_json(base::JSONReader::Read(json));
76 ASSERT_TRUE(from_json.get()); 79 ASSERT_TRUE(from_json.get());
77 80
78 DictionaryBuilder v1(*value); 81 DictionaryBuilder v1(*value);
79 DictionaryBuilder v2(*value); 82 DictionaryBuilder v2(*value);
80 DictionaryBuilder v3(*value); 83 DictionaryBuilder v3(*value);
81 DictionaryBuilder v4(*value); 84 DictionaryBuilder v4(*value);
82 std::unique_ptr<base::DictionaryValue> expected_from_json = 85 std::unique_ptr<base::DictionaryValue> expected_from_json =
83 DictionaryBuilder() 86 DictionaryBuilder()
84 .Set("key", DictionaryBuilder() 87 .Set("key", DictionaryBuilder()
85 .Set("oldValue", v1.Build()) 88 .Set("oldValue", v1.Build())
86 .Set("newValue", v2.Build()) 89 .Set("newValue", v2.Build())
87 .Build()) 90 .Build())
88 .Set("key.with.dots", DictionaryBuilder() 91 .Set("key.with.dots", DictionaryBuilder()
89 .Set("oldValue", v3.Build()) 92 .Set("oldValue", v3.Build())
90 .Set("newValue", v4.Build()) 93 .Set("newValue", v4.Build())
91 .Build()) 94 .Build())
92 .Build(); 95 .Build();
93 96
94 EXPECT_TRUE(from_json->Equals(expected_from_json.get())); 97 EXPECT_TRUE(from_json->Equals(expected_from_json.get()));
95 } 98 }
96 99
97 } // namespace 100 } // namespace
OLDNEW
« no previous file with comments | « extensions/browser/value_store/value_store_change.cc ('k') | extensions/browser/value_store/value_store_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698