Commit 42763201 authored by stevet@chromium.org's avatar stevet@chromium.org

Add four new sync integration tests for custom search engines.

BUG=0
TEST=Ensure that sync integration tests TwoClientSearchEnginesSyncTest.* pass.


Review URL: http://codereview.chromium.org/8571005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110448 0039d316-1c4b-4281-b951-d872f2087c98
parent e4de6b5d
......@@ -86,7 +86,7 @@ bool ServiceMatchesVerifier(int profile) {
std::vector<const TemplateURL*> verifier_turls = verifier->GetTemplateURLs();
if (verifier_turls.size() != other->GetTemplateURLs().size()) {
LOG(ERROR) << "verifier and other service have a different count of TURLs: "
LOG(ERROR) << "Verifier and other service have a different count of TURLs: "
<< verifier_turls.size() << " vs "
<< other->GetTemplateURLs().size() << " respectively.";
return false;
......@@ -156,10 +156,12 @@ bool ServicesMatch(int profile_a, int profile_b) {
bool AllServicesMatch() {
// Use 0 as the baseline.
if (!ServiceMatchesVerifier(0))
if (test()->use_verifier() && !ServiceMatchesVerifier(0)) {
LOG(ERROR) << "TemplateURLService 0 does not match verifier.";
return false;
}
for (int it = 0; it < test()->num_clients(); ++it) {
for (int it = 1; it < test()->num_clients(); ++it) {
if (!ServicesMatch(0, it)) {
LOG(ERROR) << "TemplateURLService " << it << " does not match with "
<< "service 0.";
......@@ -241,15 +243,15 @@ void DeleteSearchEngineBySeed(int profile, int seed) {
void ChangeDefaultSearchProvider(int profile, int seed) {
TemplateURLService* service = GetServiceForProfile(profile);
ASSERT_TRUE(service);
const TemplateURL* new_default = service->GetTemplateURLForKeyword(
const TemplateURL* turl = service->GetTemplateURLForKeyword(
CreateKeyword(seed));
ASSERT_TRUE(new_default);
service->SetDefaultSearchProvider(new_default);
ASSERT_TRUE(turl);
service->SetDefaultSearchProvider(turl);
if (test()->use_verifier()) {
new_default = GetVerifierService()->GetTemplateURLForKeyword(
CreateKeyword(seed));
ASSERT_TRUE(new_default);
GetVerifierService()->SetDefaultSearchProvider(new_default);
const TemplateURL* verifier_turl =
GetVerifierService()->GetTemplateURLForKeyword(CreateKeyword(seed));
ASSERT_TRUE(verifier_turl);
GetVerifierService()->SetDefaultSearchProvider(verifier_turl);
}
}
......
......@@ -54,6 +54,29 @@ IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, AddMultiple) {
ASSERT_TRUE(AllServicesMatch());
}
// TCM ID - 9011135.
IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, Duplicates) {
ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
ASSERT_TRUE(AllServicesMatch());
// Add two entries with the same Name and URL (but different keywords).
// Note that we have to change the GUID of the duplicate.
AddSearchEngine(0, 0);
TemplateURL* dupe = CreateTestTemplateURL(0);
dupe->set_keyword(ASCIIToUTF16("somethingelse"));
dupe->set_sync_guid("newguid");
GetServiceForProfile(0)->Add(dupe);
TemplateURL* verifier_dupe = CreateTestTemplateURL(0);
verifier_dupe->set_keyword(ASCIIToUTF16("somethingelse"));
verifier_dupe->set_sync_guid("newguid");
GetVerifierService()->Add(verifier_dupe);
ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
ASSERT_TRUE(AllServicesMatch());
}
// TCM ID - 9004201.
IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, UpdateKeyword) {
ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
......@@ -65,7 +88,7 @@ IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, UpdateKeyword) {
ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
ASSERT_TRUE(AllServicesMatch());
EditSearchEngine(0, "test0", "newkeyword", "test0", "http://www.test0.com/");
EditSearchEngine(0, "test0", "test0", "newkeyword", "http://www.test0.com/");
ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
ASSERT_TRUE(AllServicesMatch());
......@@ -89,6 +112,23 @@ IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, UpdateUrl) {
ASSERT_TRUE(AllServicesMatch());
}
// TCM ID - 8910490.
IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, UpdateName) {
ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
ASSERT_TRUE(AllServicesMatch());
AddSearchEngine(0, 0);
ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
ASSERT_TRUE(AllServicesMatch());
// Change the short name.
EditSearchEngine(0, "test0", "New Name", "test0", "http://www.test0.com/");
ASSERT_TRUE(GetClient(0)->AwaitMutualSyncCycleCompletion(GetClient(1)));
ASSERT_TRUE(AllServicesMatch());
}
// TCM ID - 8898660.
IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, Delete) {
ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
......@@ -105,6 +145,55 @@ IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, Delete) {
ASSERT_TRUE(AllServicesMatch());
}
// TCM ID - 9004196.
IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, ConflictKeyword) {
ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
DisableVerifier();
ASSERT_TRUE(AllServicesMatch());
// Add a different search engine to each client, but make their keywords
// conflict.
AddSearchEngine(0, 0);
AddSearchEngine(1, 1);
const TemplateURL* turl = GetServiceForProfile(1)->
GetTemplateURLForKeyword(ASCIIToUTF16("test1"));
EXPECT_TRUE(turl);
GetServiceForProfile(1)->ResetTemplateURL(turl,
turl->short_name(),
ASCIIToUTF16("test0"),
turl->url()->url());
ASSERT_TRUE(AwaitQuiescence());
ASSERT_TRUE(AllServicesMatch());
}
// TCM ID - 9004187.
IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, MergeMultiple) {
ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
DisableVerifier();
ASSERT_TRUE(AllServicesMatch());
// Set up some different search engines on each client, with some interesting
// conflicts.
// client0: { SE0, SE1, SE2 }
for (int i = 0; i < 3; ++i) {
AddSearchEngine(0, i);
}
// client1: { SE0, SE2, SE3, SE0 + different URL }
AddSearchEngine(1, 0);
AddSearchEngine(1, 2);
AddSearchEngine(1, 3);
TemplateURL* turl = CreateTestTemplateURL(0);
turl->SetURL("http://www.somethingelse.com/", 0, 0);
turl->set_keyword(ASCIIToUTF16("somethingelse.com"));
turl->set_sync_guid("somethingelse");
GetServiceForProfile(1)->Add(turl);
ASSERT_TRUE(AwaitQuiescence());
ASSERT_TRUE(AllServicesMatch());
}
// TCM ID - 8906436.
IN_PROC_BROWSER_TEST_F(TwoClientSearchEnginesSyncTest, DisableSync) {
ASSERT_TRUE(SetupSync());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment