| 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 675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 686 // Finally, the attachment is no longer linked. | 686 // Finally, the attachment is no longer linked. |
| 687 ASSERT_FALSE(dir()->IsAttachmentLinked(attachment_id.GetProto())); | 687 ASSERT_FALSE(dir()->IsAttachmentLinked(attachment_id.GetProto())); |
| 688 } | 688 } |
| 689 | 689 |
| 690 namespace { | 690 namespace { |
| 691 | 691 |
| 692 class TestHttpPostProviderInterface : public HttpPostProviderInterface { | 692 class TestHttpPostProviderInterface : public HttpPostProviderInterface { |
| 693 public: | 693 public: |
| 694 virtual ~TestHttpPostProviderInterface() {} | 694 virtual ~TestHttpPostProviderInterface() {} |
| 695 | 695 |
| 696 virtual void SetExtraRequestHeaders(const char* headers) OVERRIDE {} | 696 virtual void SetExtraRequestHeaders(const char* headers) override {} |
| 697 virtual void SetURL(const char* url, int port) OVERRIDE {} | 697 virtual void SetURL(const char* url, int port) override {} |
| 698 virtual void SetPostPayload(const char* content_type, | 698 virtual void SetPostPayload(const char* content_type, |
| 699 int content_length, | 699 int content_length, |
| 700 const char* content) OVERRIDE {} | 700 const char* content) override {} |
| 701 virtual bool MakeSynchronousPost(int* error_code, int* response_code) | 701 virtual bool MakeSynchronousPost(int* error_code, int* response_code) |
| 702 OVERRIDE { | 702 override { |
| 703 return false; | 703 return false; |
| 704 } | 704 } |
| 705 virtual int GetResponseContentLength() const OVERRIDE { | 705 virtual int GetResponseContentLength() const override { |
| 706 return 0; | 706 return 0; |
| 707 } | 707 } |
| 708 virtual const char* GetResponseContent() const OVERRIDE { | 708 virtual const char* GetResponseContent() const override { |
| 709 return ""; | 709 return ""; |
| 710 } | 710 } |
| 711 virtual const std::string GetResponseHeaderValue( | 711 virtual const std::string GetResponseHeaderValue( |
| 712 const std::string& name) const OVERRIDE { | 712 const std::string& name) const override { |
| 713 return std::string(); | 713 return std::string(); |
| 714 } | 714 } |
| 715 virtual void Abort() OVERRIDE {} | 715 virtual void Abort() override {} |
| 716 }; | 716 }; |
| 717 | 717 |
| 718 class TestHttpPostProviderFactory : public HttpPostProviderFactory { | 718 class TestHttpPostProviderFactory : public HttpPostProviderFactory { |
| 719 public: | 719 public: |
| 720 virtual ~TestHttpPostProviderFactory() {} | 720 virtual ~TestHttpPostProviderFactory() {} |
| 721 virtual void Init(const std::string& user_agent) OVERRIDE { } | 721 virtual void Init(const std::string& user_agent) override { } |
| 722 virtual HttpPostProviderInterface* Create() OVERRIDE { | 722 virtual HttpPostProviderInterface* Create() override { |
| 723 return new TestHttpPostProviderInterface(); | 723 return new TestHttpPostProviderInterface(); |
| 724 } | 724 } |
| 725 virtual void Destroy(HttpPostProviderInterface* http) OVERRIDE { | 725 virtual void Destroy(HttpPostProviderInterface* http) override { |
| 726 delete static_cast<TestHttpPostProviderInterface*>(http); | 726 delete static_cast<TestHttpPostProviderInterface*>(http); |
| 727 } | 727 } |
| 728 }; | 728 }; |
| 729 | 729 |
| 730 class SyncManagerObserverMock : public SyncManager::Observer { | 730 class SyncManagerObserverMock : public SyncManager::Observer { |
| 731 public: | 731 public: |
| 732 MOCK_METHOD1(OnSyncCycleCompleted, | 732 MOCK_METHOD1(OnSyncCycleCompleted, |
| 733 void(const SyncSessionSnapshot&)); // NOLINT | 733 void(const SyncSessionSnapshot&)); // NOLINT |
| 734 MOCK_METHOD4(OnInitializationComplete, | 734 MOCK_METHOD4(OnInitializationComplete, |
| 735 void(const WeakHandle<JsBackend>&, | 735 void(const WeakHandle<JsBackend>&, |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 870 ModelTypeSet GetEnabledTypes() { | 870 ModelTypeSet GetEnabledTypes() { |
| 871 ModelSafeRoutingInfo routing_info; | 871 ModelSafeRoutingInfo routing_info; |
| 872 GetModelSafeRoutingInfo(&routing_info); | 872 GetModelSafeRoutingInfo(&routing_info); |
| 873 return GetRoutingInfoTypes(routing_info); | 873 return GetRoutingInfoTypes(routing_info); |
| 874 } | 874 } |
| 875 | 875 |
| 876 virtual void OnChangesApplied( | 876 virtual void OnChangesApplied( |
| 877 ModelType model_type, | 877 ModelType model_type, |
| 878 int64 model_version, | 878 int64 model_version, |
| 879 const BaseTransaction* trans, | 879 const BaseTransaction* trans, |
| 880 const ImmutableChangeRecordList& changes) OVERRIDE {} | 880 const ImmutableChangeRecordList& changes) override {} |
| 881 | 881 |
| 882 virtual void OnChangesComplete(ModelType model_type) OVERRIDE {} | 882 virtual void OnChangesComplete(ModelType model_type) override {} |
| 883 | 883 |
| 884 // Helper methods. | 884 // Helper methods. |
| 885 bool SetUpEncryption(NigoriStatus nigori_status, | 885 bool SetUpEncryption(NigoriStatus nigori_status, |
| 886 EncryptionStatus encryption_status) { | 886 EncryptionStatus encryption_status) { |
| 887 UserShare* share = sync_manager_.GetUserShare(); | 887 UserShare* share = sync_manager_.GetUserShare(); |
| 888 | 888 |
| 889 // We need to create the nigori node as if it were an applied server update. | 889 // We need to create the nigori node as if it were an applied server update. |
| 890 int64 nigori_id = GetIdForDataType(NIGORI); | 890 int64 nigori_id = GetIdForDataType(NIGORI); |
| 891 if (nigori_id == kInvalidId) | 891 if (nigori_id == kInvalidId) |
| 892 return false; | 892 return false; |
| (...skipping 1511 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2404 InternalComponentsFactory::StorageOption* storage_used) | 2404 InternalComponentsFactory::StorageOption* storage_used) |
| 2405 : TestInternalComponentsFactory( | 2405 : TestInternalComponentsFactory( |
| 2406 switches, InternalComponentsFactory::STORAGE_IN_MEMORY, storage_used), | 2406 switches, InternalComponentsFactory::STORAGE_IN_MEMORY, storage_used), |
| 2407 scheduler_to_use_(scheduler_to_use), | 2407 scheduler_to_use_(scheduler_to_use), |
| 2408 session_context_(session_context) {} | 2408 session_context_(session_context) {} |
| 2409 virtual ~ComponentsFactory() {} | 2409 virtual ~ComponentsFactory() {} |
| 2410 | 2410 |
| 2411 virtual scoped_ptr<SyncScheduler> BuildScheduler( | 2411 virtual scoped_ptr<SyncScheduler> BuildScheduler( |
| 2412 const std::string& name, | 2412 const std::string& name, |
| 2413 sessions::SyncSessionContext* context, | 2413 sessions::SyncSessionContext* context, |
| 2414 CancelationSignal* stop_handle) OVERRIDE { | 2414 CancelationSignal* stop_handle) override { |
| 2415 *session_context_ = context; | 2415 *session_context_ = context; |
| 2416 return scheduler_to_use_.Pass(); | 2416 return scheduler_to_use_.Pass(); |
| 2417 } | 2417 } |
| 2418 | 2418 |
| 2419 private: | 2419 private: |
| 2420 scoped_ptr<SyncScheduler> scheduler_to_use_; | 2420 scoped_ptr<SyncScheduler> scheduler_to_use_; |
| 2421 sessions::SyncSessionContext** session_context_; | 2421 sessions::SyncSessionContext** session_context_; |
| 2422 }; | 2422 }; |
| 2423 | 2423 |
| 2424 class SyncManagerTestWithMockScheduler : public SyncManagerTest { | 2424 class SyncManagerTestWithMockScheduler : public SyncManagerTest { |
| 2425 public: | 2425 public: |
| 2426 SyncManagerTestWithMockScheduler() : scheduler_(NULL) {} | 2426 SyncManagerTestWithMockScheduler() : scheduler_(NULL) {} |
| 2427 virtual InternalComponentsFactory* GetFactory() OVERRIDE { | 2427 virtual InternalComponentsFactory* GetFactory() override { |
| 2428 scheduler_ = new MockSyncScheduler(); | 2428 scheduler_ = new MockSyncScheduler(); |
| 2429 return new ComponentsFactory(GetSwitches(), scheduler_, &session_context_, | 2429 return new ComponentsFactory(GetSwitches(), scheduler_, &session_context_, |
| 2430 &storage_used_); | 2430 &storage_used_); |
| 2431 } | 2431 } |
| 2432 | 2432 |
| 2433 MockSyncScheduler* scheduler() { return scheduler_; } | 2433 MockSyncScheduler* scheduler() { return scheduler_; } |
| 2434 sessions::SyncSessionContext* session_context() { | 2434 sessions::SyncSessionContext* session_context() { |
| 2435 return session_context_; | 2435 return session_context_; |
| 2436 } | 2436 } |
| 2437 | 2437 |
| (...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2808 | 2808 |
| 2809 // A test harness to exercise the code that processes and passes changes from | 2809 // A test harness to exercise the code that processes and passes changes from |
| 2810 // the "SYNCER"-WriteTransaction destructor, through the SyncManager, to the | 2810 // the "SYNCER"-WriteTransaction destructor, through the SyncManager, to the |
| 2811 // ChangeProcessor. | 2811 // ChangeProcessor. |
| 2812 class SyncManagerChangeProcessingTest : public SyncManagerTest { | 2812 class SyncManagerChangeProcessingTest : public SyncManagerTest { |
| 2813 public: | 2813 public: |
| 2814 virtual void OnChangesApplied( | 2814 virtual void OnChangesApplied( |
| 2815 ModelType model_type, | 2815 ModelType model_type, |
| 2816 int64 model_version, | 2816 int64 model_version, |
| 2817 const BaseTransaction* trans, | 2817 const BaseTransaction* trans, |
| 2818 const ImmutableChangeRecordList& changes) OVERRIDE { | 2818 const ImmutableChangeRecordList& changes) override { |
| 2819 last_changes_ = changes; | 2819 last_changes_ = changes; |
| 2820 } | 2820 } |
| 2821 | 2821 |
| 2822 virtual void OnChangesComplete(ModelType model_type) OVERRIDE {} | 2822 virtual void OnChangesComplete(ModelType model_type) override {} |
| 2823 | 2823 |
| 2824 const ImmutableChangeRecordList& GetRecentChangeList() { | 2824 const ImmutableChangeRecordList& GetRecentChangeList() { |
| 2825 return last_changes_; | 2825 return last_changes_; |
| 2826 } | 2826 } |
| 2827 | 2827 |
| 2828 UserShare* share() { | 2828 UserShare* share() { |
| 2829 return sync_manager_.GetUserShare(); | 2829 return sync_manager_.GetUserShare(); |
| 2830 } | 2830 } |
| 2831 | 2831 |
| 2832 // Set some flags so our nodes reasonably approximate the real world scenario | 2832 // Set some flags so our nodes reasonably approximate the real world scenario |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3163 // During initialization SyncManagerImpl loads sqlite database. If it fails to | 3163 // During initialization SyncManagerImpl loads sqlite database. If it fails to |
| 3164 // do so it should fail initialization. This test verifies this behavior. | 3164 // do so it should fail initialization. This test verifies this behavior. |
| 3165 // Test reuses SyncManagerImpl initialization from SyncManagerTest but overrides | 3165 // Test reuses SyncManagerImpl initialization from SyncManagerTest but overrides |
| 3166 // InternalComponentsFactory to return DirectoryBackingStore that always fails | 3166 // InternalComponentsFactory to return DirectoryBackingStore that always fails |
| 3167 // to load. | 3167 // to load. |
| 3168 class SyncManagerInitInvalidStorageTest : public SyncManagerTest { | 3168 class SyncManagerInitInvalidStorageTest : public SyncManagerTest { |
| 3169 public: | 3169 public: |
| 3170 SyncManagerInitInvalidStorageTest() { | 3170 SyncManagerInitInvalidStorageTest() { |
| 3171 } | 3171 } |
| 3172 | 3172 |
| 3173 virtual InternalComponentsFactory* GetFactory() OVERRIDE { | 3173 virtual InternalComponentsFactory* GetFactory() override { |
| 3174 return new TestInternalComponentsFactory( | 3174 return new TestInternalComponentsFactory( |
| 3175 GetSwitches(), InternalComponentsFactory::STORAGE_INVALID, | 3175 GetSwitches(), InternalComponentsFactory::STORAGE_INVALID, |
| 3176 &storage_used_); | 3176 &storage_used_); |
| 3177 } | 3177 } |
| 3178 }; | 3178 }; |
| 3179 | 3179 |
| 3180 // SyncManagerInitInvalidStorageTest::GetFactory will return | 3180 // SyncManagerInitInvalidStorageTest::GetFactory will return |
| 3181 // DirectoryBackingStore that ensures that SyncManagerImpl::OpenDirectory fails. | 3181 // DirectoryBackingStore that ensures that SyncManagerImpl::OpenDirectory fails. |
| 3182 // SyncManagerImpl initialization is done in SyncManagerTest::SetUp. This test's | 3182 // SyncManagerImpl initialization is done in SyncManagerTest::SetUp. This test's |
| 3183 // task is to ensure that SyncManagerImpl reported initialization failure in | 3183 // task is to ensure that SyncManagerImpl reported initialization failure in |
| 3184 // OnInitializationComplete callback. | 3184 // OnInitializationComplete callback. |
| 3185 TEST_F(SyncManagerInitInvalidStorageTest, FailToOpenDatabase) { | 3185 TEST_F(SyncManagerInitInvalidStorageTest, FailToOpenDatabase) { |
| 3186 EXPECT_FALSE(initialization_succeeded_); | 3186 EXPECT_FALSE(initialization_succeeded_); |
| 3187 } | 3187 } |
| 3188 | 3188 |
| 3189 } // namespace syncer | 3189 } // namespace syncer |
| OLD | NEW |