OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Unit tests for the SyncApi. Note that a lot of the underlying | 5 // Unit tests for the SyncApi. Note that a lot of the underlying |
6 // functionality is provided by the Syncable layer, which has its own | 6 // functionality is provided by the Syncable layer, which has its own |
7 // unit tests. We'll test SyncApi specific things in this harness. | 7 // unit tests. We'll test SyncApi specific things in this harness. |
8 | 8 |
9 #include <cstddef> | 9 #include <cstddef> |
10 #include <map> | 10 #include <map> |
(...skipping 816 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
827 args.invalidator_client_id = "fake_invalidator_client_id"; | 827 args.invalidator_client_id = "fake_invalidator_client_id"; |
828 args.internal_components_factory.reset(GetFactory()); | 828 args.internal_components_factory.reset(GetFactory()); |
829 args.encryptor = &encryptor_; | 829 args.encryptor = &encryptor_; |
830 args.unrecoverable_error_handler.reset(new TestUnrecoverableErrorHandler); | 830 args.unrecoverable_error_handler.reset(new TestUnrecoverableErrorHandler); |
831 args.cancelation_signal = &cancelation_signal_; | 831 args.cancelation_signal = &cancelation_signal_; |
832 sync_manager_.Init(&args); | 832 sync_manager_.Init(&args); |
833 | 833 |
834 sync_manager_.GetEncryptionHandler()->AddObserver(&encryption_observer_); | 834 sync_manager_.GetEncryptionHandler()->AddObserver(&encryption_observer_); |
835 | 835 |
836 EXPECT_TRUE(js_backend_.IsInitialized()); | 836 EXPECT_TRUE(js_backend_.IsInitialized()); |
837 EXPECT_EQ(InternalComponentsFactory::STORAGE_ON_DISK, | |
838 storage_used_); | |
839 | 837 |
840 if (initialization_succeeded_) { | 838 if (initialization_succeeded_) { |
841 for (ModelSafeRoutingInfo::iterator i = routing_info.begin(); | 839 for (ModelSafeRoutingInfo::iterator i = routing_info.begin(); |
842 i != routing_info.end(); ++i) { | 840 i != routing_info.end(); ++i) { |
843 type_roots_[i->first] = MakeServerNodeForType( | 841 type_roots_[i->first] = MakeServerNodeForType( |
844 sync_manager_.GetUserShare(), i->first); | 842 sync_manager_.GetUserShare(), i->first); |
845 } | 843 } |
846 } | 844 } |
847 | 845 |
848 PumpLoop(); | 846 PumpLoop(); |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
946 syncable::MutableEntry entry(&trans, syncable::GET_BY_CLIENT_TAG, | 944 syncable::MutableEntry entry(&trans, syncable::GET_BY_CLIENT_TAG, |
947 hash); | 945 hash); |
948 EXPECT_TRUE(entry.good()); | 946 EXPECT_TRUE(entry.good()); |
949 if (!entry.GetIsUnsynced()) | 947 if (!entry.GetIsUnsynced()) |
950 return false; | 948 return false; |
951 entry.PutIsUnsynced(false); | 949 entry.PutIsUnsynced(false); |
952 return true; | 950 return true; |
953 } | 951 } |
954 | 952 |
955 virtual InternalComponentsFactory* GetFactory() { | 953 virtual InternalComponentsFactory* GetFactory() { |
956 return new TestInternalComponentsFactory( | 954 return new TestInternalComponentsFactory(GetSwitches(), STORAGE_IN_MEMORY); |
957 GetSwitches(), InternalComponentsFactory::STORAGE_IN_MEMORY, | |
958 &storage_used_); | |
959 } | 955 } |
960 | 956 |
961 // Returns true if we are currently encrypting all sync data. May | 957 // Returns true if we are currently encrypting all sync data. May |
962 // be called on any thread. | 958 // be called on any thread. |
963 bool EncryptEverythingEnabledForTest() { | 959 bool EncryptEverythingEnabledForTest() { |
964 return sync_manager_.GetEncryptionHandler()->EncryptEverythingEnabled(); | 960 return sync_manager_.GetEncryptionHandler()->EncryptEverythingEnabled(); |
965 } | 961 } |
966 | 962 |
967 // Gets the set of encrypted types from the cryptographer | 963 // Gets the set of encrypted types from the cryptographer |
968 // Note: opens a transaction. May be called from any thread. | 964 // Note: opens a transaction. May be called from any thread. |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1008 | 1004 |
1009 protected: | 1005 protected: |
1010 FakeEncryptor encryptor_; | 1006 FakeEncryptor encryptor_; |
1011 SyncManagerImpl sync_manager_; | 1007 SyncManagerImpl sync_manager_; |
1012 CancelationSignal cancelation_signal_; | 1008 CancelationSignal cancelation_signal_; |
1013 WeakHandle<JsBackend> js_backend_; | 1009 WeakHandle<JsBackend> js_backend_; |
1014 bool initialization_succeeded_; | 1010 bool initialization_succeeded_; |
1015 StrictMock<SyncManagerObserverMock> manager_observer_; | 1011 StrictMock<SyncManagerObserverMock> manager_observer_; |
1016 StrictMock<SyncEncryptionHandlerObserverMock> encryption_observer_; | 1012 StrictMock<SyncEncryptionHandlerObserverMock> encryption_observer_; |
1017 InternalComponentsFactory::Switches switches_; | 1013 InternalComponentsFactory::Switches switches_; |
1018 InternalComponentsFactory::StorageOption storage_used_; | |
1019 }; | 1014 }; |
1020 | 1015 |
1021 TEST_F(SyncManagerTest, GetAllNodesForTypeTest) { | 1016 TEST_F(SyncManagerTest, GetAllNodesForTypeTest) { |
1022 ModelSafeRoutingInfo routing_info; | 1017 ModelSafeRoutingInfo routing_info; |
1023 GetModelSafeRoutingInfo(&routing_info); | 1018 GetModelSafeRoutingInfo(&routing_info); |
1024 sync_manager_.StartSyncingNormally(routing_info); | 1019 sync_manager_.StartSyncingNormally(routing_info); |
1025 | 1020 |
1026 scoped_ptr<base::ListValue> node_list( | 1021 scoped_ptr<base::ListValue> node_list( |
1027 sync_manager_.GetAllNodesForType(syncer::PREFERENCES)); | 1022 sync_manager_.GetAllNodesForType(syncer::PREFERENCES)); |
1028 | 1023 |
(...skipping 1379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2408 | 2403 |
2409 MOCK_METHOD1(Start, void(SyncScheduler::Mode)); | 2404 MOCK_METHOD1(Start, void(SyncScheduler::Mode)); |
2410 MOCK_METHOD1(ScheduleConfiguration, void(const ConfigurationParams&)); | 2405 MOCK_METHOD1(ScheduleConfiguration, void(const ConfigurationParams&)); |
2411 }; | 2406 }; |
2412 | 2407 |
2413 class ComponentsFactory : public TestInternalComponentsFactory { | 2408 class ComponentsFactory : public TestInternalComponentsFactory { |
2414 public: | 2409 public: |
2415 ComponentsFactory(const Switches& switches, | 2410 ComponentsFactory(const Switches& switches, |
2416 SyncScheduler* scheduler_to_use, | 2411 SyncScheduler* scheduler_to_use, |
2417 sessions::SyncSessionContext** session_context) | 2412 sessions::SyncSessionContext** session_context) |
2418 : TestInternalComponentsFactory( | 2413 : TestInternalComponentsFactory(switches, syncer::STORAGE_IN_MEMORY), |
2419 switches, InternalComponentsFactory::STORAGE_IN_MEMORY, NULL), | |
2420 scheduler_to_use_(scheduler_to_use), | 2414 scheduler_to_use_(scheduler_to_use), |
2421 session_context_(session_context) {} | 2415 session_context_(session_context) {} |
2422 virtual ~ComponentsFactory() {} | 2416 virtual ~ComponentsFactory() {} |
2423 | 2417 |
2424 virtual scoped_ptr<SyncScheduler> BuildScheduler( | 2418 virtual scoped_ptr<SyncScheduler> BuildScheduler( |
2425 const std::string& name, | 2419 const std::string& name, |
2426 sessions::SyncSessionContext* context, | 2420 sessions::SyncSessionContext* context, |
2427 CancelationSignal* stop_handle) OVERRIDE { | 2421 CancelationSignal* stop_handle) OVERRIDE { |
2428 *session_context_ = context; | 2422 *session_context_ = context; |
2429 return scheduler_to_use_.Pass(); | 2423 return scheduler_to_use_.Pass(); |
(...skipping 746 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3176 // do so it should fail initialization. This test verifies this behavior. | 3170 // do so it should fail initialization. This test verifies this behavior. |
3177 // Test reuses SyncManagerImpl initialization from SyncManagerTest but overrides | 3171 // Test reuses SyncManagerImpl initialization from SyncManagerTest but overrides |
3178 // InternalComponentsFactory to return DirectoryBackingStore that always fails | 3172 // InternalComponentsFactory to return DirectoryBackingStore that always fails |
3179 // to load. | 3173 // to load. |
3180 class SyncManagerInitInvalidStorageTest : public SyncManagerTest { | 3174 class SyncManagerInitInvalidStorageTest : public SyncManagerTest { |
3181 public: | 3175 public: |
3182 SyncManagerInitInvalidStorageTest() { | 3176 SyncManagerInitInvalidStorageTest() { |
3183 } | 3177 } |
3184 | 3178 |
3185 virtual InternalComponentsFactory* GetFactory() OVERRIDE { | 3179 virtual InternalComponentsFactory* GetFactory() OVERRIDE { |
3186 return new TestInternalComponentsFactory( | 3180 return new TestInternalComponentsFactory(GetSwitches(), STORAGE_INVALID); |
3187 GetSwitches(), InternalComponentsFactory::STORAGE_INVALID, | |
3188 &storage_used_); | |
3189 } | 3181 } |
3190 }; | 3182 }; |
3191 | 3183 |
3192 // SyncManagerInitInvalidStorageTest::GetFactory will return | 3184 // SyncManagerInitInvalidStorageTest::GetFactory will return |
3193 // DirectoryBackingStore that ensures that SyncManagerImpl::OpenDirectory fails. | 3185 // DirectoryBackingStore that ensures that SyncManagerImpl::OpenDirectory fails. |
3194 // SyncManagerImpl initialization is done in SyncManagerTest::SetUp. This test's | 3186 // SyncManagerImpl initialization is done in SyncManagerTest::SetUp. This test's |
3195 // task is to ensure that SyncManagerImpl reported initialization failure in | 3187 // task is to ensure that SyncManagerImpl reported initialization failure in |
3196 // OnInitializationComplete callback. | 3188 // OnInitializationComplete callback. |
3197 TEST_F(SyncManagerInitInvalidStorageTest, FailToOpenDatabase) { | 3189 TEST_F(SyncManagerInitInvalidStorageTest, FailToOpenDatabase) { |
3198 EXPECT_FALSE(initialization_succeeded_); | 3190 EXPECT_FALSE(initialization_succeeded_); |
3199 } | 3191 } |
3200 | 3192 |
3201 } // namespace syncer | 3193 } // namespace syncer |
OLD | NEW |