test_sync_service.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. // Copyright 2018 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef COMPONENTS_SYNC_DRIVER_TEST_SYNC_SERVICE_H_
  5. #define COMPONENTS_SYNC_DRIVER_TEST_SYNC_SERVICE_H_
  6. #include <memory>
  7. #include <string>
  8. #include <vector>
  9. #include "base/observer_list.h"
  10. #include "components/signin/public/identity_manager/account_info.h"
  11. #include "components/sync/driver/sync_service.h"
  12. #include "components/sync/driver/test_sync_user_settings.h"
  13. #include "components/sync/engine/cycle/sync_cycle_snapshot.h"
  14. #include "components/sync/engine/sync_status.h"
  15. #include "google_apis/gaia/google_service_auth_error.h"
  16. #include "url/gurl.h"
  17. namespace syncer {
  18. // A simple test implementation of SyncService that allows direct control over
  19. // the returned state. By default, everything returns "enabled"/"active".
  20. class TestSyncService : public SyncService {
  21. public:
  22. TestSyncService();
  23. TestSyncService(const TestSyncService&) = delete;
  24. TestSyncService& operator=(const TestSyncService&) = delete;
  25. ~TestSyncService() override;
  26. void SetDisableReasons(DisableReasonSet disable_reasons);
  27. void SetTransportState(TransportState transport_state);
  28. void SetLocalSyncEnabled(bool local_sync_enabled);
  29. void SetAccountInfo(const CoreAccountInfo& account_info);
  30. void SetHasSyncConsent(bool has_consent);
  31. void SetSetupInProgress(bool in_progress);
  32. void SetAuthError(const GoogleServiceAuthError& auth_error);
  33. void SetFirstSetupComplete(bool first_setup_complete);
  34. void SetPreferredDataTypes(const ModelTypeSet& types);
  35. void SetActiveDataTypes(const ModelTypeSet& types);
  36. void SetLastCycleSnapshot(const SyncCycleSnapshot& snapshot);
  37. // Convenience versions of the above, for when the caller doesn't care about
  38. // the particular values in the snapshot, just whether there is one.
  39. void SetEmptyLastCycleSnapshot();
  40. void SetNonEmptyLastCycleSnapshot();
  41. void SetDetailedSyncStatus(bool engine_available, SyncStatus status);
  42. void SetPassphraseRequired(bool required);
  43. void SetPassphraseRequiredForPreferredDataTypes(bool required);
  44. void SetTrustedVaultKeyRequired(bool required);
  45. void SetTrustedVaultKeyRequiredForPreferredDataTypes(bool required);
  46. void SetTrustedVaultRecoverabilityDegraded(bool degraded);
  47. void SetIsUsingExplicitPassphrase(bool enabled);
  48. void FireStateChanged();
  49. void FireSyncCycleCompleted();
  50. // SyncService implementation.
  51. syncer::SyncUserSettings* GetUserSettings() override;
  52. const syncer::SyncUserSettings* GetUserSettings() const override;
  53. DisableReasonSet GetDisableReasons() const override;
  54. TransportState GetTransportState() const override;
  55. bool IsLocalSyncEnabled() const override;
  56. CoreAccountInfo GetAccountInfo() const override;
  57. bool HasSyncConsent() const override;
  58. GoogleServiceAuthError GetAuthError() const override;
  59. base::Time GetAuthErrorTime() const override;
  60. bool RequiresClientUpgrade() const override;
  61. std::unique_ptr<SyncSetupInProgressHandle> GetSetupInProgressHandle()
  62. override;
  63. bool IsSetupInProgress() const override;
  64. ModelTypeSet GetPreferredDataTypes() const override;
  65. ModelTypeSet GetActiveDataTypes() const override;
  66. void StopAndClear() override;
  67. void OnDataTypeRequestsSyncStartup(ModelType type) override;
  68. void TriggerRefresh(const ModelTypeSet& types) override;
  69. void DataTypePreconditionChanged(syncer::ModelType type) override;
  70. void AddObserver(SyncServiceObserver* observer) override;
  71. void RemoveObserver(SyncServiceObserver* observer) override;
  72. bool HasObserver(const SyncServiceObserver* observer) const override;
  73. SyncTokenStatus GetSyncTokenStatusForDebugging() const override;
  74. bool QueryDetailedSyncStatusForDebugging(SyncStatus* result) const override;
  75. base::Time GetLastSyncedTimeForDebugging() const override;
  76. SyncCycleSnapshot GetLastCycleSnapshotForDebugging() const override;
  77. std::unique_ptr<base::Value> GetTypeStatusMapForDebugging() const override;
  78. void GetEntityCountsForDebugging(
  79. base::OnceCallback<void(const std::vector<TypeEntitiesCount>&)> callback)
  80. const override;
  81. const GURL& GetSyncServiceUrlForDebugging() const override;
  82. std::string GetUnrecoverableErrorMessageForDebugging() const override;
  83. base::Location GetUnrecoverableErrorLocationForDebugging() const override;
  84. void AddProtocolEventObserver(ProtocolEventObserver* observer) override;
  85. void RemoveProtocolEventObserver(ProtocolEventObserver* observer) override;
  86. void GetAllNodesForDebugging(
  87. base::OnceCallback<void(base::Value::List)> callback) override;
  88. void SetInvalidationsForSessionsEnabled(bool enabled) override;
  89. void AddTrustedVaultDecryptionKeysFromWeb(
  90. const std::string& gaia_id,
  91. const std::vector<std::vector<uint8_t>>& keys,
  92. int last_key_version) override;
  93. void AddTrustedVaultRecoveryMethodFromWeb(
  94. const std::string& gaia_id,
  95. const std::vector<uint8_t>& public_key,
  96. int method_type_hint,
  97. base::OnceClosure callback) override;
  98. // KeyedService implementation.
  99. void Shutdown() override;
  100. private:
  101. TestSyncUserSettings user_settings_;
  102. DisableReasonSet disable_reasons_;
  103. TransportState transport_state_ = TransportState::ACTIVE;
  104. bool local_sync_enabled_ = false;
  105. CoreAccountInfo account_info_;
  106. bool has_sync_consent_ = true;
  107. bool setup_in_progress_ = false;
  108. GoogleServiceAuthError auth_error_;
  109. ModelTypeSet preferred_data_types_;
  110. ModelTypeSet active_data_types_;
  111. bool detailed_sync_status_engine_available_ = false;
  112. SyncStatus detailed_sync_status_;
  113. SyncCycleSnapshot last_cycle_snapshot_;
  114. base::ObserverList<syncer::SyncServiceObserver>::Unchecked observers_;
  115. GURL sync_service_url_;
  116. };
  117. } // namespace syncer
  118. #endif // COMPONENTS_SYNC_DRIVER_TEST_SYNC_SERVICE_H_