| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
| 6 #include "base/prefs/scoped_user_pref_update.h" | 6 #include "base/prefs/scoped_user_pref_update.h" |
| 7 #include "base/values.h" | 7 #include "base/values.h" |
| 8 #include "chrome/browser/prefs/pref_model_associator.h" | 8 #include "chrome/browser/prefs/pref_model_associator.h" |
| 9 #include "chrome/common/pref_names.h" | 9 #include "chrome/common/pref_names.h" |
| 10 #include "chrome/test/base/testing_profile.h" | 10 #include "chrome/test/base/testing_profile.h" |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 class ListPreferenceMergeTest : public AbstractPreferenceMergeTest { | 55 class ListPreferenceMergeTest : public AbstractPreferenceMergeTest { |
| 56 protected: | 56 protected: |
| 57 ListPreferenceMergeTest() : | 57 ListPreferenceMergeTest() : |
| 58 server_url0_("http://example.com/server0"), | 58 server_url0_("http://example.com/server0"), |
| 59 server_url1_("http://example.com/server1"), | 59 server_url1_("http://example.com/server1"), |
| 60 local_url0_("http://example.com/local0"), | 60 local_url0_("http://example.com/local0"), |
| 61 local_url1_("http://example.com/local1") {} | 61 local_url1_("http://example.com/local1") {} |
| 62 | 62 |
| 63 virtual void SetUp() { | 63 virtual void SetUp() { |
| 64 AbstractPreferenceMergeTest::SetUp(); | 64 AbstractPreferenceMergeTest::SetUp(); |
| 65 server_url_list_.Append(base::Value::CreateStringValue(server_url0_)); | 65 server_url_list_.Append(new base::StringValue(server_url0_)); |
| 66 server_url_list_.Append(base::Value::CreateStringValue(server_url1_)); | 66 server_url_list_.Append(new base::StringValue(server_url1_)); |
| 67 } | 67 } |
| 68 | 68 |
| 69 std::string server_url0_; | 69 std::string server_url0_; |
| 70 std::string server_url1_; | 70 std::string server_url1_; |
| 71 std::string local_url0_; | 71 std::string local_url0_; |
| 72 std::string local_url1_; | 72 std::string local_url1_; |
| 73 base::ListValue server_url_list_; | 73 base::ListValue server_url_list_; |
| 74 }; | 74 }; |
| 75 | 75 |
| 76 TEST_F(ListPreferenceMergeTest, NotListOrDictionary) { | 76 TEST_F(ListPreferenceMergeTest, NotListOrDictionary) { |
| 77 pref_service_->SetString(prefs::kHomePage, local_url0_); | 77 pref_service_->SetString(prefs::kHomePage, local_url0_); |
| 78 const PrefService::Preference* pref = | 78 const PrefService::Preference* pref = |
| 79 pref_service_->FindPreference(prefs::kHomePage); | 79 pref_service_->FindPreference(prefs::kHomePage); |
| 80 scoped_ptr<base::Value> server_value( | 80 scoped_ptr<base::Value> server_value(new base::StringValue(server_url0_)); |
| 81 base::Value::CreateStringValue(server_url0_)); | |
| 82 scoped_ptr<base::Value> merged_value( | 81 scoped_ptr<base::Value> merged_value( |
| 83 PrefModelAssociator::MergePreference(pref->name(), | 82 PrefModelAssociator::MergePreference(pref->name(), |
| 84 *pref->GetValue(), | 83 *pref->GetValue(), |
| 85 *server_value)); | 84 *server_value)); |
| 86 EXPECT_TRUE(merged_value->Equals(server_value.get())); | 85 EXPECT_TRUE(merged_value->Equals(server_value.get())); |
| 87 } | 86 } |
| 88 | 87 |
| 89 TEST_F(ListPreferenceMergeTest, LocalEmpty) { | 88 TEST_F(ListPreferenceMergeTest, LocalEmpty) { |
| 90 SetPrefToEmpty(prefs::kURLsToRestoreOnStartup); | 89 SetPrefToEmpty(prefs::kURLsToRestoreOnStartup); |
| 91 const PrefService::Preference* pref = | 90 const PrefService::Preference* pref = |
| 92 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 91 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
| 93 scoped_ptr<base::Value> merged_value( | 92 scoped_ptr<base::Value> merged_value( |
| 94 PrefModelAssociator::MergePreference(pref->name(), | 93 PrefModelAssociator::MergePreference(pref->name(), |
| 95 *pref->GetValue(), | 94 *pref->GetValue(), |
| 96 server_url_list_)); | 95 server_url_list_)); |
| 97 EXPECT_TRUE(merged_value->Equals(&server_url_list_)); | 96 EXPECT_TRUE(merged_value->Equals(&server_url_list_)); |
| 98 } | 97 } |
| 99 | 98 |
| 100 TEST_F(ListPreferenceMergeTest, ServerNull) { | 99 TEST_F(ListPreferenceMergeTest, ServerNull) { |
| 101 scoped_ptr<base::Value> null_value(base::Value::CreateNullValue()); | 100 scoped_ptr<base::Value> null_value(base::Value::CreateNullValue()); |
| 102 { | 101 { |
| 103 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); | 102 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); |
| 104 base::ListValue* local_list_value = update.Get(); | 103 base::ListValue* local_list_value = update.Get(); |
| 105 local_list_value->Append(base::Value::CreateStringValue(local_url0_)); | 104 local_list_value->Append(new base::StringValue(local_url0_)); |
| 106 } | 105 } |
| 107 | 106 |
| 108 const PrefService::Preference* pref = | 107 const PrefService::Preference* pref = |
| 109 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 108 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
| 110 scoped_ptr<base::Value> merged_value( | 109 scoped_ptr<base::Value> merged_value( |
| 111 PrefModelAssociator::MergePreference(pref->name(), | 110 PrefModelAssociator::MergePreference(pref->name(), |
| 112 *pref->GetValue(), | 111 *pref->GetValue(), |
| 113 *null_value)); | 112 *null_value)); |
| 114 const base::ListValue* local_list_value = | 113 const base::ListValue* local_list_value = |
| 115 pref_service_->GetList(prefs::kURLsToRestoreOnStartup); | 114 pref_service_->GetList(prefs::kURLsToRestoreOnStartup); |
| 116 EXPECT_TRUE(merged_value->Equals(local_list_value)); | 115 EXPECT_TRUE(merged_value->Equals(local_list_value)); |
| 117 } | 116 } |
| 118 | 117 |
| 119 TEST_F(ListPreferenceMergeTest, ServerEmpty) { | 118 TEST_F(ListPreferenceMergeTest, ServerEmpty) { |
| 120 scoped_ptr<base::Value> empty_value(new base::ListValue); | 119 scoped_ptr<base::Value> empty_value(new base::ListValue); |
| 121 { | 120 { |
| 122 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); | 121 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); |
| 123 base::ListValue* local_list_value = update.Get(); | 122 base::ListValue* local_list_value = update.Get(); |
| 124 local_list_value->Append(base::Value::CreateStringValue(local_url0_)); | 123 local_list_value->Append(new base::StringValue(local_url0_)); |
| 125 } | 124 } |
| 126 | 125 |
| 127 const PrefService::Preference* pref = | 126 const PrefService::Preference* pref = |
| 128 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 127 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
| 129 scoped_ptr<base::Value> merged_value( | 128 scoped_ptr<base::Value> merged_value( |
| 130 PrefModelAssociator::MergePreference(pref->name(), | 129 PrefModelAssociator::MergePreference(pref->name(), |
| 131 *pref->GetValue(), | 130 *pref->GetValue(), |
| 132 *empty_value)); | 131 *empty_value)); |
| 133 const base::ListValue* local_list_value = | 132 const base::ListValue* local_list_value = |
| 134 pref_service_->GetList(prefs::kURLsToRestoreOnStartup); | 133 pref_service_->GetList(prefs::kURLsToRestoreOnStartup); |
| 135 EXPECT_TRUE(merged_value->Equals(local_list_value)); | 134 EXPECT_TRUE(merged_value->Equals(local_list_value)); |
| 136 } | 135 } |
| 137 | 136 |
| 138 TEST_F(ListPreferenceMergeTest, Merge) { | 137 TEST_F(ListPreferenceMergeTest, Merge) { |
| 139 { | 138 { |
| 140 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); | 139 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); |
| 141 base::ListValue* local_list_value = update.Get(); | 140 base::ListValue* local_list_value = update.Get(); |
| 142 local_list_value->Append(base::Value::CreateStringValue(local_url0_)); | 141 local_list_value->Append(new base::StringValue(local_url0_)); |
| 143 local_list_value->Append(base::Value::CreateStringValue(local_url1_)); | 142 local_list_value->Append(new base::StringValue(local_url1_)); |
| 144 } | 143 } |
| 145 | 144 |
| 146 const PrefService::Preference* pref = | 145 const PrefService::Preference* pref = |
| 147 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 146 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
| 148 scoped_ptr<base::Value> merged_value( | 147 scoped_ptr<base::Value> merged_value( |
| 149 PrefModelAssociator::MergePreference(pref->name(), | 148 PrefModelAssociator::MergePreference(pref->name(), |
| 150 *pref->GetValue(), | 149 *pref->GetValue(), |
| 151 server_url_list_)); | 150 server_url_list_)); |
| 152 | 151 |
| 153 base::ListValue expected; | 152 base::ListValue expected; |
| 154 expected.Append(base::Value::CreateStringValue(server_url0_)); | 153 expected.Append(new base::StringValue(server_url0_)); |
| 155 expected.Append(base::Value::CreateStringValue(server_url1_)); | 154 expected.Append(new base::StringValue(server_url1_)); |
| 156 expected.Append(base::Value::CreateStringValue(local_url0_)); | 155 expected.Append(new base::StringValue(local_url0_)); |
| 157 expected.Append(base::Value::CreateStringValue(local_url1_)); | 156 expected.Append(new base::StringValue(local_url1_)); |
| 158 EXPECT_TRUE(merged_value->Equals(&expected)); | 157 EXPECT_TRUE(merged_value->Equals(&expected)); |
| 159 } | 158 } |
| 160 | 159 |
| 161 TEST_F(ListPreferenceMergeTest, Duplicates) { | 160 TEST_F(ListPreferenceMergeTest, Duplicates) { |
| 162 { | 161 { |
| 163 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); | 162 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); |
| 164 base::ListValue* local_list_value = update.Get(); | 163 base::ListValue* local_list_value = update.Get(); |
| 165 local_list_value->Append(base::Value::CreateStringValue(local_url0_)); | 164 local_list_value->Append(new base::StringValue(local_url0_)); |
| 166 local_list_value->Append(base::Value::CreateStringValue(server_url0_)); | 165 local_list_value->Append(new base::StringValue(server_url0_)); |
| 167 local_list_value->Append(base::Value::CreateStringValue(server_url1_)); | 166 local_list_value->Append(new base::StringValue(server_url1_)); |
| 168 } | 167 } |
| 169 | 168 |
| 170 const PrefService::Preference* pref = | 169 const PrefService::Preference* pref = |
| 171 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 170 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
| 172 scoped_ptr<base::Value> merged_value( | 171 scoped_ptr<base::Value> merged_value( |
| 173 PrefModelAssociator::MergePreference(pref->name(), | 172 PrefModelAssociator::MergePreference(pref->name(), |
| 174 *pref->GetValue(), | 173 *pref->GetValue(), |
| 175 server_url_list_)); | 174 server_url_list_)); |
| 176 | 175 |
| 177 base::ListValue expected; | 176 base::ListValue expected; |
| 178 expected.Append(base::Value::CreateStringValue(server_url0_)); | 177 expected.Append(new base::StringValue(server_url0_)); |
| 179 expected.Append(base::Value::CreateStringValue(server_url1_)); | 178 expected.Append(new base::StringValue(server_url1_)); |
| 180 expected.Append(base::Value::CreateStringValue(local_url0_)); | 179 expected.Append(new base::StringValue(local_url0_)); |
| 181 EXPECT_TRUE(merged_value->Equals(&expected)); | 180 EXPECT_TRUE(merged_value->Equals(&expected)); |
| 182 } | 181 } |
| 183 | 182 |
| 184 TEST_F(ListPreferenceMergeTest, Equals) { | 183 TEST_F(ListPreferenceMergeTest, Equals) { |
| 185 { | 184 { |
| 186 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); | 185 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); |
| 187 base::ListValue* local_list_value = update.Get(); | 186 base::ListValue* local_list_value = update.Get(); |
| 188 local_list_value->Append(base::Value::CreateStringValue(server_url0_)); | 187 local_list_value->Append(new base::StringValue(server_url0_)); |
| 189 local_list_value->Append(base::Value::CreateStringValue(server_url1_)); | 188 local_list_value->Append(new base::StringValue(server_url1_)); |
| 190 } | 189 } |
| 191 | 190 |
| 192 scoped_ptr<base::Value> original(server_url_list_.DeepCopy()); | 191 scoped_ptr<base::Value> original(server_url_list_.DeepCopy()); |
| 193 const PrefService::Preference* pref = | 192 const PrefService::Preference* pref = |
| 194 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 193 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
| 195 scoped_ptr<base::Value> merged_value( | 194 scoped_ptr<base::Value> merged_value( |
| 196 PrefModelAssociator::MergePreference(pref->name(), | 195 PrefModelAssociator::MergePreference(pref->name(), |
| 197 *pref->GetValue(), | 196 *pref->GetValue(), |
| 198 server_url_list_)); | 197 server_url_list_)); |
| 199 EXPECT_TRUE(merged_value->Equals(original.get())); | 198 EXPECT_TRUE(merged_value->Equals(original.get())); |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 protected: | 361 protected: |
| 363 IndividualPreferenceMergeTest() : | 362 IndividualPreferenceMergeTest() : |
| 364 url0_("http://example.com/server0"), | 363 url0_("http://example.com/server0"), |
| 365 url1_("http://example.com/server1"), | 364 url1_("http://example.com/server1"), |
| 366 expression0_("expression0"), | 365 expression0_("expression0"), |
| 367 expression1_("expression1"), | 366 expression1_("expression1"), |
| 368 content_type0_("content_type0") {} | 367 content_type0_("content_type0") {} |
| 369 | 368 |
| 370 virtual void SetUp() { | 369 virtual void SetUp() { |
| 371 AbstractPreferenceMergeTest::SetUp(); | 370 AbstractPreferenceMergeTest::SetUp(); |
| 372 server_url_list_.Append(base::Value::CreateStringValue(url0_)); | 371 server_url_list_.Append(new base::StringValue(url0_)); |
| 373 SetContentPattern(&server_patterns_, expression0_, content_type0_, 1); | 372 SetContentPattern(&server_patterns_, expression0_, content_type0_, 1); |
| 374 } | 373 } |
| 375 | 374 |
| 376 bool MergeListPreference(const char* pref) { | 375 bool MergeListPreference(const char* pref) { |
| 377 { | 376 { |
| 378 ListPrefUpdate update(pref_service_, pref); | 377 ListPrefUpdate update(pref_service_, pref); |
| 379 base::ListValue* local_list_value = update.Get(); | 378 base::ListValue* local_list_value = update.Get(); |
| 380 local_list_value->Append(base::Value::CreateStringValue(url1_)); | 379 local_list_value->Append(new base::StringValue(url1_)); |
| 381 } | 380 } |
| 382 | 381 |
| 383 scoped_ptr<base::Value> merged_value(PrefModelAssociator::MergePreference( | 382 scoped_ptr<base::Value> merged_value(PrefModelAssociator::MergePreference( |
| 384 pref, | 383 pref, |
| 385 *pref_service_->GetUserPrefValue(pref), | 384 *pref_service_->GetUserPrefValue(pref), |
| 386 server_url_list_)); | 385 server_url_list_)); |
| 387 | 386 |
| 388 base::ListValue expected; | 387 base::ListValue expected; |
| 389 expected.Append(base::Value::CreateStringValue(url0_)); | 388 expected.Append(new base::StringValue(url0_)); |
| 390 expected.Append(base::Value::CreateStringValue(url1_)); | 389 expected.Append(new base::StringValue(url1_)); |
| 391 return merged_value->Equals(&expected); | 390 return merged_value->Equals(&expected); |
| 392 } | 391 } |
| 393 | 392 |
| 394 bool MergeDictionaryPreference(const char* pref) { | 393 bool MergeDictionaryPreference(const char* pref) { |
| 395 { | 394 { |
| 396 DictionaryPrefUpdate update(pref_service_, pref); | 395 DictionaryPrefUpdate update(pref_service_, pref); |
| 397 base::DictionaryValue* local_dict_value = update.Get(); | 396 base::DictionaryValue* local_dict_value = update.Get(); |
| 398 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); | 397 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); |
| 399 } | 398 } |
| 400 | 399 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 414 std::string expression0_; | 413 std::string expression0_; |
| 415 std::string expression1_; | 414 std::string expression1_; |
| 416 std::string content_type0_; | 415 std::string content_type0_; |
| 417 base::ListValue server_url_list_; | 416 base::ListValue server_url_list_; |
| 418 base::DictionaryValue server_patterns_; | 417 base::DictionaryValue server_patterns_; |
| 419 }; | 418 }; |
| 420 | 419 |
| 421 TEST_F(IndividualPreferenceMergeTest, URLsToRestoreOnStartup) { | 420 TEST_F(IndividualPreferenceMergeTest, URLsToRestoreOnStartup) { |
| 422 EXPECT_TRUE(MergeListPreference(prefs::kURLsToRestoreOnStartup)); | 421 EXPECT_TRUE(MergeListPreference(prefs::kURLsToRestoreOnStartup)); |
| 423 } | 422 } |
| OLD | NEW |