blob: 1e2181243fe3deedfae82f8e75c2d54bd37dfac0 [file] [log] [blame]
Alex Deymoaea4c1c2015-08-19 20:24:43 -07001//
2// Copyright (C) 2014 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
Alex Deymo560ae1d2014-10-28 02:17:54 -070016
Amin Hassaniec7bc112020-10-29 16:47:58 -070017#ifndef UPDATE_ENGINE_CROS_MOCK_OMAHA_REQUEST_PARAMS_H_
18#define UPDATE_ENGINE_CROS_MOCK_OMAHA_REQUEST_PARAMS_H_
Alex Deymo560ae1d2014-10-28 02:17:54 -070019
20#include <string>
21
22#include <gmock/gmock.h>
23
Amin Hassaniec7bc112020-10-29 16:47:58 -070024#include "update_engine/cros/omaha_request_params.h"
Alex Deymo560ae1d2014-10-28 02:17:54 -070025
26namespace chromeos_update_engine {
27
28class MockOmahaRequestParams : public OmahaRequestParams {
29 public:
Amin Hassani538bd592020-11-04 20:46:08 -080030 MockOmahaRequestParams() : OmahaRequestParams() {
Alex Deymo560ae1d2014-10-28 02:17:54 -070031 // Delegate all calls to the parent instance by default. This helps the
32 // migration from tests using the real RequestParams when they should have
33 // use a fake or mock.
Alex Deymo560ae1d2014-10-28 02:17:54 -070034 ON_CALL(*this, GetAppId())
Amin Hassani7cc8bb02019-01-14 16:29:47 -080035 .WillByDefault(
36 testing::Invoke(this, &MockOmahaRequestParams::FakeGetAppId));
Alex Deymod942f9d2015-11-06 16:11:50 -080037 ON_CALL(*this, SetTargetChannel(testing::_, testing::_, testing::_))
Alex Deymo560ae1d2014-10-28 02:17:54 -070038 .WillByDefault(testing::Invoke(
39 this, &MockOmahaRequestParams::FakeSetTargetChannel));
40 ON_CALL(*this, UpdateDownloadChannel())
41 .WillByDefault(testing::Invoke(
42 this, &MockOmahaRequestParams::FakeUpdateDownloadChannel));
Sen Jiang8500d3a2018-02-08 12:04:05 -080043 ON_CALL(*this, ShouldPowerwash())
Alex Deymo560ae1d2014-10-28 02:17:54 -070044 .WillByDefault(testing::Invoke(
Sen Jiang8500d3a2018-02-08 12:04:05 -080045 this, &MockOmahaRequestParams::FakeShouldPowerwash));
Alex Deymo560ae1d2014-10-28 02:17:54 -070046 }
47
Alex Deymo560ae1d2014-10-28 02:17:54 -070048 MOCK_CONST_METHOD0(GetAppId, std::string(void));
Amin Hassani7cc8bb02019-01-14 16:29:47 -080049 MOCK_METHOD3(SetTargetChannel,
50 bool(const std::string& channel,
51 bool is_powerwash_allowed,
52 std::string* error));
Marton Hunyadya0302682018-05-16 18:52:13 +020053 MOCK_CONST_METHOD0(target_version_prefix, std::string(void));
Alex Deymo560ae1d2014-10-28 02:17:54 -070054 MOCK_METHOD0(UpdateDownloadChannel, void(void));
David Pursell02c18642014-11-06 11:26:11 -080055 MOCK_CONST_METHOD0(IsUpdateUrlOfficial, bool(void));
Sen Jiang8500d3a2018-02-08 12:04:05 -080056 MOCK_CONST_METHOD0(ShouldPowerwash, bool(void));
Alex Deymo560ae1d2014-10-28 02:17:54 -070057
58 private:
59 // Wrappers to call the parent class and behave like the real object by
60 // default. See "Delegating Calls to a Parent Class" in gmock's documentation.
Amin Hassani7cc8bb02019-01-14 16:29:47 -080061 std::string FakeGetAppId() const { return OmahaRequestParams::GetAppId(); }
Alex Deymo560ae1d2014-10-28 02:17:54 -070062
63 bool FakeSetTargetChannel(const std::string& channel,
Alex Deymod942f9d2015-11-06 16:11:50 -080064 bool is_powerwash_allowed,
65 std::string* error) {
Amin Hassani7cc8bb02019-01-14 16:29:47 -080066 return OmahaRequestParams::SetTargetChannel(
67 channel, is_powerwash_allowed, error);
Alex Deymo560ae1d2014-10-28 02:17:54 -070068 }
69
70 void FakeUpdateDownloadChannel() {
71 return OmahaRequestParams::UpdateDownloadChannel();
72 }
73
Sen Jiang8500d3a2018-02-08 12:04:05 -080074 bool FakeShouldPowerwash() const {
75 return OmahaRequestParams::ShouldPowerwash();
Alex Deymo560ae1d2014-10-28 02:17:54 -070076 }
77};
78
79} // namespace chromeos_update_engine
80
Amin Hassaniec7bc112020-10-29 16:47:58 -070081#endif // UPDATE_ENGINE_CROS_MOCK_OMAHA_REQUEST_PARAMS_H_