| OLD | NEW |
| 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/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
| 6 #include "base/memory/scoped_vector.h" | 6 #include "base/memory/scoped_vector.h" |
| 7 #include "base/message_loop/message_loop.h" |
| 7 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
| 8 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/time/time.h" | 11 #include "base/time/time.h" |
| 11 #include "chrome/browser/search_engines/template_url_service_factory.h" | |
| 12 #include "chrome/browser/search_engines/template_url_service_test_util.h" | 12 #include "chrome/browser/search_engines/template_url_service_test_util.h" |
| 13 #include "chrome/test/base/testing_pref_service_syncable.h" | 13 #include "chrome/test/base/testing_pref_service_syncable.h" |
| 14 #include "chrome/test/base/testing_profile.h" | 14 #include "chrome/test/base/testing_profile.h" |
| 15 #include "components/search_engines/search_engines_pref_names.h" | 15 #include "components/search_engines/search_engines_pref_names.h" |
| 16 #include "components/search_engines/search_terms_data.h" | 16 #include "components/search_engines/search_terms_data.h" |
| 17 #include "components/search_engines/template_url.h" | 17 #include "components/search_engines/template_url.h" |
| 18 #include "components/search_engines/template_url_prepopulate_data.h" | 18 #include "components/search_engines/template_url_prepopulate_data.h" |
| 19 #include "components/search_engines/template_url_service.h" | 19 #include "components/search_engines/template_url_service.h" |
| 20 #include "components/search_engines/template_url_service_client.h" | 20 #include "components/search_engines/template_url_service_client.h" |
| 21 #include "net/base/net_util.h" | 21 #include "net/base/net_util.h" |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 | 154 |
| 155 TemplateURLServiceSyncTest(); | 155 TemplateURLServiceSyncTest(); |
| 156 | 156 |
| 157 virtual void SetUp() OVERRIDE; | 157 virtual void SetUp() OVERRIDE; |
| 158 virtual void TearDown() OVERRIDE; | 158 virtual void TearDown() OVERRIDE; |
| 159 | 159 |
| 160 TemplateURLService* model() { return test_util_a_->model(); } | 160 TemplateURLService* model() { return test_util_a_->model(); } |
| 161 // For readability, we redefine an accessor for Model A for use in tests that | 161 // For readability, we redefine an accessor for Model A for use in tests that |
| 162 // involve syncing two models. | 162 // involve syncing two models. |
| 163 TemplateURLService* model_a() { return test_util_a_->model(); } | 163 TemplateURLService* model_a() { return test_util_a_->model(); } |
| 164 TemplateURLService* model_b() { return model_b_.get(); } | 164 TemplateURLService* model_b() { return test_util_b_->model(); } |
| 165 TestingProfile* profile_a() { return test_util_a_->profile(); } | 165 TestingProfile* profile_a() { return test_util_a_->profile(); } |
| 166 TestChangeProcessor* processor() { return sync_processor_.get(); } | 166 TestChangeProcessor* processor() { return sync_processor_.get(); } |
| 167 scoped_ptr<syncer::SyncChangeProcessor> PassProcessor(); | 167 scoped_ptr<syncer::SyncChangeProcessor> PassProcessor(); |
| 168 scoped_ptr<syncer::SyncErrorFactory> CreateAndPassSyncErrorFactory(); | 168 scoped_ptr<syncer::SyncErrorFactory> CreateAndPassSyncErrorFactory(); |
| 169 | 169 |
| 170 // Creates a TemplateURL with some test values. The caller owns the returned | 170 // Creates a TemplateURL with some test values. The caller owns the returned |
| 171 // TemplateURL*. | 171 // TemplateURL*. |
| 172 TemplateURL* CreateTestTemplateURL(const base::string16& keyword, | 172 TemplateURL* CreateTestTemplateURL(const base::string16& keyword, |
| 173 const std::string& url, | 173 const std::string& url, |
| 174 const std::string& guid = std::string(), | 174 const std::string& guid = std::string(), |
| (...skipping 27 matching lines...) Expand all Loading... |
| 202 | 202 |
| 203 // Creates a new TemplateURL copying the fields of |turl| but replacing | 203 // Creates a new TemplateURL copying the fields of |turl| but replacing |
| 204 // the |url| and |guid| and initializing the date_created and last_modified | 204 // the |url| and |guid| and initializing the date_created and last_modified |
| 205 // timestamps to a default value of 100. The caller owns the returned | 205 // timestamps to a default value of 100. The caller owns the returned |
| 206 // TemplateURL*. | 206 // TemplateURL*. |
| 207 TemplateURL* CopyTemplateURL(const TemplateURLData* turl, | 207 TemplateURL* CopyTemplateURL(const TemplateURLData* turl, |
| 208 const std::string& url, | 208 const std::string& url, |
| 209 const std::string& guid); | 209 const std::string& guid); |
| 210 | 210 |
| 211 protected: | 211 protected: |
| 212 base::MessageLoop message_loop_; |
| 212 // We keep two TemplateURLServices to test syncing between them. | 213 // We keep two TemplateURLServices to test syncing between them. |
| 213 scoped_ptr<TemplateURLServiceTestUtil> test_util_a_; | 214 scoped_ptr<TemplateURLServiceTestUtil> test_util_a_; |
| 214 scoped_ptr<TestingProfile> profile_b_; | 215 scoped_ptr<TemplateURLServiceTestUtil> test_util_b_; |
| 215 scoped_ptr<TemplateURLService> model_b_; | |
| 216 | 216 |
| 217 // Our dummy ChangeProcessor used to inspect changes pushed to Sync. | 217 // Our dummy ChangeProcessor used to inspect changes pushed to Sync. |
| 218 scoped_ptr<TestChangeProcessor> sync_processor_; | 218 scoped_ptr<TestChangeProcessor> sync_processor_; |
| 219 scoped_ptr<syncer::SyncChangeProcessorWrapperForTest> sync_processor_wrapper_; | 219 scoped_ptr<syncer::SyncChangeProcessorWrapperForTest> sync_processor_wrapper_; |
| 220 | 220 |
| 221 DISALLOW_COPY_AND_ASSIGN(TemplateURLServiceSyncTest); | 221 DISALLOW_COPY_AND_ASSIGN(TemplateURLServiceSyncTest); |
| 222 }; | 222 }; |
| 223 | 223 |
| 224 TemplateURLServiceSyncTest::TemplateURLServiceSyncTest() | 224 TemplateURLServiceSyncTest::TemplateURLServiceSyncTest() |
| 225 : sync_processor_(new TestChangeProcessor), | 225 : sync_processor_(new TestChangeProcessor), |
| 226 sync_processor_wrapper_(new syncer::SyncChangeProcessorWrapperForTest( | 226 sync_processor_wrapper_(new syncer::SyncChangeProcessorWrapperForTest( |
| 227 sync_processor_.get())) {} | 227 sync_processor_.get())) {} |
| 228 | 228 |
| 229 void TemplateURLServiceSyncTest::SetUp() { | 229 void TemplateURLServiceSyncTest::SetUp() { |
| 230 DefaultSearchManager::SetFallbackSearchEnginesDisabledForTesting(true); | 230 DefaultSearchManager::SetFallbackSearchEnginesDisabledForTesting(true); |
| 231 test_util_a_.reset(new TemplateURLServiceTestUtil); | 231 test_util_a_.reset(new TemplateURLServiceTestUtil); |
| 232 // Use ChangeToLoadState() instead of VerifyLoad() so we don't actually pull | 232 // Use ChangeToLoadState() instead of VerifyLoad() so we don't actually pull |
| 233 // in the prepopulate data, which the sync tests don't care about (and would | 233 // in the prepopulate data, which the sync tests don't care about (and would |
| 234 // just foul them up). | 234 // just foul them up). |
| 235 test_util_a_->ChangeModelToLoadState(); | 235 test_util_a_->ChangeModelToLoadState(); |
| 236 profile_b_.reset(new TestingProfile); | 236 |
| 237 TemplateURLServiceFactory::GetInstance()-> | 237 test_util_b_.reset(new TemplateURLServiceTestUtil); |
| 238 RegisterUserPrefsOnBrowserContextForTest(profile_b_.get()); | 238 test_util_b_->VerifyLoad(); |
| 239 model_b_.reset(new TemplateURLService( | |
| 240 profile_b_->GetPrefs(), make_scoped_ptr(new SearchTermsData), NULL, | |
| 241 scoped_ptr<TemplateURLServiceClient>(), NULL, NULL, base::Closure())); | |
| 242 model_b_->Load(); | |
| 243 } | 239 } |
| 244 | 240 |
| 245 void TemplateURLServiceSyncTest::TearDown() { | 241 void TemplateURLServiceSyncTest::TearDown() { |
| 246 test_util_a_.reset(); | 242 test_util_a_.reset(); |
| 247 DefaultSearchManager::SetFallbackSearchEnginesDisabledForTesting(false); | 243 DefaultSearchManager::SetFallbackSearchEnginesDisabledForTesting(false); |
| 248 } | 244 } |
| 249 | 245 |
| 250 scoped_ptr<syncer::SyncChangeProcessor> | 246 scoped_ptr<syncer::SyncChangeProcessor> |
| 251 TemplateURLServiceSyncTest::PassProcessor() { | 247 TemplateURLServiceSyncTest::PassProcessor() { |
| 252 return sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(); | 248 return sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(); |
| (...skipping 1981 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2234 const char kNewGUID[] = "newdefault"; | 2230 const char kNewGUID[] = "newdefault"; |
| 2235 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("what"), | 2231 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("what"), |
| 2236 "http://thewhat.com/{searchTerms}", | 2232 "http://thewhat.com/{searchTerms}", |
| 2237 kNewGUID)); | 2233 kNewGUID)); |
| 2238 model()->SetUserSelectedDefaultSearchProvider( | 2234 model()->SetUserSelectedDefaultSearchProvider( |
| 2239 model()->GetTemplateURLForGUID(kNewGUID)); | 2235 model()->GetTemplateURLForGUID(kNewGUID)); |
| 2240 | 2236 |
| 2241 EXPECT_EQ(kNewGUID, profile_a()->GetTestingPrefService()->GetString( | 2237 EXPECT_EQ(kNewGUID, profile_a()->GetTestingPrefService()->GetString( |
| 2242 prefs::kSyncedDefaultSearchProviderGUID)); | 2238 prefs::kSyncedDefaultSearchProviderGUID)); |
| 2243 } | 2239 } |
| OLD | NEW |