1 // Copyright 2020 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 5 #ifndef CHROME_BROWSER_CHROMEOS_CERT_PROVISIONING_MOCK_CERT_PROVISIONING_WORKER_H_ 6 #define CHROME_BROWSER_CHROMEOS_CERT_PROVISIONING_MOCK_CERT_PROVISIONING_WORKER_H_ 7 8 #include "base/callback_forward.h" 9 #include "base/containers/queue.h" 10 #include "chrome/browser/chromeos/cert_provisioning/cert_provisioning_worker.h" 11 #include "chrome/browser/chromeos/cert_provisioning/mock_cert_provisioning_invalidator.h" 12 #include "testing/gmock/include/gmock/gmock.h" 13 14 using testing::_; 15 using testing::Return; 16 17 namespace chromeos { 18 namespace cert_provisioning { 19 20 // ================ MockCertProvisioningWorkerFactory ========================== 21 22 class MockCertProvisioningWorker; 23 24 class MockCertProvisioningWorkerFactory : public CertProvisioningWorkerFactory { 25 public: 26 MockCertProvisioningWorkerFactory(); 27 ~MockCertProvisioningWorkerFactory() override; 28 29 MOCK_METHOD(std::unique_ptr<CertProvisioningWorker>, 30 Create, 31 (CertScope cert_scope, 32 Profile* profile, 33 PrefService* pref_service, 34 const CertProfile& cert_profile, 35 policy::CloudPolicyClient* cloud_policy_client, 36 std::unique_ptr<CertProvisioningInvalidator> invalidator, 37 base::RepeatingClosure state_change_callback, 38 CertProvisioningWorkerCallback callback), 39 (override)); 40 41 MOCK_METHOD(std::unique_ptr<CertProvisioningWorker>, 42 Deserialize, 43 (CertScope cert_scope, 44 Profile* profile, 45 PrefService* pref_service, 46 const base::Value& saved_worker, 47 policy::CloudPolicyClient* cloud_policy_client, 48 std::unique_ptr<CertProvisioningInvalidator> invalidator, 49 base::RepeatingClosure state_change_callback, 50 CertProvisioningWorkerCallback callback), 51 (override)); 52 53 MockCertProvisioningWorker* ExpectCreateReturnMock( 54 CertScope cert_scope, 55 const CertProfile& cert_profile); 56 57 MockCertProvisioningWorker* ExpectDeserializeReturnMock( 58 CertScope cert_scope, 59 const base::Value& saved_worker); 60 }; 61 62 // ================ MockCertProvisioningWorker ================================= 63 64 class MockCertProvisioningWorker : public CertProvisioningWorker { 65 public: 66 MockCertProvisioningWorker(); 67 ~MockCertProvisioningWorker() override; 68 69 MOCK_METHOD(void, DoStep, (), (override)); 70 MOCK_METHOD(void, Stop, (CertProvisioningWorkerState), (override)); 71 MOCK_METHOD(void, Pause, (), (override)); 72 MOCK_METHOD(bool, IsWaiting, (), (const override)); 73 MOCK_METHOD(const CertProfile&, GetCertProfile, (), (const override)); 74 MOCK_METHOD(const std::string&, GetPublicKey, (), (const override)); 75 MOCK_METHOD(CertProvisioningWorkerState, GetState, (), (const override)); 76 MOCK_METHOD(CertProvisioningWorkerState, 77 GetPreviousState, 78 (), 79 (const override)); 80 MOCK_METHOD(base::Time, GetLastUpdateTime, (), (const override)); 81 82 void SetExpectations(testing::Cardinality do_step_times, 83 bool is_waiting, 84 const CertProfile& cert_profile); 85 86 // Stores |cert_profile| for SetExpectations function. It is returned by 87 // reference and without copying it there is a risk that the original 88 // CertProfile can be deleted before clearing the expectation. 89 CertProfile cert_profile_; 90 }; 91 92 } // namespace cert_provisioning 93 } // namespace chromeos 94 95 #endif // CHROME_BROWSER_CHROMEOS_CERT_PROVISIONING_MOCK_CERT_PROVISIONING_WORKER_H_ 96