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 |