blob: 1011b7ed09d3affd27c15c9901e88892152bb72d [file] [log] [blame]
Alex Deymoaea4c1c2015-08-19 20:24:43 -07001//
2// Copyright (C) 2013 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//
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070016
Amin Hassaniec7bc112020-10-29 16:47:58 -070017#ifndef UPDATE_ENGINE_CROS_FAKE_P2P_MANAGER_H_
18#define UPDATE_ENGINE_CROS_FAKE_P2P_MANAGER_H_
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070019
Alex Vakulenkod2779df2014-06-16 13:19:00 -070020#include <string>
21
Amin Hassaniec7bc112020-10-29 16:47:58 -070022#include "update_engine/cros/p2p_manager.h"
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070023
24namespace chromeos_update_engine {
25
26// A fake implementation of P2PManager.
27class FakeP2PManager : public P2PManager {
Alex Vakulenkod2779df2014-06-16 13:19:00 -070028 public:
Amin Hassani7cc8bb02019-01-14 16:29:47 -080029 FakeP2PManager()
30 : is_p2p_enabled_(false),
31 ensure_p2p_running_result_(false),
32 ensure_p2p_not_running_result_(false),
33 perform_housekeeping_result_(false),
34 count_shared_files_result_(0) {}
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070035
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070036 // P2PManager overrides.
Alex Deymo610277e2014-11-11 21:18:11 -080037 void SetDevicePolicy(const policy::DevicePolicy* device_policy) override {}
David Zeuthen92d9c8b2013-09-11 10:58:11 -070038
Amin Hassani7cc8bb02019-01-14 16:29:47 -080039 bool IsP2PEnabled() override { return is_p2p_enabled_; }
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070040
Amin Hassani7cc8bb02019-01-14 16:29:47 -080041 bool EnsureP2PRunning() override { return ensure_p2p_running_result_; }
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070042
Amin Hassani7cc8bb02019-01-14 16:29:47 -080043 bool EnsureP2PNotRunning() override { return ensure_p2p_not_running_result_; }
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070044
Amin Hassani7cc8bb02019-01-14 16:29:47 -080045 bool PerformHousekeeping() override { return perform_housekeeping_result_; }
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070046
Alex Deymo610277e2014-11-11 21:18:11 -080047 void LookupUrlForFile(const std::string& file_id,
48 size_t minimum_size,
49 base::TimeDelta max_time_to_wait,
50 LookupCallback callback) override {
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070051 callback.Run(lookup_url_for_file_result_);
52 }
53
Amin Hassani7cc8bb02019-01-14 16:29:47 -080054 bool FileShare(const std::string& file_id, size_t expected_size) override {
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070055 return false;
56 }
57
Alex Deymo610277e2014-11-11 21:18:11 -080058 base::FilePath FileGetPath(const std::string& file_id) override {
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070059 return base::FilePath();
60 }
61
Amin Hassani7cc8bb02019-01-14 16:29:47 -080062 ssize_t FileGetSize(const std::string& file_id) override { return -1; }
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070063
Alex Deymo610277e2014-11-11 21:18:11 -080064 ssize_t FileGetExpectedSize(const std::string& file_id) override {
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070065 return -1;
66 }
67
Amin Hassani7cc8bb02019-01-14 16:29:47 -080068 bool FileGetVisible(const std::string& file_id, bool* out_result) override {
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070069 return false;
70 }
71
Amin Hassani7cc8bb02019-01-14 16:29:47 -080072 bool FileMakeVisible(const std::string& file_id) override { return false; }
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070073
Amin Hassani7cc8bb02019-01-14 16:29:47 -080074 int CountSharedFiles() override { return count_shared_files_result_; }
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070075
76 // Methods for controlling what the fake returns and how it acts.
Amin Hassani7cc8bb02019-01-14 16:29:47 -080077 void SetP2PEnabled(bool is_p2p_enabled) { is_p2p_enabled_ = is_p2p_enabled; }
David Zeuthen3ff6e6e2013-08-06 12:08:57 -070078
79 void SetEnsureP2PRunningResult(bool ensure_p2p_running_result) {
80 ensure_p2p_running_result_ = ensure_p2p_running_result;
81 }
82
83 void SetEnsureP2PNotRunningResult(bool ensure_p2p_not_running_result) {
84 ensure_p2p_not_running_result_ = ensure_p2p_not_running_result;
85 }
86
87 void SetPerformHousekeepingResult(bool perform_housekeeping_result) {
88 perform_housekeeping_result_ = perform_housekeeping_result;
89 }
90
91 void SetCountSharedFilesResult(int count_shared_files_result) {
92 count_shared_files_result_ = count_shared_files_result;
93 }
94
95 void SetLookupUrlForFileResult(const std::string& url) {
96 lookup_url_for_file_result_ = url;
97 }
98
Alex Vakulenkod2779df2014-06-16 13:19:00 -070099 private:
David Zeuthen3ff6e6e2013-08-06 12:08:57 -0700100 bool is_p2p_enabled_;
101 bool ensure_p2p_running_result_;
102 bool ensure_p2p_not_running_result_;
103 bool perform_housekeeping_result_;
104 int count_shared_files_result_;
105 std::string lookup_url_for_file_result_;
106
107 DISALLOW_COPY_AND_ASSIGN(FakeP2PManager);
108};
109
110} // namespace chromeos_update_engine
111
Amin Hassaniec7bc112020-10-29 16:47:58 -0700112#endif // UPDATE_ENGINE_CROS_FAKE_P2P_MANAGER_H_