diff options
Diffstat (limited to 'sync/engine/directory_update_handler_unittest.cc')
-rw-r--r-- | sync/engine/directory_update_handler_unittest.cc | 86 |
1 files changed, 60 insertions, 26 deletions
diff --git a/sync/engine/directory_update_handler_unittest.cc b/sync/engine/directory_update_handler_unittest.cc index ec0a14e..837e9f4 100644 --- a/sync/engine/directory_update_handler_unittest.cc +++ b/sync/engine/directory_update_handler_unittest.cc @@ -86,6 +86,10 @@ class DirectoryUpdateHandlerProcessUpdateTest : public ::testing::Test { return e.good() && !e.GetIsDel(); } + protected: + // Used in the construction of DirectoryTypeDebugInfoEmitters. + ObserverList<TypeDebugInfoObserver> type_observers_; + private: base::MessageLoop loop_; // Needed to initialize the directory. TestDirectorySetterUpper dir_maker_; @@ -125,7 +129,7 @@ static const char kCacheGuid[] = "IrcjZ2jyzHDV9Io4+zKcXQ=="; // Test that the bookmark tag is set on newly downloaded items. TEST_F(DirectoryUpdateHandlerProcessUpdateTest, NewBookmarkTag) { - DirectoryTypeDebugInfoEmitter emitter; + DirectoryTypeDebugInfoEmitter emitter(BOOKMARKS, &type_observers_); DirectoryUpdateHandler handler(dir(), BOOKMARKS, ui_worker(), &emitter); sync_pb::GetUpdatesResponse gu_response; sessions::StatusController status; @@ -164,7 +168,7 @@ TEST_F(DirectoryUpdateHandlerProcessUpdateTest, NewBookmarkTag) { // Test the receipt of a type root node. TEST_F(DirectoryUpdateHandlerProcessUpdateTest, ReceiveServerCreatedBookmarkFolders) { - DirectoryTypeDebugInfoEmitter emitter; + DirectoryTypeDebugInfoEmitter emitter(BOOKMARKS, &type_observers_); DirectoryUpdateHandler handler(dir(), BOOKMARKS, ui_worker(), &emitter); sync_pb::GetUpdatesResponse gu_response; sessions::StatusController status; @@ -199,7 +203,7 @@ TEST_F(DirectoryUpdateHandlerProcessUpdateTest, // Test the receipt of a non-bookmark item. TEST_F(DirectoryUpdateHandlerProcessUpdateTest, ReceiveNonBookmarkItem) { - DirectoryTypeDebugInfoEmitter emitter; + DirectoryTypeDebugInfoEmitter emitter(AUTOFILL, &type_observers_); DirectoryUpdateHandler handler(dir(), AUTOFILL, ui_worker(), &emitter); sync_pb::GetUpdatesResponse gu_response; sessions::StatusController status; @@ -231,7 +235,7 @@ TEST_F(DirectoryUpdateHandlerProcessUpdateTest, ReceiveNonBookmarkItem) { // Tests the setting of progress markers. TEST_F(DirectoryUpdateHandlerProcessUpdateTest, ProcessNewProgressMarkers) { - DirectoryTypeDebugInfoEmitter emitter; + DirectoryTypeDebugInfoEmitter emitter(BOOKMARKS, &type_observers_); DirectoryUpdateHandler handler(dir(), BOOKMARKS, ui_worker(), &emitter); sync_pb::DataTypeProgressMarker progress; @@ -248,7 +252,7 @@ TEST_F(DirectoryUpdateHandlerProcessUpdateTest, ProcessNewProgressMarkers) { } TEST_F(DirectoryUpdateHandlerProcessUpdateTest, GarbageCollectionByVersion) { - DirectoryTypeDebugInfoEmitter emitter; + DirectoryTypeDebugInfoEmitter emitter(SYNCED_NOTIFICATIONS, &type_observers_); DirectoryUpdateHandler handler(dir(), SYNCED_NOTIFICATIONS, ui_worker(), &emitter); sessions::StatusController status; @@ -313,7 +317,7 @@ TEST_F(DirectoryUpdateHandlerProcessUpdateTest, GarbageCollectionByVersion) { } TEST_F(DirectoryUpdateHandlerProcessUpdateTest, ContextVersion) { - DirectoryTypeDebugInfoEmitter emitter; + DirectoryTypeDebugInfoEmitter emitter(SYNCED_NOTIFICATIONS, &type_observers_); DirectoryUpdateHandler handler(dir(), SYNCED_NOTIFICATIONS, ui_worker(), &emitter); sessions::StatusController status; @@ -413,6 +417,8 @@ class DirectoryUpdateHandlerApplyUpdateTest : public ::testing::Test { : ui_worker_(new FakeModelWorker(GROUP_UI)), password_worker_(new FakeModelWorker(GROUP_PASSWORD)), passive_worker_(new FakeModelWorker(GROUP_PASSIVE)), + bookmarks_emitter_(BOOKMARKS, &type_observers_), + passwords_emitter_(PASSWORDS, &type_observers_), update_handler_map_deleter_(&update_handler_map_) {} virtual void SetUp() OVERRIDE { @@ -435,6 +441,14 @@ class DirectoryUpdateHandlerApplyUpdateTest : public ::testing::Test { dir_maker_.TearDown(); } + const UpdateCounters& GetBookmarksUpdateCounters() { + return bookmarks_emitter_.GetUpdateCounters(); + } + + const UpdateCounters& GetPasswordsUpdateCounters() { + return passwords_emitter_.GetUpdateCounters(); + } + protected: void ApplyBookmarkUpdates(sessions::StatusController* status) { update_handler_map_[BOOKMARKS]->ApplyUpdates(status); @@ -463,6 +477,7 @@ class DirectoryUpdateHandlerApplyUpdateTest : public ::testing::Test { scoped_refptr<FakeModelWorker> password_worker_; scoped_refptr<FakeModelWorker> passive_worker_; + ObserverList<TypeDebugInfoObserver> type_observers_; DirectoryTypeDebugInfoEmitter bookmarks_emitter_; DirectoryTypeDebugInfoEmitter passwords_emitter_; @@ -492,11 +507,12 @@ TEST_F(DirectoryUpdateHandlerApplyUpdateTest, SimpleBookmark) { ApplyBookmarkUpdates(&status); - EXPECT_EQ(0, status.num_encryption_conflicts()) + const UpdateCounters& counter = GetBookmarksUpdateCounters(); + EXPECT_EQ(0, counter.num_encryption_conflict_application_failures) << "Simple update shouldn't result in conflicts"; - EXPECT_EQ(0, status.num_hierarchy_conflicts()) + EXPECT_EQ(0, counter.num_hierarchy_conflict_application_failures) << "Simple update shouldn't result in conflicts"; - EXPECT_EQ(2, status.num_updates_applied()) + EXPECT_EQ(2, counter.num_updates_applied) << "All items should have been successfully applied"; { @@ -588,9 +604,11 @@ TEST_F(DirectoryUpdateHandlerApplyUpdateTest, SimpleBookmarkConflict) { sessions::StatusController status; ApplyBookmarkUpdates(&status); - EXPECT_EQ(1, status.num_server_overwrites()) + + const UpdateCounters& counters = GetBookmarksUpdateCounters(); + EXPECT_EQ(1, counters.num_server_overwrites) << "Unsynced and unapplied item conflict should be resolved"; - EXPECT_EQ(0, status.num_updates_applied()) + EXPECT_EQ(0, counters.num_updates_applied) << "Update should not be applied; we should override the server."; { @@ -626,9 +644,11 @@ TEST_F(DirectoryUpdateHandlerApplyUpdateTest, HierarchyAndSimpleConflict) { sessions::StatusController status; ApplyBookmarkUpdates(&status); - EXPECT_EQ(0, status.num_updates_applied()); - EXPECT_EQ(0, status.num_server_overwrites()); - EXPECT_EQ(1, status.num_hierarchy_conflicts()); + + const UpdateCounters& counters = GetBookmarksUpdateCounters(); + EXPECT_EQ(0, counters.num_updates_applied); + EXPECT_EQ(0, counters.num_server_overwrites); + EXPECT_EQ(1, counters.num_hierarchy_conflict_application_failures); { syncable::ReadTransaction trans(FROM_HERE, directory()); @@ -673,7 +693,8 @@ TEST_F(DirectoryUpdateHandlerApplyUpdateTest, BookmarkFolderLoop) { ApplyBookmarkUpdates(&status); // This should count as a hierarchy conflict. - EXPECT_EQ(1, status.num_hierarchy_conflicts()); + const UpdateCounters& counters = GetBookmarksUpdateCounters(); + EXPECT_EQ(1, counters.num_hierarchy_conflict_application_failures); { syncable::ReadTransaction trans(FROM_HERE, directory()); @@ -711,7 +732,8 @@ TEST_F(DirectoryUpdateHandlerApplyUpdateTest, sessions::StatusController status; ApplyBookmarkUpdates(&status); - EXPECT_EQ(1, status.num_hierarchy_conflicts()); + const UpdateCounters& counters = GetBookmarksUpdateCounters(); + EXPECT_EQ(1, counters.num_hierarchy_conflict_application_failures); { syncable::ReadTransaction trans(FROM_HERE, directory()); @@ -755,7 +777,8 @@ TEST_F(DirectoryUpdateHandlerApplyUpdateTest, ApplyBookmarkUpdates(&status); // This should count as a hierarchy conflict. - EXPECT_EQ(1, status.num_hierarchy_conflicts()); + const UpdateCounters& counters = GetBookmarksUpdateCounters(); + EXPECT_EQ(1, counters.num_hierarchy_conflict_application_failures); { syncable::ReadTransaction trans(FROM_HERE, directory()); @@ -779,9 +802,10 @@ TEST_F(DirectoryUpdateHandlerApplyUpdateTest, sessions::StatusController status; ApplyBookmarkUpdates(&status); - EXPECT_EQ(2, status.num_hierarchy_conflicts()) + const UpdateCounters& counters = GetBookmarksUpdateCounters(); + EXPECT_EQ(2, counters.num_hierarchy_conflict_application_failures) << "All updates with an unknown ancestors should be in conflict"; - EXPECT_EQ(0, status.num_updates_applied()) + EXPECT_EQ(0, counters.num_updates_applied) << "No item with an unknown ancestor should be applied"; { @@ -818,9 +842,10 @@ TEST_F(DirectoryUpdateHandlerApplyUpdateTest, ItemsBothKnownAndUnknown) { sessions::StatusController status; ApplyBookmarkUpdates(&status); - EXPECT_EQ(2, status.num_hierarchy_conflicts()) + const UpdateCounters& counters = GetBookmarksUpdateCounters(); + EXPECT_EQ(2, counters.num_hierarchy_conflict_application_failures) << "The updates with unknown ancestors should be in conflict"; - EXPECT_EQ(4, status.num_updates_applied()) + EXPECT_EQ(4, counters.num_updates_applied) << "The updates with known ancestors should be successfully applied"; { @@ -872,7 +897,8 @@ TEST_F(DirectoryUpdateHandlerApplyUpdateTest, DecryptablePassword) { sessions::StatusController status; ApplyPasswordUpdates(&status); - EXPECT_EQ(1, status.num_updates_applied()) + const UpdateCounters& counters = GetPasswordsUpdateCounters(); + EXPECT_EQ(1, counters.num_updates_applied) << "The updates that can be decrypted should be applied"; { @@ -910,9 +936,16 @@ TEST_F(DirectoryUpdateHandlerApplyUpdateTest, UndecryptableData) { ApplyBookmarkUpdates(&status); ApplyPasswordUpdates(&status); - EXPECT_EQ(3, status.num_encryption_conflicts()) + const UpdateCounters& bm_counters = GetBookmarksUpdateCounters(); + EXPECT_EQ(2, bm_counters.num_encryption_conflict_application_failures) + << "Updates that can't be decrypted should be in encryption conflict"; + EXPECT_EQ(0, bm_counters.num_updates_applied) + << "No update that can't be decrypted should be applied"; + + const UpdateCounters& pw_counters = GetPasswordsUpdateCounters(); + EXPECT_EQ(1, pw_counters.num_encryption_conflict_application_failures) << "Updates that can't be decrypted should be in encryption conflict"; - EXPECT_EQ(0, status.num_updates_applied()) + EXPECT_EQ(0, pw_counters.num_updates_applied) << "No update that can't be decrypted should be applied"; { @@ -973,10 +1006,11 @@ TEST_F(DirectoryUpdateHandlerApplyUpdateTest, SomeUndecryptablePassword) { sessions::StatusController status; ApplyPasswordUpdates(&status); - EXPECT_EQ(1, status.num_encryption_conflicts()) + const UpdateCounters& counters = GetPasswordsUpdateCounters(); + EXPECT_EQ(1, counters.num_encryption_conflict_application_failures) << "The updates that can't be decrypted should be in encryption " << "conflict"; - EXPECT_EQ(1, status.num_updates_applied()) + EXPECT_EQ(1, counters.num_updates_applied) << "The undecryptable password update shouldn't be applied"; { |