Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1950)

Unified Diff: chrome/browser/sync/test/integration/single_client_backup_rollback_test.cc

Issue 344193005: Add more integration tests for backup/rollback. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/test/integration/single_client_backup_rollback_test.cc
diff --git a/chrome/browser/sync/test/integration/single_client_backup_rollback_test.cc b/chrome/browser/sync/test/integration/single_client_backup_rollback_test.cc
index b204a59cba0e4a4159334353dadc25d9007e643f..5a9e0b29665ee3f5f81654c1dbe9179651bc9d80 100644
--- a/chrome/browser/sync/test/integration/single_client_backup_rollback_test.cc
+++ b/chrome/browser/sync/test/integration/single_client_backup_rollback_test.cc
@@ -29,10 +29,14 @@ class SingleClientBackupRollbackTest : public SyncTest {
SingleClientBackupRollbackTest() : SyncTest(SINGLE_CLIENT) {}
virtual ~SingleClientBackupRollbackTest() {}
- virtual void SetUp() OVERRIDE {
+ void DisableBackup() {
+ CommandLine::ForCurrentProcess()->AppendSwitch(
+ switches::kSyncDisableBackup);
+ }
+
+ void EnableRollback() {
CommandLine::ForCurrentProcess()->AppendSwitch(
switches::kSyncEnableRollback);
- SyncTest::SetUp();
}
private:
@@ -79,12 +83,82 @@ class BackupModeChecker {
};
#if defined(ENABLE_PRE_SYNC_BACKUP)
+#define MAYBE_TestBackupDisabled TestBackupDisabled
+#else
+#define MAYBE_TestBackupDisabled DISABLED_TestBackupDisabled
+#endif
+IN_PROC_BROWSER_TEST_F(SingleClientBackupRollbackTest,
+ MAYBE_TestBackupDisabled) {
+ DisableBackup();
+
+ ASSERT_TRUE(SetupClients()) << "SetupClients() failed.";
+
+ BackupModeChecker checker(GetSyncService(0),
+ base::TimeDelta::FromSeconds(15));
+ ASSERT_FALSE(checker.Wait());
pval...(no longer on Chromium) 2014/06/28 00:12:00 does Wait() have to wait the entire timeout to eve
haitaol1 2014/07/01 16:49:36 Unfortunately yes because backup controller won't
+
+ ASSERT_EQ(ProfileSyncService::IDLE, GetSyncService(0)->backend_mode());
+}
+
+#if defined(ENABLE_PRE_SYNC_BACKUP)
+#define MAYBE_TestBackupOnly TestBackupOnly
+#else
+#define MAYBE_TestBackupOnly DISABLED_TestBackupOnly
+#endif
+IN_PROC_BROWSER_TEST_F(SingleClientBackupRollbackTest,
+ MAYBE_TestBackupOnly) {
+ ASSERT_TRUE(SetupClients()) << "SetupClients() failed.";
+
+ // Starting state:
+ // other_node
+ // -> http://mail.google.com "url0"
+ // -> http://www.nhl.com "url1"
+ ASSERT_TRUE(AddURL(0, GetOtherNode(0), 0, "url0",
+ GURL("http://mail.google.com")));
+ ASSERT_TRUE(AddURL(0, GetOtherNode(0), 1, "url1",
+ GURL("http://www.nhl.com")));
+
+ BackupModeChecker checker(GetSyncService(0),
+ base::TimeDelta::FromSeconds(15));
+ ASSERT_TRUE(checker.Wait());
+
+ // Setup sync, wait for its completion, and make sure changes were synced.
+ ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
+ ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0))));
+ ASSERT_TRUE(ModelMatchesVerifier(0));
+
+ // Made bookmark changes while sync is on.
+ Remove(0, GetOtherNode(0), 1);
+ ASSERT_TRUE(AddURL(0, GetOtherNode(0), 1, "url2",
+ GURL("http://www.yahoo.com")));
+ ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0))));
+ ASSERT_TRUE(ModelMatchesVerifier(0));
+
+ // Let server to return rollback command on next sync request.
+ GetFakeServer()->TriggerError(sync_pb::SyncEnums::USER_ROLLBACK);
+
+ // Make another change to trigger downloading of rollback command.
+ Remove(0, GetOtherNode(0), 0);
pval...(no longer on Chromium) 2014/06/28 00:12:00 Is there another way we can trigger a sync that wo
haitaol1 2014/07/01 16:49:36 Can you point me to a sample to trigger invalidati
pval...(no longer on Chromium) 2014/07/02 18:10:59 Let's save it for another CL. Add a TODO here (in
+
+ // Wait for sync to switch to backup mode after finishing rollback.
pval...(no longer on Chromium) 2014/06/28 00:12:00 Update comment to reflect that a rollback isn't ac
haitaol1 2014/07/01 16:49:36 Done.
+ ASSERT_TRUE(checker.Wait());
+
+ // With rollback disabled, bookmarks in backup DB should not be restored.
+ // Only bookmark added during sync is present.
+ ASSERT_EQ(1, GetOtherNode(0)->child_count());
+ ASSERT_EQ(GURL("http://www.yahoo.com"),
+ GetOtherNode(0)->GetChild(0)->url());
+}
+
+#if defined(ENABLE_PRE_SYNC_BACKUP)
#define MAYBE_TestBackupRollback TestBackupRollback
#else
#define MAYBE_TestBackupRollback DISABLED_TestBackupRollback
#endif
IN_PROC_BROWSER_TEST_F(SingleClientBackupRollbackTest,
MAYBE_TestBackupRollback) {
+ EnableRollback();
+
ASSERT_TRUE(SetupClients()) << "SetupClients() failed.";
// Starting state:
@@ -146,6 +220,8 @@ IN_PROC_BROWSER_TEST_F(SingleClientBackupRollbackTest,
// backup mode.
IN_PROC_BROWSER_TEST_F(SingleClientBackupRollbackTest,
MAYBE_TestPrefBackupRollback) {
+ EnableRollback();
+
const char kUrl1[] = "http://www.google.com";
const char kUrl2[] = "http://map.google.com";
const char kUrl3[] = "http://plus.google.com";
@@ -187,3 +263,46 @@ IN_PROC_BROWSER_TEST_F(SingleClientBackupRollbackTest,
ASSERT_EQ(kUrl2,
preferences_helper::GetPrefs(0)->GetString(prefs::kHomePage));
}
+
+#if defined(ENABLE_PRE_SYNC_BACKUP)
+#define MAYBE_RollbackNoBackup RollbackNoBackup
+#else
+#define MAYBE_RollbackNoBackup DISABLED_RollbackNoBackup
+#endif
+IN_PROC_BROWSER_TEST_F(SingleClientBackupRollbackTest,
+ MAYBE_RollbackNoBackup) {
+ EnableRollback();
+
+ ASSERT_TRUE(SetupClients()) << "SetupClients() failed.";
+
+ // Setup sync, wait for its completion, and make sure changes were synced.
+ ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
+
+ // Starting state:
+ // other_node
+ // -> http://mail.google.com "url0"
+ // -> http://www.nhl.com "url1"
+ ASSERT_TRUE(AddURL(0, GetOtherNode(0), 0, "url0",
+ GURL("http://mail.google.com")));
+ ASSERT_TRUE(AddURL(0, GetOtherNode(0), 1, "url1",
+ GURL("http://www.nhl.com")));
+
+ ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0))));
+ ASSERT_TRUE(ModelMatchesVerifier(0));
+
+ // Let server to return rollback command on next sync request.
+ GetFakeServer()->TriggerError(sync_pb::SyncEnums::USER_ROLLBACK);
+
+ // Make another change to trigger downloading of rollback command.
+ Remove(0, GetOtherNode(0), 0);
+
+ // Wait for sync to switch to backup mode after finishing rollback.
+ BackupModeChecker checker(GetSyncService(0),
+ base::TimeDelta::FromSeconds(15));
+ ASSERT_TRUE(checker.Wait());
+
+ // Without backup DB, bookmarks added during sync shouldn't be removed.
+ ASSERT_EQ(1, GetOtherNode(0)->child_count());
+ ASSERT_EQ(GURL("http://www.nhl.com"),
+ GetOtherNode(0)->GetChild(0)->url());
+}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698