Index: chrome/browser/sync/engine/cleanup_disabled_types_command_unittest.cc |
=================================================================== |
--- chrome/browser/sync/engine/cleanup_disabled_types_command_unittest.cc (revision 0) |
+++ chrome/browser/sync/engine/cleanup_disabled_types_command_unittest.cc (revision 0) |
@@ -0,0 +1,103 @@ |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include <vector> |
+ |
+#include "chrome/browser/sync/engine/cleanup_disabled_types_command.h" |
+ |
+#include "chrome/browser/sync/engine/syncer_end_command.h" |
+#include "chrome/browser/sync/sessions/sync_session.h" |
+#include "chrome/test/sync/engine/syncer_command_test.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+#include "testing/gmock/include/gmock/gmock.h" |
+ |
+using testing::_; |
+ |
+namespace browser_sync { |
+ |
+using sessions::ScopedSessionContextSyncerEventChannel; |
+ |
+class CleanupDisabledTypesCommandTest : public MockDirectorySyncerCommandTest { |
+ public: |
+ CleanupDisabledTypesCommandTest() { |
+ for (int i = syncable::FIRST_REAL_MODEL_TYPE; |
+ i < syncable::MODEL_TYPE_COUNT; i++) { |
+ all_types_.insert(syncable::ModelTypeFromInt(i)); |
+ } |
+ } |
+ virtual void SetUp() { |
+ mutable_routing_info()->clear(); |
+ (*mutable_routing_info())[syncable::BOOKMARKS] = GROUP_PASSIVE; |
+ MockDirectorySyncerCommandTest::SetUp(); |
+ } |
+ |
+ // Overridden to allow SyncerEndCommand Execute to work. |
+ virtual bool IsSyncingCurrentlySilenced() { |
+ return false; |
+ } |
+ |
+ const syncable::ModelTypeSet& all_types() { return all_types_; } |
+ |
+ private: |
+ syncable::ModelTypeSet all_types_; |
+}; |
+ |
+// TODO(tim): Add syncer test to verify previous routing info is set. |
+TEST_F(CleanupDisabledTypesCommandTest, NoPreviousRoutingInfo) { |
+ CleanupDisabledTypesCommand command; |
+ syncable::ModelTypeSet expected(all_types()); |
+ expected.erase(syncable::BOOKMARKS); |
+ EXPECT_CALL(*mock_directory(), PurgeEntriesWithTypeIn(expected)); |
+ command.ExecuteImpl(session()); |
+} |
+ |
+TEST_F(CleanupDisabledTypesCommandTest, NoPurge) { |
+ CleanupDisabledTypesCommand command; |
+ EXPECT_CALL(*mock_directory(), PurgeEntriesWithTypeIn(_)).Times(0); |
+ |
+ ModelSafeRoutingInfo prev(routing_info()); |
+ session()->context()->set_previous_session_routing_info(prev); |
+ (*mutable_routing_info())[syncable::AUTOFILL] = GROUP_PASSIVE; |
+ command.ExecuteImpl(session()); |
+ |
+ prev = routing_info(); |
+ command.ExecuteImpl(session()); |
+} |
+ |
+TEST_F(CleanupDisabledTypesCommandTest, TypeDisabled) { |
+ CleanupDisabledTypesCommand command; |
+ syncable::ModelTypeSet expected; |
+ expected.insert(syncable::PASSWORDS); |
+ expected.insert(syncable::PREFERENCES); |
+ |
+ (*mutable_routing_info())[syncable::AUTOFILL] = GROUP_PASSIVE; |
+ (*mutable_routing_info())[syncable::THEMES] = GROUP_PASSIVE; |
+ (*mutable_routing_info())[syncable::EXTENSIONS] = GROUP_PASSIVE; |
+ |
+ ModelSafeRoutingInfo prev(routing_info()); |
+ prev[syncable::PASSWORDS] = GROUP_PASSIVE; |
+ prev[syncable::PREFERENCES] = GROUP_PASSIVE; |
+ session()->context()->set_previous_session_routing_info(prev); |
+ |
+ EXPECT_CALL(*mock_directory(), PurgeEntriesWithTypeIn(expected)); |
+ command.ExecuteImpl(session()); |
+} |
+ |
+TEST_F(CleanupDisabledTypesCommandTest, |
+ SyncerEndCommandSetsPreviousRoutingInfo) { |
+ SyncerEndCommand command; |
+ // Need channel for SyncerEndCommand. |
+ scoped_ptr<SyncerEventChannel> c(new SyncerEventChannel()); |
+ ScopedSessionContextSyncerEventChannel s(session()->context(), c.get()); |
+ |
+ ModelSafeRoutingInfo info; |
+ EXPECT_TRUE(info == session()->context()->previous_session_routing_info()); |
+ command.ExecuteImpl(session()); |
+ ASSERT_FALSE(routing_info().empty()); |
+ EXPECT_TRUE(routing_info() == |
+ session()->context()->previous_session_routing_info()); |
+} |
+ |
+} // namespace browser_sync |
+ |
Property changes on: chrome\browser\sync\engine\cleanup_disabled_types_command_unittest.cc |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |