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

Unified Diff: extensions/browser/value_store/value_store_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, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/browser/value_store/value_store_change_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/browser/value_store/value_store_unittest.cc
diff --git a/extensions/browser/value_store/value_store_unittest.cc b/extensions/browser/value_store/value_store_unittest.cc
index 8c5f7aec06c6ff23f5291c323d1750229f4aae96..1a0d2a00d1e779876439d1b9322af57322e6cb7e 100644
--- a/extensions/browser/value_store/value_store_unittest.cc
+++ b/extensions/browser/value_store/value_store_unittest.cc
@@ -4,6 +4,8 @@
#include "extensions/browser/value_store/value_store_unittest.h"
+#include <utility>
+
#include "base/json/json_writer.h"
#include "base/memory/linked_ptr.h"
#include "base/values.h"
@@ -156,13 +158,13 @@ ValueStoreTest::ValueStoreTest()
set13_.insert(list13_.begin(), list13_.end());
set123_.insert(list123_.begin(), list123_.end());
- dict1_->Set(key1_, val1_->DeepCopy());
- dict3_->Set(key3_, val3_->DeepCopy());
- dict12_->Set(key1_, val1_->DeepCopy());
- dict12_->Set(key2_, val2_->DeepCopy());
- dict123_->Set(key1_, val1_->DeepCopy());
- dict123_->Set(key2_, val2_->DeepCopy());
- dict123_->Set(key3_, val3_->DeepCopy());
+ dict1_->Set(key1_, val1_->CreateDeepCopy());
+ dict3_->Set(key3_, val3_->CreateDeepCopy());
+ dict12_->Set(key1_, val1_->CreateDeepCopy());
+ dict12_->Set(key2_, val2_->CreateDeepCopy());
+ dict123_->Set(key1_, val1_->CreateDeepCopy());
+ dict123_->Set(key2_, val2_->CreateDeepCopy());
+ dict123_->Set(key3_, val3_->CreateDeepCopy());
}
ValueStoreTest::~ValueStoreTest() {}
@@ -187,7 +189,8 @@ TEST_P(ValueStoreTest, GetWhenEmpty) {
TEST_P(ValueStoreTest, GetWithSingleValue) {
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(key1_, NULL, val1_->DeepCopy()));
+ changes.push_back(
+ ValueStoreChange(key1_, nullptr, val1_->CreateDeepCopy()));
EXPECT_PRED_FORMAT2(ChangesEq,
changes, storage_->Set(DEFAULTS, key1_, *val1_));
}
@@ -203,8 +206,10 @@ TEST_P(ValueStoreTest, GetWithSingleValue) {
TEST_P(ValueStoreTest, GetWithMultipleValues) {
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(key1_, NULL, val1_->DeepCopy()));
- changes.push_back(ValueStoreChange(key2_, NULL, val2_->DeepCopy()));
+ changes.push_back(
+ ValueStoreChange(key1_, nullptr, val1_->CreateDeepCopy()));
+ changes.push_back(
+ ValueStoreChange(key2_, nullptr, val2_->CreateDeepCopy()));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(DEFAULTS, *dict12_));
}
@@ -228,7 +233,8 @@ TEST_P(ValueStoreTest, RemoveWithSingleValue) {
storage_->Set(DEFAULTS, *dict1_);
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(key1_, val1_->DeepCopy(), NULL));
+ changes.push_back(
+ ValueStoreChange(key1_, val1_->CreateDeepCopy(), nullptr));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(key1_));
}
@@ -243,7 +249,8 @@ TEST_P(ValueStoreTest, RemoveWithMultipleValues) {
storage_->Set(DEFAULTS, *dict123_);
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(key3_, val3_->DeepCopy(), NULL));
+ changes.push_back(
+ ValueStoreChange(key3_, val3_->CreateDeepCopy(), nullptr));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(key3_));
}
@@ -258,8 +265,10 @@ TEST_P(ValueStoreTest, RemoveWithMultipleValues) {
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(key1_, val1_->DeepCopy(), NULL));
- changes.push_back(ValueStoreChange(key2_, val2_->DeepCopy(), NULL));
+ changes.push_back(
+ ValueStoreChange(key1_, val1_->CreateDeepCopy(), nullptr));
+ changes.push_back(
+ ValueStoreChange(key2_, val2_->CreateDeepCopy(), nullptr));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(list12_));
}
@@ -277,9 +286,10 @@ TEST_P(ValueStoreTest, SetWhenOverwriting) {
storage_->Set(DEFAULTS, key1_, *val2_);
{
ValueStoreChangeList changes;
+ changes.push_back(ValueStoreChange(key1_, val2_->CreateDeepCopy(),
+ val1_->CreateDeepCopy()));
changes.push_back(
- ValueStoreChange(key1_, val2_->DeepCopy(), val1_->DeepCopy()));
- changes.push_back(ValueStoreChange(key2_, NULL, val2_->DeepCopy()));
+ ValueStoreChange(key2_, nullptr, val2_->CreateDeepCopy()));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(DEFAULTS, *dict12_));
}
@@ -306,8 +316,10 @@ TEST_P(ValueStoreTest, ClearWhenNotEmpty) {
storage_->Set(DEFAULTS, *dict12_);
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(key1_, val1_->DeepCopy(), NULL));
- changes.push_back(ValueStoreChange(key2_, val2_->DeepCopy(), NULL));
+ changes.push_back(
+ ValueStoreChange(key1_, val1_->CreateDeepCopy(), nullptr));
+ changes.push_back(
+ ValueStoreChange(key2_, val2_->CreateDeepCopy(), nullptr));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Clear());
}
@@ -325,14 +337,14 @@ TEST_P(ValueStoreTest, DotsInKeyNames) {
std::vector<std::string> dot_list;
dot_list.push_back(dot_key);
base::DictionaryValue dot_dict;
- dot_dict.SetWithoutPathExpansion(dot_key, dot_value.DeepCopy());
+ dot_dict.SetWithoutPathExpansion(dot_key, dot_value.CreateDeepCopy());
EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(dot_key));
{
ValueStoreChangeList changes;
changes.push_back(
- ValueStoreChange(dot_key, NULL, dot_value.DeepCopy()));
+ ValueStoreChange(dot_key, nullptr, dot_value.CreateDeepCopy()));
EXPECT_PRED_FORMAT2(ChangesEq,
changes, storage_->Set(DEFAULTS, dot_key, dot_value));
}
@@ -344,7 +356,7 @@ TEST_P(ValueStoreTest, DotsInKeyNames) {
{
ValueStoreChangeList changes;
changes.push_back(
- ValueStoreChange(dot_key, dot_value.DeepCopy(), NULL));
+ ValueStoreChange(dot_key, dot_value.CreateDeepCopy(), nullptr));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(dot_key));
}
EXPECT_PRED_FORMAT2(ChangesEq,
@@ -352,7 +364,7 @@ TEST_P(ValueStoreTest, DotsInKeyNames) {
{
ValueStoreChangeList changes;
changes.push_back(
- ValueStoreChange(dot_key, NULL, dot_value.DeepCopy()));
+ ValueStoreChange(dot_key, nullptr, dot_value.CreateDeepCopy()));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(DEFAULTS, dot_dict));
}
@@ -362,7 +374,7 @@ TEST_P(ValueStoreTest, DotsInKeyNames) {
{
ValueStoreChangeList changes;
changes.push_back(
- ValueStoreChange(dot_key, dot_value.DeepCopy(), NULL));
+ ValueStoreChange(dot_key, dot_value.CreateDeepCopy(), nullptr));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(dot_list));
}
@@ -372,14 +384,15 @@ TEST_P(ValueStoreTest, DotsInKeyNames) {
TEST_P(ValueStoreTest, DotsInKeyNamesWithDicts) {
base::DictionaryValue outer_dict;
- base::DictionaryValue* inner_dict = new base::DictionaryValue();
- outer_dict.Set("foo", inner_dict);
+ std::unique_ptr<base::DictionaryValue> inner_dict(
+ new base::DictionaryValue());
+ outer_dict.Set("foo", std::move(inner_dict));
inner_dict->SetString("bar", "baz");
Devlin 2016/05/03 16:55:05 UAF (was already a conceptual problem, but now thi
dcheng 2016/05/03 17:16:26 Done. This was "safe" before but is now unsafe.
{
ValueStoreChangeList changes;
changes.push_back(
- ValueStoreChange("foo", NULL, inner_dict->DeepCopy()));
+ ValueStoreChange("foo", nullptr, inner_dict->CreateDeepCopy()));
EXPECT_PRED_FORMAT2(ChangesEq,
changes, storage_->Set(DEFAULTS, outer_dict));
}
@@ -401,63 +414,72 @@ TEST_P(ValueStoreTest, ComplexChangedKeysScenarios) {
ValueStoreChangeList(), storage_->Set(DEFAULTS, key1_, *val1_));
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(
- key1_, val1_->DeepCopy(), val2_->DeepCopy()));
+ changes.push_back(ValueStoreChange(key1_, val1_->CreateDeepCopy(),
+ val2_->CreateDeepCopy()));
EXPECT_PRED_FORMAT2(ChangesEq,
changes, storage_->Set(DEFAULTS, key1_, *val2_));
}
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(key1_, val2_->DeepCopy(), NULL));
+ changes.push_back(
+ ValueStoreChange(key1_, val2_->CreateDeepCopy(), nullptr));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(key1_));
EXPECT_PRED_FORMAT2(ChangesEq,
ValueStoreChangeList(), storage_->Remove(key1_));
}
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(key1_, NULL, val1_->DeepCopy()));
+ changes.push_back(
+ ValueStoreChange(key1_, nullptr, val1_->CreateDeepCopy()));
EXPECT_PRED_FORMAT2(ChangesEq,
changes, storage_->Set(DEFAULTS, key1_, *val1_));
}
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(key1_, val1_->DeepCopy(), NULL));
+ changes.push_back(
+ ValueStoreChange(key1_, val1_->CreateDeepCopy(), nullptr));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Clear());
EXPECT_PRED_FORMAT2(ChangesEq, ValueStoreChangeList(), storage_->Clear());
}
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(key1_, NULL, val1_->DeepCopy()));
- changes.push_back(ValueStoreChange(key2_, NULL, val2_->DeepCopy()));
+ changes.push_back(
+ ValueStoreChange(key1_, nullptr, val1_->CreateDeepCopy()));
+ changes.push_back(
+ ValueStoreChange(key2_, nullptr, val2_->CreateDeepCopy()));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(DEFAULTS, *dict12_));
EXPECT_PRED_FORMAT2(ChangesEq,
ValueStoreChangeList(), storage_->Set(DEFAULTS, *dict12_));
}
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(key3_, NULL, val3_->DeepCopy()));
+ changes.push_back(
+ ValueStoreChange(key3_, nullptr, val3_->CreateDeepCopy()));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(DEFAULTS, *dict123_));
}
{
base::DictionaryValue to_set;
- to_set.Set(key1_, val2_->DeepCopy());
- to_set.Set(key2_, val2_->DeepCopy());
- to_set.Set("asdf", val1_->DeepCopy());
- to_set.Set("qwerty", val3_->DeepCopy());
+ to_set.Set(key1_, val2_->CreateDeepCopy());
+ to_set.Set(key2_, val2_->CreateDeepCopy());
+ to_set.Set("asdf", val1_->CreateDeepCopy());
+ to_set.Set("qwerty", val3_->CreateDeepCopy());
ValueStoreChangeList changes;
+ changes.push_back(ValueStoreChange(key1_, val1_->CreateDeepCopy(),
+ val2_->CreateDeepCopy()));
changes.push_back(
- ValueStoreChange(key1_, val1_->DeepCopy(), val2_->DeepCopy()));
- changes.push_back(ValueStoreChange("asdf", NULL, val1_->DeepCopy()));
+ ValueStoreChange("asdf", nullptr, val1_->CreateDeepCopy()));
changes.push_back(
- ValueStoreChange("qwerty", NULL, val3_->DeepCopy()));
+ ValueStoreChange("qwerty", nullptr, val3_->CreateDeepCopy()));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(DEFAULTS, to_set));
}
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(key1_, val2_->DeepCopy(), NULL));
- changes.push_back(ValueStoreChange(key2_, val2_->DeepCopy(), NULL));
+ changes.push_back(
+ ValueStoreChange(key1_, val2_->CreateDeepCopy(), nullptr));
+ changes.push_back(
+ ValueStoreChange(key2_, val2_->CreateDeepCopy(), nullptr));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(list12_));
}
{
@@ -466,14 +488,16 @@ TEST_P(ValueStoreTest, ComplexChangedKeysScenarios) {
to_remove.push_back("asdf");
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange("asdf", val1_->DeepCopy(), NULL));
+ changes.push_back(
+ ValueStoreChange("asdf", val1_->CreateDeepCopy(), nullptr));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(to_remove));
}
{
ValueStoreChangeList changes;
- changes.push_back(ValueStoreChange(key3_, val3_->DeepCopy(), NULL));
changes.push_back(
- ValueStoreChange("qwerty", val3_->DeepCopy(), NULL));
+ ValueStoreChange(key3_, val3_->CreateDeepCopy(), nullptr));
+ changes.push_back(
+ ValueStoreChange("qwerty", val3_->CreateDeepCopy(), nullptr));
EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Clear());
EXPECT_PRED_FORMAT2(ChangesEq, ValueStoreChangeList(), storage_->Clear());
}
« no previous file with comments | « extensions/browser/value_store/value_store_change_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698