| 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/run_loop.h" | 7 #include "base/run_loop.h" |
| 8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 } | 283 } |
| 284 | 284 |
| 285 TemplateURL* TemplateURLServiceSyncTest::CreateTestTemplateURL( | 285 TemplateURL* TemplateURLServiceSyncTest::CreateTestTemplateURL( |
| 286 const base::string16& keyword, | 286 const base::string16& keyword, |
| 287 const std::string& url, | 287 const std::string& url, |
| 288 const std::string& guid, | 288 const std::string& guid, |
| 289 time_t last_mod, | 289 time_t last_mod, |
| 290 bool safe_for_autoreplace, | 290 bool safe_for_autoreplace, |
| 291 bool created_by_policy) const { | 291 bool created_by_policy) const { |
| 292 TemplateURLData data; | 292 TemplateURLData data; |
| 293 data.short_name = ASCIIToUTF16("unittest"); | 293 data.SetShortName(ASCIIToUTF16("unittest")); |
| 294 data.SetKeyword(keyword); | 294 data.SetKeyword(keyword); |
| 295 data.SetURL(url); | 295 data.SetURL(url); |
| 296 data.favicon_url = GURL("http://favicon.url"); | 296 data.favicon_url = GURL("http://favicon.url"); |
| 297 data.safe_for_autoreplace = safe_for_autoreplace; | 297 data.safe_for_autoreplace = safe_for_autoreplace; |
| 298 data.date_created = Time::FromTimeT(100); | 298 data.date_created = Time::FromTimeT(100); |
| 299 data.last_modified = Time::FromTimeT(last_mod); | 299 data.last_modified = Time::FromTimeT(last_mod); |
| 300 data.created_by_policy = created_by_policy; | 300 data.created_by_policy = created_by_policy; |
| 301 data.prepopulate_id = 999999; | 301 data.prepopulate_id = 999999; |
| 302 if (!guid.empty()) | 302 if (!guid.empty()) |
| 303 data.sync_guid = guid; | 303 data.sync_guid = guid; |
| (...skipping 956 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1260 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, key2_change.change_type()); | 1260 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, key2_change.change_type()); |
| 1261 EXPECT_EQ(keyword2->keyword(), | 1261 EXPECT_EQ(keyword2->keyword(), |
| 1262 base::UTF8ToUTF16(GetKeyword(key2_change.sync_data()))); | 1262 base::UTF8ToUTF16(GetKeyword(key2_change.sync_data()))); |
| 1263 } | 1263 } |
| 1264 | 1264 |
| 1265 TEST_F(TemplateURLServiceSyncTest, DuplicateEncodingsRemoved) { | 1265 TEST_F(TemplateURLServiceSyncTest, DuplicateEncodingsRemoved) { |
| 1266 // Create a sync entry with duplicate encodings. | 1266 // Create a sync entry with duplicate encodings. |
| 1267 syncer::SyncDataList initial_data; | 1267 syncer::SyncDataList initial_data; |
| 1268 | 1268 |
| 1269 TemplateURLData data; | 1269 TemplateURLData data; |
| 1270 data.short_name = ASCIIToUTF16("test"); | 1270 data.SetShortName(ASCIIToUTF16("test")); |
| 1271 data.SetKeyword(ASCIIToUTF16("keyword")); | 1271 data.SetKeyword(ASCIIToUTF16("keyword")); |
| 1272 data.SetURL("http://test/%s"); | 1272 data.SetURL("http://test/%s"); |
| 1273 data.input_encodings.push_back("UTF-8"); | 1273 data.input_encodings.push_back("UTF-8"); |
| 1274 data.input_encodings.push_back("UTF-8"); | 1274 data.input_encodings.push_back("UTF-8"); |
| 1275 data.input_encodings.push_back("UTF-16"); | 1275 data.input_encodings.push_back("UTF-16"); |
| 1276 data.input_encodings.push_back("UTF-8"); | 1276 data.input_encodings.push_back("UTF-8"); |
| 1277 data.input_encodings.push_back("Big5"); | 1277 data.input_encodings.push_back("Big5"); |
| 1278 data.input_encodings.push_back("UTF-16"); | 1278 data.input_encodings.push_back("UTF-16"); |
| 1279 data.input_encodings.push_back("Big5"); | 1279 data.input_encodings.push_back("Big5"); |
| 1280 data.input_encodings.push_back("Windows-1252"); | 1280 data.input_encodings.push_back("Windows-1252"); |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1444 // Keep a copy of it so we can compare it after we re-merge. | 1444 // Keep a copy of it so we can compare it after we re-merge. |
| 1445 TemplateURL* key1_url = model()->GetTemplateURLForGUID("key1"); | 1445 TemplateURL* key1_url = model()->GetTemplateURLForGUID("key1"); |
| 1446 ASSERT_TRUE(key1_url); | 1446 ASSERT_TRUE(key1_url); |
| 1447 scoped_ptr<TemplateURL> updated_turl(new TemplateURL(key1_url->data())); | 1447 scoped_ptr<TemplateURL> updated_turl(new TemplateURL(key1_url->data())); |
| 1448 EXPECT_EQ(Time::FromTimeT(90), updated_turl->last_modified()); | 1448 EXPECT_EQ(Time::FromTimeT(90), updated_turl->last_modified()); |
| 1449 | 1449 |
| 1450 // Modify a single field of the initial data. This should not be updated in | 1450 // Modify a single field of the initial data. This should not be updated in |
| 1451 // the second merge, as the last_modified timestamp remains the same. | 1451 // the second merge, as the last_modified timestamp remains the same. |
| 1452 scoped_ptr<TemplateURL> temp_turl(Deserialize(initial_data[0])); | 1452 scoped_ptr<TemplateURL> temp_turl(Deserialize(initial_data[0])); |
| 1453 TemplateURLData data(temp_turl->data()); | 1453 TemplateURLData data(temp_turl->data()); |
| 1454 data.short_name = ASCIIToUTF16("SomethingDifferent"); | 1454 data.SetShortName(ASCIIToUTF16("SomethingDifferent")); |
| 1455 temp_turl.reset(new TemplateURL(data)); | 1455 temp_turl.reset(new TemplateURL(data)); |
| 1456 initial_data.clear(); | 1456 initial_data.clear(); |
| 1457 initial_data.push_back( | 1457 initial_data.push_back( |
| 1458 TemplateURLService::CreateSyncDataFromTemplateURL(*temp_turl)); | 1458 TemplateURLService::CreateSyncDataFromTemplateURL(*temp_turl)); |
| 1459 | 1459 |
| 1460 // Remerge the data again. This simulates shutting down and syncing again | 1460 // Remerge the data again. This simulates shutting down and syncing again |
| 1461 // at a different time, but the cloud data has not changed. | 1461 // at a different time, but the cloud data has not changed. |
| 1462 model()->StopSyncing(syncer::SEARCH_ENGINES); | 1462 model()->StopSyncing(syncer::SEARCH_ENGINES); |
| 1463 sync_processor_wrapper_.reset( | 1463 sync_processor_wrapper_.reset( |
| 1464 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); | 1464 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1522 } | 1522 } |
| 1523 | 1523 |
| 1524 TEST_F(TemplateURLServiceSyncTest, DefaultGuidDeletedBeforeNewDSPArrives) { | 1524 TEST_F(TemplateURLServiceSyncTest, DefaultGuidDeletedBeforeNewDSPArrives) { |
| 1525 syncer::SyncDataList initial_data; | 1525 syncer::SyncDataList initial_data; |
| 1526 // The default search provider should support replacement. | 1526 // The default search provider should support replacement. |
| 1527 scoped_ptr<TemplateURL> turl1(CreateTestTemplateURL(ASCIIToUTF16("key1"), | 1527 scoped_ptr<TemplateURL> turl1(CreateTestTemplateURL(ASCIIToUTF16("key1"), |
| 1528 "http://key1.com/{searchTerms}", "key1", 90)); | 1528 "http://key1.com/{searchTerms}", "key1", 90)); |
| 1529 // Create a second default search provider for the | 1529 // Create a second default search provider for the |
| 1530 // FindNewDefaultSearchProvider method to find. | 1530 // FindNewDefaultSearchProvider method to find. |
| 1531 TemplateURLData data; | 1531 TemplateURLData data; |
| 1532 data.short_name = ASCIIToUTF16("unittest"); | 1532 data.SetShortName(ASCIIToUTF16("unittest")); |
| 1533 data.SetKeyword(ASCIIToUTF16("key2")); | 1533 data.SetKeyword(ASCIIToUTF16("key2")); |
| 1534 data.SetURL("http://key2.com/{searchTerms}"); | 1534 data.SetURL("http://key2.com/{searchTerms}"); |
| 1535 data.favicon_url = GURL("http://favicon.url"); | 1535 data.favicon_url = GURL("http://favicon.url"); |
| 1536 data.safe_for_autoreplace = false; | 1536 data.safe_for_autoreplace = false; |
| 1537 data.date_created = Time::FromTimeT(100); | 1537 data.date_created = Time::FromTimeT(100); |
| 1538 data.last_modified = Time::FromTimeT(100); | 1538 data.last_modified = Time::FromTimeT(100); |
| 1539 data.created_by_policy = false; | 1539 data.created_by_policy = false; |
| 1540 data.prepopulate_id = 999999; | 1540 data.prepopulate_id = 999999; |
| 1541 data.sync_guid = "key2"; | 1541 data.sync_guid = "key2"; |
| 1542 data.show_in_default_list = true; | 1542 data.show_in_default_list = true; |
| (...skipping 579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2122 scoped_ptr<TemplateURL> sync_turl(CopyTemplateURL(default_turl.get(), | 2122 scoped_ptr<TemplateURL> sync_turl(CopyTemplateURL(default_turl.get(), |
| 2123 "http://wrong.url.com?q={searchTerms}", "default")); | 2123 "http://wrong.url.com?q={searchTerms}", "default")); |
| 2124 list.push_back(TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl)); | 2124 list.push_back(TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl)); |
| 2125 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( | 2125 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( |
| 2126 syncer::SEARCH_ENGINES, list, PassProcessor(), | 2126 syncer::SEARCH_ENGINES, list, PassProcessor(), |
| 2127 CreateAndPassSyncErrorFactory()); | 2127 CreateAndPassSyncErrorFactory()); |
| 2128 | 2128 |
| 2129 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); | 2129 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); |
| 2130 EXPECT_TRUE(result_turl); | 2130 EXPECT_TRUE(result_turl); |
| 2131 EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); | 2131 EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); |
| 2132 EXPECT_EQ(default_turl->short_name, result_turl->short_name()); | 2132 EXPECT_EQ(default_turl->short_name(), result_turl->short_name()); |
| 2133 EXPECT_EQ(default_turl->url(), result_turl->url()); | 2133 EXPECT_EQ(default_turl->url(), result_turl->url()); |
| 2134 } | 2134 } |
| 2135 | 2135 |
| 2136 TEST_F(TemplateURLServiceSyncTest, AddPrepopulatedEngine) { | 2136 TEST_F(TemplateURLServiceSyncTest, AddPrepopulatedEngine) { |
| 2137 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( | 2137 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( |
| 2138 syncer::SEARCH_ENGINES, syncer::SyncDataList(), PassProcessor(), | 2138 syncer::SEARCH_ENGINES, syncer::SyncDataList(), PassProcessor(), |
| 2139 CreateAndPassSyncErrorFactory()); | 2139 CreateAndPassSyncErrorFactory()); |
| 2140 | 2140 |
| 2141 scoped_ptr<TemplateURLData> default_turl( | 2141 scoped_ptr<TemplateURLData> default_turl( |
| 2142 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); | 2142 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); |
| 2143 TemplateURL* sync_turl = CopyTemplateURL(default_turl.get(), | 2143 TemplateURL* sync_turl = CopyTemplateURL(default_turl.get(), |
| 2144 "http://wrong.url.com?q={searchTerms}", "default"); | 2144 "http://wrong.url.com?q={searchTerms}", "default"); |
| 2145 | 2145 |
| 2146 // Add a prepopulated engine with a wrong URL. | 2146 // Add a prepopulated engine with a wrong URL. |
| 2147 syncer::SyncChangeList changes; | 2147 syncer::SyncChangeList changes; |
| 2148 changes.push_back(CreateTestSyncChange(syncer::SyncChange::ACTION_ADD, | 2148 changes.push_back(CreateTestSyncChange(syncer::SyncChange::ACTION_ADD, |
| 2149 sync_turl)); | 2149 sync_turl)); |
| 2150 model()->ProcessSyncChanges(FROM_HERE, changes); | 2150 model()->ProcessSyncChanges(FROM_HERE, changes); |
| 2151 | 2151 |
| 2152 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); | 2152 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); |
| 2153 EXPECT_TRUE(result_turl); | 2153 EXPECT_TRUE(result_turl); |
| 2154 EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); | 2154 EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); |
| 2155 EXPECT_EQ(default_turl->short_name, result_turl->short_name()); | 2155 EXPECT_EQ(default_turl->short_name(), result_turl->short_name()); |
| 2156 EXPECT_EQ(default_turl->url(), result_turl->url()); | 2156 EXPECT_EQ(default_turl->url(), result_turl->url()); |
| 2157 } | 2157 } |
| 2158 | 2158 |
| 2159 TEST_F(TemplateURLServiceSyncTest, UpdatePrepopulatedEngine) { | 2159 TEST_F(TemplateURLServiceSyncTest, UpdatePrepopulatedEngine) { |
| 2160 scoped_ptr<TemplateURLData> default_turl( | 2160 scoped_ptr<TemplateURLData> default_turl( |
| 2161 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); | 2161 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); |
| 2162 | 2162 |
| 2163 TemplateURLData data = *default_turl; | 2163 TemplateURLData data = *default_turl; |
| 2164 data.SetURL("http://old.wrong.url.com?q={searchTerms}"); | 2164 data.SetURL("http://old.wrong.url.com?q={searchTerms}"); |
| 2165 data.sync_guid = "default"; | 2165 data.sync_guid = "default"; |
| 2166 model()->Add(new TemplateURL(data)); | 2166 model()->Add(new TemplateURL(data)); |
| 2167 | 2167 |
| 2168 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( | 2168 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( |
| 2169 syncer::SEARCH_ENGINES, syncer::SyncDataList(), PassProcessor(), | 2169 syncer::SEARCH_ENGINES, syncer::SyncDataList(), PassProcessor(), |
| 2170 CreateAndPassSyncErrorFactory()); | 2170 CreateAndPassSyncErrorFactory()); |
| 2171 | 2171 |
| 2172 TemplateURL* sync_turl = CopyTemplateURL(default_turl.get(), | 2172 TemplateURL* sync_turl = CopyTemplateURL(default_turl.get(), |
| 2173 "http://new.wrong.url.com?q={searchTerms}", "default"); | 2173 "http://new.wrong.url.com?q={searchTerms}", "default"); |
| 2174 | 2174 |
| 2175 // Update the engine in the model, which is prepopulated, with a new one. | 2175 // Update the engine in the model, which is prepopulated, with a new one. |
| 2176 // Both have wrong URLs, but it should still get corrected. | 2176 // Both have wrong URLs, but it should still get corrected. |
| 2177 syncer::SyncChangeList changes; | 2177 syncer::SyncChangeList changes; |
| 2178 changes.push_back(CreateTestSyncChange(syncer::SyncChange::ACTION_UPDATE, | 2178 changes.push_back(CreateTestSyncChange(syncer::SyncChange::ACTION_UPDATE, |
| 2179 sync_turl)); | 2179 sync_turl)); |
| 2180 model()->ProcessSyncChanges(FROM_HERE, changes); | 2180 model()->ProcessSyncChanges(FROM_HERE, changes); |
| 2181 | 2181 |
| 2182 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); | 2182 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); |
| 2183 EXPECT_TRUE(result_turl); | 2183 EXPECT_TRUE(result_turl); |
| 2184 EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); | 2184 EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); |
| 2185 EXPECT_EQ(default_turl->short_name, result_turl->short_name()); | 2185 EXPECT_EQ(default_turl->short_name(), result_turl->short_name()); |
| 2186 EXPECT_EQ(default_turl->url(), result_turl->url()); | 2186 EXPECT_EQ(default_turl->url(), result_turl->url()); |
| 2187 } | 2187 } |
| 2188 | 2188 |
| 2189 TEST_F(TemplateURLServiceSyncTest, MergeEditedPrepopulatedEngine) { | 2189 TEST_F(TemplateURLServiceSyncTest, MergeEditedPrepopulatedEngine) { |
| 2190 scoped_ptr<TemplateURLData> default_turl( | 2190 scoped_ptr<TemplateURLData> default_turl( |
| 2191 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); | 2191 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); |
| 2192 | 2192 |
| 2193 TemplateURLData data(*default_turl); | 2193 TemplateURLData data(*default_turl); |
| 2194 data.safe_for_autoreplace = false; | 2194 data.safe_for_autoreplace = false; |
| 2195 data.SetKeyword(ASCIIToUTF16("new_kw")); | 2195 data.SetKeyword(ASCIIToUTF16("new_kw")); |
| 2196 data.short_name = ASCIIToUTF16("my name"); | 2196 data.SetShortName(ASCIIToUTF16("my name")); |
| 2197 data.SetURL("http://wrong.url.com?q={searchTerms}"); | 2197 data.SetURL("http://wrong.url.com?q={searchTerms}"); |
| 2198 data.date_created = Time::FromTimeT(50); | 2198 data.date_created = Time::FromTimeT(50); |
| 2199 data.last_modified = Time::FromTimeT(50); | 2199 data.last_modified = Time::FromTimeT(50); |
| 2200 data.sync_guid = "default"; | 2200 data.sync_guid = "default"; |
| 2201 model()->Add(new TemplateURL(data)); | 2201 model()->Add(new TemplateURL(data)); |
| 2202 | 2202 |
| 2203 data.date_created = Time::FromTimeT(100); | 2203 data.date_created = Time::FromTimeT(100); |
| 2204 data.last_modified = Time::FromTimeT(100); | 2204 data.last_modified = Time::FromTimeT(100); |
| 2205 scoped_ptr<TemplateURL> sync_turl(new TemplateURL(data)); | 2205 scoped_ptr<TemplateURL> sync_turl(new TemplateURL(data)); |
| 2206 syncer::SyncDataList list; | 2206 syncer::SyncDataList list; |
| 2207 list.push_back(TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl)); | 2207 list.push_back(TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl)); |
| 2208 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( | 2208 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( |
| 2209 syncer::SEARCH_ENGINES, list, PassProcessor(), | 2209 syncer::SEARCH_ENGINES, list, PassProcessor(), |
| 2210 CreateAndPassSyncErrorFactory()); | 2210 CreateAndPassSyncErrorFactory()); |
| 2211 | 2211 |
| 2212 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); | 2212 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); |
| 2213 EXPECT_TRUE(result_turl); | 2213 EXPECT_TRUE(result_turl); |
| 2214 EXPECT_EQ(ASCIIToUTF16("new_kw"), result_turl->keyword()); | 2214 EXPECT_EQ(ASCIIToUTF16("new_kw"), result_turl->keyword()); |
| 2215 EXPECT_EQ(ASCIIToUTF16("my name"), result_turl->short_name()); | 2215 EXPECT_EQ(ASCIIToUTF16("my name"), result_turl->short_name()); |
| 2216 EXPECT_EQ(default_turl->url(), result_turl->url()); | 2216 EXPECT_EQ(default_turl->url(), result_turl->url()); |
| 2217 } | 2217 } |
| 2218 | 2218 |
| 2219 TEST_F(TemplateURLServiceSyncTest, MergeNonEditedPrepopulatedEngine) { | 2219 TEST_F(TemplateURLServiceSyncTest, MergeNonEditedPrepopulatedEngine) { |
| 2220 scoped_ptr<TemplateURLData> default_turl( | 2220 scoped_ptr<TemplateURLData> default_turl( |
| 2221 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); | 2221 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); |
| 2222 | 2222 |
| 2223 TemplateURLData data(*default_turl); | 2223 TemplateURLData data(*default_turl); |
| 2224 data.safe_for_autoreplace = true; // Can be replaced with built-in values. | 2224 data.safe_for_autoreplace = true; // Can be replaced with built-in values. |
| 2225 data.SetKeyword(ASCIIToUTF16("new_kw")); | 2225 data.SetKeyword(ASCIIToUTF16("new_kw")); |
| 2226 data.short_name = ASCIIToUTF16("my name"); | 2226 data.SetShortName(ASCIIToUTF16("my name")); |
| 2227 data.SetURL("http://wrong.url.com?q={searchTerms}"); | 2227 data.SetURL("http://wrong.url.com?q={searchTerms}"); |
| 2228 data.date_created = Time::FromTimeT(50); | 2228 data.date_created = Time::FromTimeT(50); |
| 2229 data.last_modified = Time::FromTimeT(50); | 2229 data.last_modified = Time::FromTimeT(50); |
| 2230 data.sync_guid = "default"; | 2230 data.sync_guid = "default"; |
| 2231 model()->Add(new TemplateURL(data)); | 2231 model()->Add(new TemplateURL(data)); |
| 2232 | 2232 |
| 2233 data.date_created = Time::FromTimeT(100); | 2233 data.date_created = Time::FromTimeT(100); |
| 2234 data.last_modified = Time::FromTimeT(100); | 2234 data.last_modified = Time::FromTimeT(100); |
| 2235 scoped_ptr<TemplateURL> sync_turl(new TemplateURL(data)); | 2235 scoped_ptr<TemplateURL> sync_turl(new TemplateURL(data)); |
| 2236 syncer::SyncDataList list; | 2236 syncer::SyncDataList list; |
| 2237 list.push_back(TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl)); | 2237 list.push_back(TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl)); |
| 2238 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( | 2238 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( |
| 2239 syncer::SEARCH_ENGINES, list, PassProcessor(), | 2239 syncer::SEARCH_ENGINES, list, PassProcessor(), |
| 2240 CreateAndPassSyncErrorFactory()); | 2240 CreateAndPassSyncErrorFactory()); |
| 2241 | 2241 |
| 2242 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); | 2242 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); |
| 2243 EXPECT_TRUE(result_turl); | 2243 EXPECT_TRUE(result_turl); |
| 2244 EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); | 2244 EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); |
| 2245 EXPECT_EQ(default_turl->short_name, result_turl->short_name()); | 2245 EXPECT_EQ(default_turl->short_name(), result_turl->short_name()); |
| 2246 EXPECT_EQ(default_turl->url(), result_turl->url()); | 2246 EXPECT_EQ(default_turl->url(), result_turl->url()); |
| 2247 } | 2247 } |
| 2248 | 2248 |
| 2249 TEST_F(TemplateURLServiceSyncTest, GUIDUpdatedOnDefaultSearchChange) { | 2249 TEST_F(TemplateURLServiceSyncTest, GUIDUpdatedOnDefaultSearchChange) { |
| 2250 const char kGUID[] = "initdefault"; | 2250 const char kGUID[] = "initdefault"; |
| 2251 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("what"), | 2251 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("what"), |
| 2252 "http://thewhat.com/{searchTerms}", | 2252 "http://thewhat.com/{searchTerms}", |
| 2253 kGUID)); | 2253 kGUID)); |
| 2254 model()->SetUserSelectedDefaultSearchProvider( | 2254 model()->SetUserSelectedDefaultSearchProvider( |
| 2255 model()->GetTemplateURLForGUID(kGUID)); | 2255 model()->GetTemplateURLForGUID(kGUID)); |
| 2256 | 2256 |
| 2257 const TemplateURL* default_search = model()->GetDefaultSearchProvider(); | 2257 const TemplateURL* default_search = model()->GetDefaultSearchProvider(); |
| 2258 ASSERT_TRUE(default_search); | 2258 ASSERT_TRUE(default_search); |
| 2259 | 2259 |
| 2260 const char kNewGUID[] = "newdefault"; | 2260 const char kNewGUID[] = "newdefault"; |
| 2261 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("what"), | 2261 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("what"), |
| 2262 "http://thewhat.com/{searchTerms}", | 2262 "http://thewhat.com/{searchTerms}", |
| 2263 kNewGUID)); | 2263 kNewGUID)); |
| 2264 model()->SetUserSelectedDefaultSearchProvider( | 2264 model()->SetUserSelectedDefaultSearchProvider( |
| 2265 model()->GetTemplateURLForGUID(kNewGUID)); | 2265 model()->GetTemplateURLForGUID(kNewGUID)); |
| 2266 | 2266 |
| 2267 EXPECT_EQ(kNewGUID, profile_a()->GetTestingPrefService()->GetString( | 2267 EXPECT_EQ(kNewGUID, profile_a()->GetTestingPrefService()->GetString( |
| 2268 prefs::kSyncedDefaultSearchProviderGUID)); | 2268 prefs::kSyncedDefaultSearchProviderGUID)); |
| 2269 } | 2269 } |
| OLD | NEW |