1 // 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 // 16 17 #ifndef UPDATE_ENGINE_FAKE_P2P_MANAGER_H_ 18 #define UPDATE_ENGINE_FAKE_P2P_MANAGER_H_ 19 20 #include <string> 21 22 #include "update_engine/p2p_manager.h" 23 24 namespace chromeos_update_engine { 25 26 // A fake implementation of P2PManager. 27 class FakeP2PManager : public P2PManager { 28 public: FakeP2PManager()29 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) {} 35 36 // P2PManager overrides. SetDevicePolicy(const policy::DevicePolicy * device_policy)37 void SetDevicePolicy(const policy::DevicePolicy* device_policy) override {} 38 IsP2PEnabled()39 bool IsP2PEnabled() override { return is_p2p_enabled_; } 40 EnsureP2PRunning()41 bool EnsureP2PRunning() override { return ensure_p2p_running_result_; } 42 EnsureP2PNotRunning()43 bool EnsureP2PNotRunning() override { return ensure_p2p_not_running_result_; } 44 PerformHousekeeping()45 bool PerformHousekeeping() override { return perform_housekeeping_result_; } 46 LookupUrlForFile(const std::string & file_id,size_t minimum_size,base::TimeDelta max_time_to_wait,LookupCallback callback)47 void LookupUrlForFile(const std::string& file_id, 48 size_t minimum_size, 49 base::TimeDelta max_time_to_wait, 50 LookupCallback callback) override { 51 callback.Run(lookup_url_for_file_result_); 52 } 53 FileShare(const std::string & file_id,size_t expected_size)54 bool FileShare(const std::string& file_id, size_t expected_size) override { 55 return false; 56 } 57 FileGetPath(const std::string & file_id)58 base::FilePath FileGetPath(const std::string& file_id) override { 59 return base::FilePath(); 60 } 61 FileGetSize(const std::string & file_id)62 ssize_t FileGetSize(const std::string& file_id) override { return -1; } 63 FileGetExpectedSize(const std::string & file_id)64 ssize_t FileGetExpectedSize(const std::string& file_id) override { 65 return -1; 66 } 67 FileGetVisible(const std::string & file_id,bool * out_result)68 bool FileGetVisible(const std::string& file_id, bool* out_result) override { 69 return false; 70 } 71 FileMakeVisible(const std::string & file_id)72 bool FileMakeVisible(const std::string& file_id) override { return false; } 73 CountSharedFiles()74 int CountSharedFiles() override { return count_shared_files_result_; } 75 76 // Methods for controlling what the fake returns and how it acts. SetP2PEnabled(bool is_p2p_enabled)77 void SetP2PEnabled(bool is_p2p_enabled) { is_p2p_enabled_ = is_p2p_enabled; } 78 SetEnsureP2PRunningResult(bool ensure_p2p_running_result)79 void SetEnsureP2PRunningResult(bool ensure_p2p_running_result) { 80 ensure_p2p_running_result_ = ensure_p2p_running_result; 81 } 82 SetEnsureP2PNotRunningResult(bool ensure_p2p_not_running_result)83 void SetEnsureP2PNotRunningResult(bool ensure_p2p_not_running_result) { 84 ensure_p2p_not_running_result_ = ensure_p2p_not_running_result; 85 } 86 SetPerformHousekeepingResult(bool perform_housekeeping_result)87 void SetPerformHousekeepingResult(bool perform_housekeeping_result) { 88 perform_housekeeping_result_ = perform_housekeeping_result; 89 } 90 SetCountSharedFilesResult(int count_shared_files_result)91 void SetCountSharedFilesResult(int count_shared_files_result) { 92 count_shared_files_result_ = count_shared_files_result; 93 } 94 SetLookupUrlForFileResult(const std::string & url)95 void SetLookupUrlForFileResult(const std::string& url) { 96 lookup_url_for_file_result_ = url; 97 } 98 99 private: 100 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 112 #endif // UPDATE_ENGINE_FAKE_P2P_MANAGER_H_ 113