X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fchrome%2Fbrowser%2Fsearch_engines%2Ftemplate_url_service_sync_unittest.cc;h=60a18ba0042b2fcb8a7ee549fffd16bf19dd0c0c;hb=004985e17e624662a4c85c76a7654039dc83f028;hp=ff40130a81a20d32c6e973788f47ce2249552859;hpb=2f108dbacb161091e42a3479f4e171339b7e7623;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/chrome/browser/search_engines/template_url_service_sync_unittest.cc b/src/chrome/browser/search_engines/template_url_service_sync_unittest.cc index ff40130..60a18ba 100644 --- a/src/chrome/browser/search_engines/template_url_service_sync_unittest.cc +++ b/src/chrome/browser/search_engines/template_url_service_sync_unittest.cc @@ -207,7 +207,7 @@ class TemplateURLServiceSyncTest : public testing::Test { // the |url| and |guid| and initializing the date_created and last_modified // timestamps to a default value of 100. The caller owns the returned // TemplateURL*. - TemplateURL* CopyTemplateURL(const TemplateURL* turl, + TemplateURL* CopyTemplateURL(const TemplateURLData* turl, const std::string& url, const std::string& guid); @@ -230,6 +230,7 @@ TemplateURLServiceSyncTest::TemplateURLServiceSyncTest() sync_processor_.get())) {} void TemplateURLServiceSyncTest::SetUp() { + TemplateURLService::set_fallback_search_engines_disabled(true); test_util_a_.SetUp(); // Use ChangeToLoadState() instead of VerifyLoad() so we don't actually pull // in the prepopulate data, which the sync tests don't care about (and would @@ -244,6 +245,7 @@ void TemplateURLServiceSyncTest::SetUp() { void TemplateURLServiceSyncTest::TearDown() { test_util_a_.TearDown(); + TemplateURLService::set_fallback_search_engines_disabled(false); } scoped_ptr @@ -347,10 +349,10 @@ TemplateURL* TemplateURLServiceSyncTest::Deserialize( } TemplateURL* TemplateURLServiceSyncTest::CopyTemplateURL( - const TemplateURL* turl, + const TemplateURLData* turl, const std::string& url, const std::string& guid) { - TemplateURLData data (turl->data()); + TemplateURLData data = *turl; data.SetURL(url); data.date_created = Time::FromTimeT(100); data.last_modified = Time::FromTimeT(100); @@ -491,7 +493,7 @@ TEST_F(TemplateURLServiceSyncTest, IsLocalTemplateURLBetter) { test_cases[i].local_time, true, test_cases[i].local_created_by_policy); model()->Add(local_turl); if (test_cases[i].local_is_default) - model()->SetDefaultSearchProvider(local_turl); + model()->SetUserSelectedDefaultSearchProvider(local_turl); scoped_ptr sync_turl(CreateTestTemplateURL( ASCIIToUTF16("synckey"), "www.sync.com", "syncguid", @@ -501,7 +503,7 @@ TEST_F(TemplateURLServiceSyncTest, IsLocalTemplateURLBetter) { // Undo the changes. if (test_cases[i].local_is_default) - model()->SetDefaultSearchProvider(NULL); + model()->SetUserSelectedDefaultSearchProvider(NULL); model()->Remove(local_turl); } } @@ -1452,7 +1454,8 @@ TEST_F(TemplateURLServiceSyncTest, SyncedDefaultGUIDArrivesFirst) { initial_data[1] = TemplateURLService::CreateSyncDataFromTemplateURL(*turl); model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, initial_data, PassProcessor(), CreateAndPassSyncErrorFactory()); - model()->SetDefaultSearchProvider(model()->GetTemplateURLForGUID("key2")); + model()->SetUserSelectedDefaultSearchProvider( + model()->GetTemplateURLForGUID("key2")); EXPECT_EQ(3U, model()->GetAllSyncData(syncer::SEARCH_ENGINES).size()); const TemplateURL* default_search = model()->GetDefaultSearchProvider(); @@ -1515,7 +1518,8 @@ TEST_F(TemplateURLServiceSyncTest, DefaultGuidDeletedBeforeNewDSPArrives) { *turl2)); model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, initial_data, PassProcessor(), CreateAndPassSyncErrorFactory()); - model()->SetDefaultSearchProvider(model()->GetTemplateURLForGUID("key1")); + model()->SetUserSelectedDefaultSearchProvider( + model()->GetTemplateURLForGUID("key1")); ASSERT_EQ("key1", model()->GetDefaultSearchProvider()->sync_guid()); EXPECT_EQ(2U, model()->GetAllSyncData(syncer::SEARCH_ENGINES).size()); @@ -1572,7 +1576,7 @@ TEST_F(TemplateURLServiceSyncTest, SyncedDefaultArrivesAfterStartup) { model()->Add(CreateTestTemplateURL(ASCIIToUTF16("what"), "http://thewhat.com/{searchTerms}", "initdefault")); - model()->SetDefaultSearchProvider( + model()->SetUserSelectedDefaultSearchProvider( model()->GetTemplateURLForGUID("initdefault")); const TemplateURL* default_search = model()->GetDefaultSearchProvider(); @@ -1610,7 +1614,8 @@ TEST_F(TemplateURLServiceSyncTest, SyncedDefaultAlreadySetOnStartup) { model()->Add(CreateTestTemplateURL(ASCIIToUTF16("what"), "http://thewhat.com/{searchTerms}", kGUID)); - model()->SetDefaultSearchProvider(model()->GetTemplateURLForGUID(kGUID)); + model()->SetUserSelectedDefaultSearchProvider( + model()->GetTemplateURLForGUID(kGUID)); const TemplateURL* default_search = model()->GetDefaultSearchProvider(); ASSERT_TRUE(default_search); @@ -1631,47 +1636,14 @@ TEST_F(TemplateURLServiceSyncTest, SyncedDefaultAlreadySetOnStartup) { ASSERT_EQ(default_search, model()->GetDefaultSearchProvider()); } -TEST_F(TemplateURLServiceSyncTest, NewDefaultIsAlreadySynced) { - // Ensure that if the synced DSP pref changed to another synced entry (as - // opposed to coming in as a new entry), it gets reset correctly. - // Start by setting kSyncedDefaultSearchProviderGUID to the entry that should - // end up as the default. Note that this must be done before the initial - // entries are added as otherwise this call will set the DSP immediately. - profile_a()->GetTestingPrefService()->SetString( - prefs::kSyncedDefaultSearchProviderGUID, "key2"); - - syncer::SyncDataList initial_data = CreateInitialSyncData(); - // Ensure that our candidate default supports replacement. - scoped_ptr turl(CreateTestTemplateURL(ASCIIToUTF16("key2"), - "http://key2.com/{searchTerms}", "key2", 90)); - initial_data[1] = TemplateURLService::CreateSyncDataFromTemplateURL(*turl); - for (syncer::SyncDataList::const_iterator iter = initial_data.begin(); - iter != initial_data.end(); ++iter) { - TemplateURL* converted = Deserialize(*iter); - model()->Add(converted); - } - - // Set the initial default to something other than the desired default. - model()->SetDefaultSearchProvider(model()->GetTemplateURLForGUID("key1")); - - // Merge in the same data (i.e. already synced entries). - model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, initial_data, - PassProcessor(), CreateAndPassSyncErrorFactory()); - - EXPECT_EQ(3U, model()->GetAllSyncData(syncer::SEARCH_ENGINES).size()); - TemplateURL* current_default = model()->GetDefaultSearchProvider(); - ASSERT_TRUE(current_default); - EXPECT_EQ("key2", current_default->sync_guid()); - EXPECT_EQ(ASCIIToUTF16("key2"), current_default->keyword()); -} - TEST_F(TemplateURLServiceSyncTest, SyncWithManagedDefaultSearch) { // First start off with a few entries and make sure we can set an unmanaged // default search provider. syncer::SyncDataList initial_data = CreateInitialSyncData(); model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, initial_data, PassProcessor(), CreateAndPassSyncErrorFactory()); - model()->SetDefaultSearchProvider(model()->GetTemplateURLForGUID("key2")); + model()->SetUserSelectedDefaultSearchProvider( + model()->GetTemplateURLForGUID("key2")); EXPECT_EQ(3U, model()->GetAllSyncData(syncer::SEARCH_ENGINES).size()); ASSERT_FALSE(model()->is_default_search_managed()); @@ -1727,7 +1699,7 @@ TEST_F(TemplateURLServiceSyncTest, SyncMergeDeletesDefault) { TemplateURL* default_turl = CreateTestTemplateURL(ASCIIToUTF16("key1"), "http://key1.com/{searchTerms}", "whateverguid", 10); model()->Add(default_turl); - model()->SetDefaultSearchProvider(default_turl); + model()->SetUserSelectedDefaultSearchProvider(default_turl); syncer::SyncDataList initial_data = CreateInitialSyncData(); // The key1 entry should be a duplicate of the default. @@ -1753,7 +1725,7 @@ TEST_F(TemplateURLServiceSyncTest, LocalDefaultWinsConflict) { "whateverguid", 10); model()->Add(default_turl); - model()->SetDefaultSearchProvider(default_turl); + model()->SetUserSelectedDefaultSearchProvider(default_turl); syncer::SyncDataList initial_data = CreateInitialSyncData(); // The key1 entry should be different from the default but conflict in the @@ -1849,9 +1821,9 @@ TEST_F(TemplateURLServiceSyncTest, PreSyncUpdates) { const char* kNewKeyword = "somethingnew"; // Fetch the prepopulate search engines so we know what they are. size_t default_search_provider_index = 0; - ScopedVector prepop_turls = + ScopedVector prepop_turls = TemplateURLPrepopulateData::GetPrepopulatedEngines( - profile_a(), &default_search_provider_index); + profile_a()->GetTestingPrefService(), &default_search_provider_index); // We have to prematurely exit this test if for some reason this machine does // not have any prepopulate TemplateURLs. @@ -1859,13 +1831,13 @@ TEST_F(TemplateURLServiceSyncTest, PreSyncUpdates) { // Create a copy of the first TemplateURL with a really old timestamp and a // new keyword. Add it to the model. - TemplateURLData data_copy(prepop_turls[0]->data()); + TemplateURLData data_copy(*prepop_turls[0]); data_copy.last_modified = Time::FromTimeT(10); base::string16 original_keyword = data_copy.keyword(); data_copy.SetKeyword(ASCIIToUTF16(kNewKeyword)); // Set safe_for_autoreplace to false so our keyword survives. data_copy.safe_for_autoreplace = false; - model()->Add(new TemplateURL(prepop_turls[0]->profile(), data_copy)); + model()->Add(new TemplateURL(profile_a(), data_copy)); // Merge the prepopulate search engines. base::Time pre_merge_time = base::Time::Now(); @@ -1876,9 +1848,9 @@ TEST_F(TemplateURLServiceSyncTest, PreSyncUpdates) { // updated time. TemplateURL* added_turl = model()->GetTemplateURLForKeyword( ASCIIToUTF16(kNewKeyword)); + ASSERT_TRUE(added_turl); base::Time new_timestamp = added_turl->last_modified(); EXPECT_GE(new_timestamp, pre_merge_time); - ASSERT_TRUE(added_turl); std::string sync_guid = added_turl->sync_guid(); // Bring down a copy of the prepopulate engine from Sync with the old values, @@ -1888,8 +1860,7 @@ TEST_F(TemplateURLServiceSyncTest, PreSyncUpdates) { syncer::SyncDataList initial_data; data_copy.SetKeyword(original_keyword); data_copy.sync_guid = sync_guid; - scoped_ptr sync_turl( - new TemplateURL(prepop_turls[0]->profile(), data_copy)); + scoped_ptr sync_turl(new TemplateURL(profile_a(), data_copy)); initial_data.push_back( TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl)); @@ -2113,7 +2084,7 @@ TEST_F(TemplateURLServiceSyncTest, MergeInSyncTemplateURL) { } TEST_F(TemplateURLServiceSyncTest, MergePrepopulatedEngine) { - scoped_ptr default_turl( + scoped_ptr default_turl( TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); // Merge with an initial list containing a prepopulated engine with a wrong @@ -2129,7 +2100,7 @@ TEST_F(TemplateURLServiceSyncTest, MergePrepopulatedEngine) { const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); EXPECT_TRUE(result_turl); EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); - EXPECT_EQ(default_turl->short_name(), result_turl->short_name()); + EXPECT_EQ(default_turl->short_name, result_turl->short_name()); EXPECT_EQ(default_turl->url(), result_turl->url()); } @@ -2138,7 +2109,7 @@ TEST_F(TemplateURLServiceSyncTest, AddPrepopulatedEngine) { syncer::SEARCH_ENGINES, syncer::SyncDataList(), PassProcessor(), CreateAndPassSyncErrorFactory()); - scoped_ptr default_turl( + scoped_ptr default_turl( TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); TemplateURL* sync_turl = CopyTemplateURL(default_turl.get(), "http://wrong.url.com?q={searchTerms}", "default"); @@ -2152,15 +2123,15 @@ TEST_F(TemplateURLServiceSyncTest, AddPrepopulatedEngine) { const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); EXPECT_TRUE(result_turl); EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); - EXPECT_EQ(default_turl->short_name(), result_turl->short_name()); + EXPECT_EQ(default_turl->short_name, result_turl->short_name()); EXPECT_EQ(default_turl->url(), result_turl->url()); } TEST_F(TemplateURLServiceSyncTest, UpdatePrepopulatedEngine) { - scoped_ptr default_turl( + scoped_ptr default_turl( TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); - TemplateURLData data(default_turl->data()); + TemplateURLData data = *default_turl; data.SetURL("http://old.wrong.url.com?q={searchTerms}"); data.sync_guid = "default"; model()->Add(new TemplateURL(NULL, data)); @@ -2182,15 +2153,15 @@ TEST_F(TemplateURLServiceSyncTest, UpdatePrepopulatedEngine) { const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); EXPECT_TRUE(result_turl); EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); - EXPECT_EQ(default_turl->short_name(), result_turl->short_name()); + EXPECT_EQ(default_turl->short_name, result_turl->short_name()); EXPECT_EQ(default_turl->url(), result_turl->url()); } TEST_F(TemplateURLServiceSyncTest, MergeEditedPrepopulatedEngine) { - scoped_ptr default_turl( + scoped_ptr default_turl( TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); - TemplateURLData data(default_turl->data()); + TemplateURLData data(*default_turl); data.safe_for_autoreplace = false; data.SetKeyword(ASCIIToUTF16("new_kw")); data.short_name = ASCIIToUTF16("my name"); @@ -2217,10 +2188,10 @@ TEST_F(TemplateURLServiceSyncTest, MergeEditedPrepopulatedEngine) { } TEST_F(TemplateURLServiceSyncTest, MergeNonEditedPrepopulatedEngine) { - scoped_ptr default_turl( + scoped_ptr default_turl( TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); - TemplateURLData data(default_turl->data()); + TemplateURLData data(*default_turl); data.safe_for_autoreplace = true; // Can be replaced with built-in values. data.SetKeyword(ASCIIToUTF16("new_kw")); data.short_name = ASCIIToUTF16("my name"); @@ -2242,6 +2213,28 @@ TEST_F(TemplateURLServiceSyncTest, MergeNonEditedPrepopulatedEngine) { const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); EXPECT_TRUE(result_turl); EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); - EXPECT_EQ(default_turl->short_name(), result_turl->short_name()); + EXPECT_EQ(default_turl->short_name, result_turl->short_name()); EXPECT_EQ(default_turl->url(), result_turl->url()); } + +TEST_F(TemplateURLServiceSyncTest, GUIDUpdatedOnDefaultSearchChange) { + const char kGUID[] = "initdefault"; + model()->Add(CreateTestTemplateURL(ASCIIToUTF16("what"), + "http://thewhat.com/{searchTerms}", + kGUID)); + model()->SetUserSelectedDefaultSearchProvider( + model()->GetTemplateURLForGUID(kGUID)); + + const TemplateURL* default_search = model()->GetDefaultSearchProvider(); + ASSERT_TRUE(default_search); + + const char kNewGUID[] = "newdefault"; + model()->Add(CreateTestTemplateURL(ASCIIToUTF16("what"), + "http://thewhat.com/{searchTerms}", + kNewGUID)); + model()->SetUserSelectedDefaultSearchProvider( + model()->GetTemplateURLForGUID(kNewGUID)); + + EXPECT_EQ(kNewGUID, profile_a()->GetTestingPrefService()->GetString( + prefs::kSyncedDefaultSearchProviderGUID)); +}