| 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 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 269 data.SetKeyword(keyword); | 269 data.SetKeyword(keyword); |
| 270 data.SetURL(url); | 270 data.SetURL(url); |
| 271 data.favicon_url = GURL("http://favicon.url"); | 271 data.favicon_url = GURL("http://favicon.url"); |
| 272 data.safe_for_autoreplace = safe_for_autoreplace; | 272 data.safe_for_autoreplace = safe_for_autoreplace; |
| 273 data.date_created = Time::FromTimeT(100); | 273 data.date_created = Time::FromTimeT(100); |
| 274 data.last_modified = Time::FromTimeT(last_mod); | 274 data.last_modified = Time::FromTimeT(last_mod); |
| 275 data.created_by_policy = created_by_policy; | 275 data.created_by_policy = created_by_policy; |
| 276 data.prepopulate_id = 999999; | 276 data.prepopulate_id = 999999; |
| 277 if (!guid.empty()) | 277 if (!guid.empty()) |
| 278 data.sync_guid = guid; | 278 data.sync_guid = guid; |
| 279 return new TemplateURL(NULL, data); | 279 return new TemplateURL(data); |
| 280 } | 280 } |
| 281 | 281 |
| 282 void TemplateURLServiceSyncTest::AssertEquals(const TemplateURL& expected, | 282 void TemplateURLServiceSyncTest::AssertEquals(const TemplateURL& expected, |
| 283 const TemplateURL& actual) const { | 283 const TemplateURL& actual) const { |
| 284 ASSERT_EQ(expected.short_name(), actual.short_name()); | 284 ASSERT_EQ(expected.short_name(), actual.short_name()); |
| 285 ASSERT_EQ(expected.keyword(), actual.keyword()); | 285 ASSERT_EQ(expected.keyword(), actual.keyword()); |
| 286 ASSERT_EQ(expected.url(), actual.url()); | 286 ASSERT_EQ(expected.url(), actual.url()); |
| 287 ASSERT_EQ(expected.suggestions_url(), actual.suggestions_url()); | 287 ASSERT_EQ(expected.suggestions_url(), actual.suggestions_url()); |
| 288 ASSERT_EQ(expected.favicon_url(), actual.favicon_url()); | 288 ASSERT_EQ(expected.favicon_url(), actual.favicon_url()); |
| 289 ASSERT_EQ(expected.show_in_default_list(), actual.show_in_default_list()); | 289 ASSERT_EQ(expected.show_in_default_list(), actual.show_in_default_list()); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 348 | 348 |
| 349 TemplateURL* TemplateURLServiceSyncTest::CopyTemplateURL( | 349 TemplateURL* TemplateURLServiceSyncTest::CopyTemplateURL( |
| 350 const TemplateURLData* turl, | 350 const TemplateURLData* turl, |
| 351 const std::string& url, | 351 const std::string& url, |
| 352 const std::string& guid) { | 352 const std::string& guid) { |
| 353 TemplateURLData data = *turl; | 353 TemplateURLData data = *turl; |
| 354 data.SetURL(url); | 354 data.SetURL(url); |
| 355 data.date_created = Time::FromTimeT(100); | 355 data.date_created = Time::FromTimeT(100); |
| 356 data.last_modified = Time::FromTimeT(100); | 356 data.last_modified = Time::FromTimeT(100); |
| 357 data.sync_guid = guid; | 357 data.sync_guid = guid; |
| 358 return new TemplateURL(NULL, data); | 358 return new TemplateURL(data); |
| 359 } | 359 } |
| 360 | 360 |
| 361 // Actual tests --------------------------------------------------------------- | 361 // Actual tests --------------------------------------------------------------- |
| 362 | 362 |
| 363 TEST_F(TemplateURLServiceSyncTest, SerializeDeserialize) { | 363 TEST_F(TemplateURLServiceSyncTest, SerializeDeserialize) { |
| 364 // Create a TemplateURL and convert it into a sync specific type. | 364 // Create a TemplateURL and convert it into a sync specific type. |
| 365 scoped_ptr<TemplateURL> turl( | 365 scoped_ptr<TemplateURL> turl( |
| 366 CreateTestTemplateURL( | 366 CreateTestTemplateURL( |
| 367 ASCIIToUTF16("unittest"), "http://www.unittest.com/")); | 367 ASCIIToUTF16("unittest"), "http://www.unittest.com/")); |
| 368 syncer::SyncData sync_data = | 368 syncer::SyncData sync_data = |
| (...skipping 875 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1244 data.input_encodings.push_back("UTF-8"); | 1244 data.input_encodings.push_back("UTF-8"); |
| 1245 data.input_encodings.push_back("UTF-16"); | 1245 data.input_encodings.push_back("UTF-16"); |
| 1246 data.input_encodings.push_back("UTF-8"); | 1246 data.input_encodings.push_back("UTF-8"); |
| 1247 data.input_encodings.push_back("Big5"); | 1247 data.input_encodings.push_back("Big5"); |
| 1248 data.input_encodings.push_back("UTF-16"); | 1248 data.input_encodings.push_back("UTF-16"); |
| 1249 data.input_encodings.push_back("Big5"); | 1249 data.input_encodings.push_back("Big5"); |
| 1250 data.input_encodings.push_back("Windows-1252"); | 1250 data.input_encodings.push_back("Windows-1252"); |
| 1251 data.date_created = Time::FromTimeT(100); | 1251 data.date_created = Time::FromTimeT(100); |
| 1252 data.last_modified = Time::FromTimeT(100); | 1252 data.last_modified = Time::FromTimeT(100); |
| 1253 data.sync_guid = "keyword"; | 1253 data.sync_guid = "keyword"; |
| 1254 scoped_ptr<TemplateURL> turl(new TemplateURL(NULL, data)); | 1254 scoped_ptr<TemplateURL> turl(new TemplateURL(data)); |
| 1255 initial_data.push_back( | 1255 initial_data.push_back( |
| 1256 TemplateURLService::CreateSyncDataFromTemplateURL(*turl)); | 1256 TemplateURLService::CreateSyncDataFromTemplateURL(*turl)); |
| 1257 | 1257 |
| 1258 // Now try to sync the data locally. | 1258 // Now try to sync the data locally. |
| 1259 model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, initial_data, | 1259 model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, initial_data, |
| 1260 PassProcessor(), CreateAndPassSyncErrorFactory()); | 1260 PassProcessor(), CreateAndPassSyncErrorFactory()); |
| 1261 | 1261 |
| 1262 // The entry should have been added, with duplicate encodings removed. | 1262 // The entry should have been added, with duplicate encodings removed. |
| 1263 TemplateURL* keyword = | 1263 TemplateURL* keyword = |
| 1264 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword")); | 1264 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword")); |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1405 syncer::SEARCH_ENGINES, | 1405 syncer::SEARCH_ENGINES, |
| 1406 initial_data, | 1406 initial_data, |
| 1407 PassProcessor(), | 1407 PassProcessor(), |
| 1408 CreateAndPassSyncErrorFactory()).error(); | 1408 CreateAndPassSyncErrorFactory()).error(); |
| 1409 ASSERT_FALSE(error.IsSet()); | 1409 ASSERT_FALSE(error.IsSet()); |
| 1410 | 1410 |
| 1411 // We should have updated the original TemplateURL with Sync's version. | 1411 // We should have updated the original TemplateURL with Sync's version. |
| 1412 // Keep a copy of it so we can compare it after we re-merge. | 1412 // Keep a copy of it so we can compare it after we re-merge. |
| 1413 TemplateURL* key1_url = model()->GetTemplateURLForGUID("key1"); | 1413 TemplateURL* key1_url = model()->GetTemplateURLForGUID("key1"); |
| 1414 ASSERT_TRUE(key1_url); | 1414 ASSERT_TRUE(key1_url); |
| 1415 scoped_ptr<TemplateURL> updated_turl(new TemplateURL(key1_url->profile(), | 1415 scoped_ptr<TemplateURL> updated_turl(new TemplateURL(key1_url->data())); |
| 1416 key1_url->data())); | |
| 1417 EXPECT_EQ(Time::FromTimeT(90), updated_turl->last_modified()); | 1416 EXPECT_EQ(Time::FromTimeT(90), updated_turl->last_modified()); |
| 1418 | 1417 |
| 1419 // Modify a single field of the initial data. This should not be updated in | 1418 // Modify a single field of the initial data. This should not be updated in |
| 1420 // the second merge, as the last_modified timestamp remains the same. | 1419 // the second merge, as the last_modified timestamp remains the same. |
| 1421 scoped_ptr<TemplateURL> temp_turl(Deserialize(initial_data[0])); | 1420 scoped_ptr<TemplateURL> temp_turl(Deserialize(initial_data[0])); |
| 1422 TemplateURLData data(temp_turl->data()); | 1421 TemplateURLData data(temp_turl->data()); |
| 1423 data.short_name = ASCIIToUTF16("SomethingDifferent"); | 1422 data.short_name = ASCIIToUTF16("SomethingDifferent"); |
| 1424 temp_turl.reset(new TemplateURL(temp_turl->profile(), data)); | 1423 temp_turl.reset(new TemplateURL(data)); |
| 1425 initial_data.clear(); | 1424 initial_data.clear(); |
| 1426 initial_data.push_back( | 1425 initial_data.push_back( |
| 1427 TemplateURLService::CreateSyncDataFromTemplateURL(*temp_turl)); | 1426 TemplateURLService::CreateSyncDataFromTemplateURL(*temp_turl)); |
| 1428 | 1427 |
| 1429 // Remerge the data again. This simulates shutting down and syncing again | 1428 // Remerge the data again. This simulates shutting down and syncing again |
| 1430 // at a different time, but the cloud data has not changed. | 1429 // at a different time, but the cloud data has not changed. |
| 1431 model()->StopSyncing(syncer::SEARCH_ENGINES); | 1430 model()->StopSyncing(syncer::SEARCH_ENGINES); |
| 1432 sync_processor_wrapper_.reset( | 1431 sync_processor_wrapper_.reset( |
| 1433 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); | 1432 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); |
| 1434 error = model()->MergeDataAndStartSyncing( | 1433 error = model()->MergeDataAndStartSyncing( |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1502 data.SetKeyword(ASCIIToUTF16("key2")); | 1501 data.SetKeyword(ASCIIToUTF16("key2")); |
| 1503 data.SetURL("http://key2.com/{searchTerms}"); | 1502 data.SetURL("http://key2.com/{searchTerms}"); |
| 1504 data.favicon_url = GURL("http://favicon.url"); | 1503 data.favicon_url = GURL("http://favicon.url"); |
| 1505 data.safe_for_autoreplace = false; | 1504 data.safe_for_autoreplace = false; |
| 1506 data.date_created = Time::FromTimeT(100); | 1505 data.date_created = Time::FromTimeT(100); |
| 1507 data.last_modified = Time::FromTimeT(100); | 1506 data.last_modified = Time::FromTimeT(100); |
| 1508 data.created_by_policy = false; | 1507 data.created_by_policy = false; |
| 1509 data.prepopulate_id = 999999; | 1508 data.prepopulate_id = 999999; |
| 1510 data.sync_guid = "key2"; | 1509 data.sync_guid = "key2"; |
| 1511 data.show_in_default_list = true; | 1510 data.show_in_default_list = true; |
| 1512 scoped_ptr<TemplateURL> turl2(new TemplateURL(NULL, data)); | 1511 scoped_ptr<TemplateURL> turl2(new TemplateURL(data)); |
| 1513 initial_data.push_back(TemplateURLService::CreateSyncDataFromTemplateURL( | 1512 initial_data.push_back(TemplateURLService::CreateSyncDataFromTemplateURL( |
| 1514 *turl1)); | 1513 *turl1)); |
| 1515 initial_data.push_back(TemplateURLService::CreateSyncDataFromTemplateURL( | 1514 initial_data.push_back(TemplateURLService::CreateSyncDataFromTemplateURL( |
| 1516 *turl2)); | 1515 *turl2)); |
| 1517 model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, initial_data, | 1516 model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, initial_data, |
| 1518 PassProcessor(), CreateAndPassSyncErrorFactory()); | 1517 PassProcessor(), CreateAndPassSyncErrorFactory()); |
| 1519 model()->SetUserSelectedDefaultSearchProvider( | 1518 model()->SetUserSelectedDefaultSearchProvider( |
| 1520 model()->GetTemplateURLForGUID("key1")); | 1519 model()->GetTemplateURLForGUID("key1")); |
| 1521 ASSERT_EQ("key1", model()->GetDefaultSearchProvider()->sync_guid()); | 1520 ASSERT_EQ("key1", model()->GetDefaultSearchProvider()->sync_guid()); |
| 1522 | 1521 |
| (...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1828 ASSERT_FALSE(prepop_turls.empty()); | 1827 ASSERT_FALSE(prepop_turls.empty()); |
| 1829 | 1828 |
| 1830 // Create a copy of the first TemplateURL with a really old timestamp and a | 1829 // Create a copy of the first TemplateURL with a really old timestamp and a |
| 1831 // new keyword. Add it to the model. | 1830 // new keyword. Add it to the model. |
| 1832 TemplateURLData data_copy(*prepop_turls[0]); | 1831 TemplateURLData data_copy(*prepop_turls[0]); |
| 1833 data_copy.last_modified = Time::FromTimeT(10); | 1832 data_copy.last_modified = Time::FromTimeT(10); |
| 1834 base::string16 original_keyword = data_copy.keyword(); | 1833 base::string16 original_keyword = data_copy.keyword(); |
| 1835 data_copy.SetKeyword(ASCIIToUTF16(kNewKeyword)); | 1834 data_copy.SetKeyword(ASCIIToUTF16(kNewKeyword)); |
| 1836 // Set safe_for_autoreplace to false so our keyword survives. | 1835 // Set safe_for_autoreplace to false so our keyword survives. |
| 1837 data_copy.safe_for_autoreplace = false; | 1836 data_copy.safe_for_autoreplace = false; |
| 1838 model()->Add(new TemplateURL(profile_a(), data_copy)); | 1837 model()->Add(new TemplateURL(data_copy)); |
| 1839 | 1838 |
| 1840 // Merge the prepopulate search engines. | 1839 // Merge the prepopulate search engines. |
| 1841 base::Time pre_merge_time = base::Time::Now(); | 1840 base::Time pre_merge_time = base::Time::Now(); |
| 1842 base::RunLoop().RunUntilIdle(); | 1841 base::RunLoop().RunUntilIdle(); |
| 1843 test_util_a_.ResetModel(true); | 1842 test_util_a_.ResetModel(true); |
| 1844 | 1843 |
| 1845 // The newly added search engine should have been safely merged, with an | 1844 // The newly added search engine should have been safely merged, with an |
| 1846 // updated time. | 1845 // updated time. |
| 1847 TemplateURL* added_turl = model()->GetTemplateURLForKeyword( | 1846 TemplateURL* added_turl = model()->GetTemplateURLForKeyword( |
| 1848 ASCIIToUTF16(kNewKeyword)); | 1847 ASCIIToUTF16(kNewKeyword)); |
| 1849 ASSERT_TRUE(added_turl); | 1848 ASSERT_TRUE(added_turl); |
| 1850 base::Time new_timestamp = added_turl->last_modified(); | 1849 base::Time new_timestamp = added_turl->last_modified(); |
| 1851 EXPECT_GE(new_timestamp, pre_merge_time); | 1850 EXPECT_GE(new_timestamp, pre_merge_time); |
| 1852 std::string sync_guid = added_turl->sync_guid(); | 1851 std::string sync_guid = added_turl->sync_guid(); |
| 1853 | 1852 |
| 1854 // Bring down a copy of the prepopulate engine from Sync with the old values, | 1853 // Bring down a copy of the prepopulate engine from Sync with the old values, |
| 1855 // including the old timestamp and the same GUID. Ensure that it loses | 1854 // including the old timestamp and the same GUID. Ensure that it loses |
| 1856 // conflict resolution against the local value, and an update is sent to the | 1855 // conflict resolution against the local value, and an update is sent to the |
| 1857 // server. The new timestamp should be preserved. | 1856 // server. The new timestamp should be preserved. |
| 1858 syncer::SyncDataList initial_data; | 1857 syncer::SyncDataList initial_data; |
| 1859 data_copy.SetKeyword(original_keyword); | 1858 data_copy.SetKeyword(original_keyword); |
| 1860 data_copy.sync_guid = sync_guid; | 1859 data_copy.sync_guid = sync_guid; |
| 1861 scoped_ptr<TemplateURL> sync_turl(new TemplateURL(profile_a(), data_copy)); | 1860 scoped_ptr<TemplateURL> sync_turl(new TemplateURL(data_copy)); |
| 1862 initial_data.push_back( | 1861 initial_data.push_back( |
| 1863 TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl)); | 1862 TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl)); |
| 1864 | 1863 |
| 1865 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( | 1864 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( |
| 1866 syncer::SEARCH_ENGINES, | 1865 syncer::SEARCH_ENGINES, |
| 1867 initial_data, PassProcessor(), CreateAndPassSyncErrorFactory()); | 1866 initial_data, PassProcessor(), CreateAndPassSyncErrorFactory()); |
| 1868 | 1867 |
| 1869 ASSERT_EQ(added_turl, model()->GetTemplateURLForKeyword( | 1868 ASSERT_EQ(added_turl, model()->GetTemplateURLForKeyword( |
| 1870 ASCIIToUTF16(kNewKeyword))); | 1869 ASCIIToUTF16(kNewKeyword))); |
| 1871 EXPECT_EQ(new_timestamp, added_turl->last_modified()); | 1870 EXPECT_EQ(new_timestamp, added_turl->last_modified()); |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2125 EXPECT_EQ(default_turl->url(), result_turl->url()); | 2124 EXPECT_EQ(default_turl->url(), result_turl->url()); |
| 2126 } | 2125 } |
| 2127 | 2126 |
| 2128 TEST_F(TemplateURLServiceSyncTest, UpdatePrepopulatedEngine) { | 2127 TEST_F(TemplateURLServiceSyncTest, UpdatePrepopulatedEngine) { |
| 2129 scoped_ptr<TemplateURLData> default_turl( | 2128 scoped_ptr<TemplateURLData> default_turl( |
| 2130 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); | 2129 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); |
| 2131 | 2130 |
| 2132 TemplateURLData data = *default_turl; | 2131 TemplateURLData data = *default_turl; |
| 2133 data.SetURL("http://old.wrong.url.com?q={searchTerms}"); | 2132 data.SetURL("http://old.wrong.url.com?q={searchTerms}"); |
| 2134 data.sync_guid = "default"; | 2133 data.sync_guid = "default"; |
| 2135 model()->Add(new TemplateURL(NULL, data)); | 2134 model()->Add(new TemplateURL(data)); |
| 2136 | 2135 |
| 2137 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( | 2136 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( |
| 2138 syncer::SEARCH_ENGINES, syncer::SyncDataList(), PassProcessor(), | 2137 syncer::SEARCH_ENGINES, syncer::SyncDataList(), PassProcessor(), |
| 2139 CreateAndPassSyncErrorFactory()); | 2138 CreateAndPassSyncErrorFactory()); |
| 2140 | 2139 |
| 2141 TemplateURL* sync_turl = CopyTemplateURL(default_turl.get(), | 2140 TemplateURL* sync_turl = CopyTemplateURL(default_turl.get(), |
| 2142 "http://new.wrong.url.com?q={searchTerms}", "default"); | 2141 "http://new.wrong.url.com?q={searchTerms}", "default"); |
| 2143 | 2142 |
| 2144 // Update the engine in the model, which is prepopulated, with a new one. | 2143 // Update the engine in the model, which is prepopulated, with a new one. |
| 2145 // Both have wrong URLs, but it should still get corrected. | 2144 // Both have wrong URLs, but it should still get corrected. |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2160 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); | 2159 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); |
| 2161 | 2160 |
| 2162 TemplateURLData data(*default_turl); | 2161 TemplateURLData data(*default_turl); |
| 2163 data.safe_for_autoreplace = false; | 2162 data.safe_for_autoreplace = false; |
| 2164 data.SetKeyword(ASCIIToUTF16("new_kw")); | 2163 data.SetKeyword(ASCIIToUTF16("new_kw")); |
| 2165 data.short_name = ASCIIToUTF16("my name"); | 2164 data.short_name = ASCIIToUTF16("my name"); |
| 2166 data.SetURL("http://wrong.url.com?q={searchTerms}"); | 2165 data.SetURL("http://wrong.url.com?q={searchTerms}"); |
| 2167 data.date_created = Time::FromTimeT(50); | 2166 data.date_created = Time::FromTimeT(50); |
| 2168 data.last_modified = Time::FromTimeT(50); | 2167 data.last_modified = Time::FromTimeT(50); |
| 2169 data.sync_guid = "default"; | 2168 data.sync_guid = "default"; |
| 2170 model()->Add(new TemplateURL(NULL, data)); | 2169 model()->Add(new TemplateURL(data)); |
| 2171 | 2170 |
| 2172 data.date_created = Time::FromTimeT(100); | 2171 data.date_created = Time::FromTimeT(100); |
| 2173 data.last_modified = Time::FromTimeT(100); | 2172 data.last_modified = Time::FromTimeT(100); |
| 2174 scoped_ptr<TemplateURL> sync_turl(new TemplateURL(NULL, data)); | 2173 scoped_ptr<TemplateURL> sync_turl(new TemplateURL(data)); |
| 2175 syncer::SyncDataList list; | 2174 syncer::SyncDataList list; |
| 2176 list.push_back(TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl)); | 2175 list.push_back(TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl)); |
| 2177 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( | 2176 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( |
| 2178 syncer::SEARCH_ENGINES, list, PassProcessor(), | 2177 syncer::SEARCH_ENGINES, list, PassProcessor(), |
| 2179 CreateAndPassSyncErrorFactory()); | 2178 CreateAndPassSyncErrorFactory()); |
| 2180 | 2179 |
| 2181 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); | 2180 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); |
| 2182 EXPECT_TRUE(result_turl); | 2181 EXPECT_TRUE(result_turl); |
| 2183 EXPECT_EQ(ASCIIToUTF16("new_kw"), result_turl->keyword()); | 2182 EXPECT_EQ(ASCIIToUTF16("new_kw"), result_turl->keyword()); |
| 2184 EXPECT_EQ(ASCIIToUTF16("my name"), result_turl->short_name()); | 2183 EXPECT_EQ(ASCIIToUTF16("my name"), result_turl->short_name()); |
| 2185 EXPECT_EQ(default_turl->url(), result_turl->url()); | 2184 EXPECT_EQ(default_turl->url(), result_turl->url()); |
| 2186 } | 2185 } |
| 2187 | 2186 |
| 2188 TEST_F(TemplateURLServiceSyncTest, MergeNonEditedPrepopulatedEngine) { | 2187 TEST_F(TemplateURLServiceSyncTest, MergeNonEditedPrepopulatedEngine) { |
| 2189 scoped_ptr<TemplateURLData> default_turl( | 2188 scoped_ptr<TemplateURLData> default_turl( |
| 2190 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); | 2189 TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(NULL)); |
| 2191 | 2190 |
| 2192 TemplateURLData data(*default_turl); | 2191 TemplateURLData data(*default_turl); |
| 2193 data.safe_for_autoreplace = true; // Can be replaced with built-in values. | 2192 data.safe_for_autoreplace = true; // Can be replaced with built-in values. |
| 2194 data.SetKeyword(ASCIIToUTF16("new_kw")); | 2193 data.SetKeyword(ASCIIToUTF16("new_kw")); |
| 2195 data.short_name = ASCIIToUTF16("my name"); | 2194 data.short_name = ASCIIToUTF16("my name"); |
| 2196 data.SetURL("http://wrong.url.com?q={searchTerms}"); | 2195 data.SetURL("http://wrong.url.com?q={searchTerms}"); |
| 2197 data.date_created = Time::FromTimeT(50); | 2196 data.date_created = Time::FromTimeT(50); |
| 2198 data.last_modified = Time::FromTimeT(50); | 2197 data.last_modified = Time::FromTimeT(50); |
| 2199 data.sync_guid = "default"; | 2198 data.sync_guid = "default"; |
| 2200 model()->Add(new TemplateURL(NULL, data)); | 2199 model()->Add(new TemplateURL(data)); |
| 2201 | 2200 |
| 2202 data.date_created = Time::FromTimeT(100); | 2201 data.date_created = Time::FromTimeT(100); |
| 2203 data.last_modified = Time::FromTimeT(100); | 2202 data.last_modified = Time::FromTimeT(100); |
| 2204 scoped_ptr<TemplateURL> sync_turl(new TemplateURL(NULL, data)); | 2203 scoped_ptr<TemplateURL> sync_turl(new TemplateURL(data)); |
| 2205 syncer::SyncDataList list; | 2204 syncer::SyncDataList list; |
| 2206 list.push_back(TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl)); | 2205 list.push_back(TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl)); |
| 2207 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( | 2206 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( |
| 2208 syncer::SEARCH_ENGINES, list, PassProcessor(), | 2207 syncer::SEARCH_ENGINES, list, PassProcessor(), |
| 2209 CreateAndPassSyncErrorFactory()); | 2208 CreateAndPassSyncErrorFactory()); |
| 2210 | 2209 |
| 2211 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); | 2210 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); |
| 2212 EXPECT_TRUE(result_turl); | 2211 EXPECT_TRUE(result_turl); |
| 2213 EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); | 2212 EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); |
| 2214 EXPECT_EQ(default_turl->short_name, result_turl->short_name()); | 2213 EXPECT_EQ(default_turl->short_name, result_turl->short_name()); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2229 const char kNewGUID[] = "newdefault"; | 2228 const char kNewGUID[] = "newdefault"; |
| 2230 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("what"), | 2229 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("what"), |
| 2231 "http://thewhat.com/{searchTerms}", | 2230 "http://thewhat.com/{searchTerms}", |
| 2232 kNewGUID)); | 2231 kNewGUID)); |
| 2233 model()->SetUserSelectedDefaultSearchProvider( | 2232 model()->SetUserSelectedDefaultSearchProvider( |
| 2234 model()->GetTemplateURLForGUID(kNewGUID)); | 2233 model()->GetTemplateURLForGUID(kNewGUID)); |
| 2235 | 2234 |
| 2236 EXPECT_EQ(kNewGUID, profile_a()->GetTestingPrefService()->GetString( | 2235 EXPECT_EQ(kNewGUID, profile_a()->GetTestingPrefService()->GetString( |
| 2237 prefs::kSyncedDefaultSearchProviderGUID)); | 2236 prefs::kSyncedDefaultSearchProviderGUID)); |
| 2238 } | 2237 } |
| OLD | NEW |