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

Unified Diff: chrome/browser/sync/sessions/sync_session_unittest.cc

Issue 5939006: sync: beginnings of MessageLoop based SyncerThread (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: linux compile Created 9 years, 11 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 | « chrome/browser/sync/sessions/sync_session_context.h ('k') | chrome/browser/sync/sessions/test_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/sessions/sync_session_unittest.cc
diff --git a/chrome/browser/sync/sessions/sync_session_unittest.cc b/chrome/browser/sync/sessions/sync_session_unittest.cc
index 9bb1e3be80ef7427afdd08245b671210f00444a8..681c0ad4027f0057d01b10e2885f6c2a2af68aa6 100644
--- a/chrome/browser/sync/sessions/sync_session_unittest.cc
+++ b/chrome/browser/sync/sessions/sync_session_unittest.cc
@@ -4,7 +4,9 @@
#include "chrome/browser/sync/sessions/sync_session.h"
+#include "base/ref_counted.h"
#include "chrome/browser/sync/engine/conflict_resolver.h"
+#include "chrome/browser/sync/engine/mock_model_safe_workers.h"
#include "chrome/browser/sync/engine/syncer_types.h"
#include "chrome/browser/sync/engine/syncer_util.h"
#include "chrome/browser/sync/syncable/directory_manager.h"
@@ -108,7 +110,7 @@ TEST_F(SyncSessionTest, ScopedContextHelpers) {
TEST_F(SyncSessionTest, SetWriteTransaction) {
TestDirectorySetterUpper db;
db.SetUp();
- session_.reset(NULL);
+ session_.reset();
context_.reset(new SyncSessionContext(NULL, db.manager(), this,
std::vector<SyncEngineEventListener*>()));
session_.reset(MakeSession());
@@ -250,6 +252,47 @@ TEST_F(SyncSessionTest, MoreToSyncIfConflictsResolved) {
EXPECT_TRUE(session_->HasMoreToSync());
}
+TEST_F(SyncSessionTest, ResetTransientState) {
+ status()->update_conflicts_resolved(true);
+ status()->increment_num_successful_commits();
+ EXPECT_TRUE(session_->HasMoreToSync());
+ session_->ResetTransientState();
+ EXPECT_FALSE(status()->conflicts_resolved());
+ EXPECT_FALSE(session_->HasMoreToSync());
+ EXPECT_FALSE(status()->TestAndClearIsDirty());
+}
+
+TEST_F(SyncSessionTest, Coalesce) {
+ std::vector<ModelSafeWorker*> workers_one, workers_two;
+ ModelSafeRoutingInfo routes_one, routes_two;
+ SyncSourceInfo source_one(sync_pb::GetUpdatesCallerInfo::PERIODIC,
+ ParamsMeaningJustOneEnabledType());
+ SyncSourceInfo source_two(sync_pb::GetUpdatesCallerInfo::LOCAL,
+ ParamsMeaningAllEnabledTypes());
+ scoped_refptr<MockDBModelWorker> db_worker(new MockDBModelWorker());
+ scoped_refptr<MockUIModelWorker> ui_worker(new MockUIModelWorker());
+ workers_one.push_back(db_worker);
+ workers_two.push_back(db_worker);
+ workers_two.push_back(ui_worker);
+ routes_one[syncable::AUTOFILL] = GROUP_DB;
+ routes_two[syncable::AUTOFILL] = GROUP_DB;
+ routes_two[syncable::BOOKMARKS] = GROUP_UI;
+ SyncSession one(context_.get(), this, source_one, routes_one, workers_one);
+ SyncSession two(context_.get(), this, source_two, routes_two, workers_two);
+
+ one.Coalesce(two);
+
+ EXPECT_EQ(two.source().first, one.source().first);
+ EXPECT_EQ(ParamsMeaningAllEnabledTypes(), one.source().second);
+ std::vector<ModelSafeWorker*>::const_iterator it_db =
+ std::find(one.workers().begin(), one.workers().end(), db_worker);
+ std::vector<ModelSafeWorker*>::const_iterator it_ui =
+ std::find(one.workers().begin(), one.workers().end(), ui_worker);
+ EXPECT_NE(it_db, one.workers().end());
+ EXPECT_NE(it_ui, one.workers().end());
+ EXPECT_EQ(routes_two, one.routing_info());
+}
+
} // namespace
} // namespace sessions
} // namespace browser_sync
« no previous file with comments | « chrome/browser/sync/sessions/sync_session_context.h ('k') | chrome/browser/sync/sessions/test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698