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

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: review+tests 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
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..28cd5b1029466959f437fd77d803ff9d44512a65 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/scoped_vector.h"
akalin 2011/01/25 06:09:53 Do you still need this? Probably want ref_counted
#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_, this, source_one, routes_one, workers_one);
akalin 2011/01/25 06:09:53 why not just context_.get()?
tim (not reviewing) 2011/01/25 23:11:36 shorter and, previously, let me fit on one line I
+ SyncSession two(&*context_, 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

Powered by Google App Engine
This is Rietveld 408576698