1c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 2c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Copyright (C) 2012 The Android Open Source Project 3c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 4c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Licensed under the Apache License, Version 2.0 (the "License"); 5c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// you may not use this file except in compliance with the License. 6c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// You may obtain a copy of the License at 7c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 8c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// http://www.apache.org/licenses/LICENSE-2.0 9c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 10c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Unless required by applicable law or agreed to in writing, software 11c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// distributed under the License is distributed on an "AS IS" BASIS, 12c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// See the License for the specific language governing permissions and 14c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// limitations under the License. 15c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 16626719f89881a949d8b5a8fa808beb924496489fChris Masone 1760a3706bee5686ae2322a774b9e7d5e8e63fcaf7Wade Guthrie#ifndef SHILL_MOCK_MANAGER_H_ 1860a3706bee5686ae2322a774b9e7d5e8e63fcaf7Wade Guthrie#define SHILL_MOCK_MANAGER_H_ 19626719f89881a949d8b5a8fa808beb924496489fChris Masone 208a5322984f2d81bcbfd8d44c59747a11bd9b904bAlex Vakulenko#include <string> 211ce231c71932200e4d02c71567f8e93788120781Paul Stewart#include <vector> 228a5322984f2d81bcbfd8d44c59747a11bd9b904bAlex Vakulenko 23cc67c52a2c00f90e877971d552208dd99825d84eBen Chan#include <base/macros.h> 24626719f89881a949d8b5a8fa808beb924496489fChris Masone#include <gmock/gmock.h> 25626719f89881a949d8b5a8fa808beb924496489fChris Masone 26626719f89881a949d8b5a8fa808beb924496489fChris Masone#include "shill/manager.h" 27626719f89881a949d8b5a8fa808beb924496489fChris Masone 28626719f89881a949d8b5a8fa808beb924496489fChris Masonenamespace shill { 29626719f89881a949d8b5a8fa808beb924496489fChris Masone 30626719f89881a949d8b5a8fa808beb924496489fChris Masoneclass MockManager : public Manager { 31626719f89881a949d8b5a8fa808beb924496489fChris Masone public: 321e006c610db980bca337121134d2ba54497b7a59Paul Stewart MockManager(ControlInterface* control_interface, 331e006c610db980bca337121134d2ba54497b7a59Paul Stewart EventDispatcher* dispatcher, 34bad1c10ffd2d4ac14f7bd9f4ef6a8982e711f566mukesh agrawal Metrics* metrics); 355ea763b83299b5fad76a87183fb39a74c2d3c61dBen Chan ~MockManager() override; 36626719f89881a949d8b5a8fa808beb924496489fChris Masone 371e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD0(device_info, DeviceInfo*()); 381e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD0(modem_info, ModemInfo*()); 391a72f5444e077ed21b8e085b17d7f9f1bc44fa5ePeter Qiu#if !defined(DISABLE_WIRED_8021X) 401e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_CONST_METHOD0(ethernet_eap_provider, EthernetEapProvider*()); 411a72f5444e077ed21b8e085b17d7f9f1bc44fa5ePeter Qiu#endif // DISABLE_WIRED_8021X 421e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD0(wimax_provider, WiMaxProvider*()); 431e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD0(mutable_store, PropertyStore*()); 441e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_CONST_METHOD0(store, const PropertyStore&()); 451e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_CONST_METHOD0(run_path, const base::FilePath&()); 46fb46caf4f23a41e73dfd87547121b5fb0230295aThieu Le MOCK_METHOD0(Start, void()); 476c1e3bbca64d642cb30ed9952203626942bc1451Thieu Le MOCK_METHOD0(Stop, void()); 481e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD3(SetProfileForService, void(const ServiceRefPtr& to_set, 491e006c610db980bca337121134d2ba54497b7a59Paul Stewart const std::string& profile, 501e006c610db980bca337121134d2ba54497b7a59Paul Stewart Error* error)); 511e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD1(RegisterDevice, void(const DeviceRefPtr& to_manage)); 521e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD1(DeregisterDevice, void(const DeviceRefPtr& to_forget)); 531e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD1(HasService, bool(const ServiceRefPtr& to_manage)); 541e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD1(RegisterService, void(const ServiceRefPtr& to_manage)); 551e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD1(UpdateService, void(const ServiceRefPtr& to_update)); 561e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD1(DeregisterService, void(const ServiceRefPtr& to_forget)); 57a5e07ef0402aad0635a5e7a0932740b9dfbf46d1Darin Petkov MOCK_METHOD1(RegisterDefaultServiceCallback, 581e006c610db980bca337121134d2ba54497b7a59Paul Stewart int(const ServiceCallback& callback)); 59a5e07ef0402aad0635a5e7a0932740b9dfbf46d1Darin Petkov MOCK_METHOD1(DeregisterDefaultServiceCallback, void(int tag)); 601e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD1(UpdateDevice, void(const DeviceRefPtr& to_update)); 6160a3706bee5686ae2322a774b9e7d5e8e63fcaf7Wade Guthrie MOCK_METHOD0(UpdateWiFiProvider, void()); 627de7e02e14074989757a4f9f220de2310cc05236Paul Stewart MOCK_METHOD1(OnDeviceGeolocationInfoUpdated, 631e006c610db980bca337121134d2ba54497b7a59Paul Stewart void(const DeviceRefPtr& device)); 641e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD1(RecheckPortalOnService, void(const ServiceRefPtr& service)); 657522551440b9a287bccf2d95a42357d04ab79814Paul Stewart MOCK_METHOD2(HandleProfileEntryDeletion, 661e006c610db980bca337121134d2ba54497b7a59Paul Stewart bool(const ProfileRefPtr& profile, 671e006c610db980bca337121134d2ba54497b7a59Paul Stewart const std::string& entry_name)); 68e2bad7c1edd7dbe837619e5350bd70814e6913bePaul Stewart MOCK_CONST_METHOD0(GetDefaultService, ServiceRefPtr()); 6918213652e2ce4c6e4354951e5b665097b7a7aa6bPeter Qiu MOCK_METHOD3(GetServiceWithStorageIdentifier, 701e006c610db980bca337121134d2ba54497b7a59Paul Stewart ServiceRefPtr(const ProfileRefPtr& profile, 711e006c610db980bca337121134d2ba54497b7a59Paul Stewart const std::string& entry_name, 721e006c610db980bca337121134d2ba54497b7a59Paul Stewart Error* error)); 7318213652e2ce4c6e4354951e5b665097b7a7aa6bPeter Qiu MOCK_METHOD3(CreateTemporaryServiceFromProfile, 741e006c610db980bca337121134d2ba54497b7a59Paul Stewart ServiceRefPtr(const ProfileRefPtr& profile, 751e006c610db980bca337121134d2ba54497b7a59Paul Stewart const std::string& entry_name, 761e006c610db980bca337121134d2ba54497b7a59Paul Stewart Error* error)); 77700de6400c18f8cba77821f8cd2a1935b96999a6Peter Qiu MOCK_CONST_METHOD0(IsConnected, bool()); 789a24553461df7036755060423f90804011612249Eric Shienbrood MOCK_METHOD0(UpdateEnabledTechnologies, void()); 7920088d860631a67c151a12783fbbee63c708792fPaul Stewart MOCK_METHOD1(IsPortalDetectionEnabled, bool(Technology::Identifier tech)); 8010ccbb3c6bc4f4246105743c8508fc9ce8759c17Paul Stewart MOCK_CONST_METHOD1(IsServiceEphemeral, 811e006c610db980bca337121134d2ba54497b7a59Paul Stewart bool(const ServiceConstRefPtr& service)); 8222ce765226cfdcf267b7dc80c22892e6b29065eaPaul Stewart MOCK_CONST_METHOD2(IsProfileBefore, 831e006c610db980bca337121134d2ba54497b7a59Paul Stewart bool(const ProfileRefPtr& a, 841e006c610db980bca337121134d2ba54497b7a59Paul Stewart const ProfileRefPtr& b)); 853c5040174273386868cc8dea8044d22c465885d8Paul Stewart MOCK_CONST_METHOD1(IsTechnologyConnected, 863c5040174273386868cc8dea8044d22c465885d8Paul Stewart bool(Technology::Identifier tech)); 87036dba0c6641acdbe02d52260c6fa6dca84b1af2Paul Stewart MOCK_CONST_METHOD1(IsTechnologyLinkMonitorEnabled, 88036dba0c6641acdbe02d52260c6fa6dca84b1af2Paul Stewart bool(Technology::Identifier tech)); 898e6b8ef22e185310480c13aa3a6e89184cce62d1Ben Chan MOCK_CONST_METHOD1(IsTechnologyAutoConnectDisabled, 908e6b8ef22e185310480c13aa3a6e89184cce62d1Ben Chan bool(Technology::Identifier tech)); 911e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_CONST_METHOD1(IsDefaultProfile, bool(const StoreInterface* storage)); 9268d4109ff0176f7e5a9b67b916478d638aac577aWade Guthrie MOCK_METHOD3(RequestScan, void(Device::ScanType request_origin, 931e006c610db980bca337121134d2ba54497b7a59Paul Stewart const std::string& technology, Error* error)); 941e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_CONST_METHOD0(GetPortalCheckURL, const std::string&()); 95c681fa0742cabc686ccabaf0fdf6ce12dd7046b2Paul Stewart MOCK_CONST_METHOD0(GetPortalCheckInterval, int()); 962d36a6e266deb96db1d3cf4b18dcc9d863795f28Samuel Tan MOCK_METHOD0(IsSuspending, bool()); 97a900f4a4b94d852e2a52a59f59ede4261d48ad80Peter Qiu MOCK_CONST_METHOD1(GetEnabledDeviceWithTechnology, 98208a97ed32c62bc11b0a20eaf01833482e8c0fbcPaul Stewart DeviceRefPtr(Technology::Identifier technology)); 99a900f4a4b94d852e2a52a59f59ede4261d48ad80Peter Qiu MOCK_CONST_METHOD1(GetEnabledDeviceByLinkName, 1001e006c610db980bca337121134d2ba54497b7a59Paul Stewart DeviceRefPtr(const std::string& link_name)); 101782cdcea789d76a7ad7802cf9410b14a2399c0a9Garret Kelly MOCK_CONST_METHOD0(GetMinimumMTU, int()); 102208a97ed32c62bc11b0a20eaf01833482e8c0fbcPaul Stewart MOCK_CONST_METHOD1(ShouldAcceptHostnameFrom, 1031e006c610db980bca337121134d2ba54497b7a59Paul Stewart bool(const std::string& device_name)); 104d48fa0c5531e2102d4f537e81b9f92afc2d60955Peter Qiu MOCK_CONST_METHOD1(IsDHCPv6EnabledForDevice, 1051e006c610db980bca337121134d2ba54497b7a59Paul Stewart bool(const std::string& device_name)); 10691b7150819b785f36c2c094ae4aa102336bd6f71Peter Qiu MOCK_METHOD1(SetBlacklistedDevices, 10791b7150819b785f36c2c094ae4aa102336bd6f71Peter Qiu void(const std::vector<std::string>& blacklisted_devices)); 1081ce231c71932200e4d02c71567f8e93788120781Paul Stewart MOCK_METHOD1(SetDHCPv6EnabledDevices, 1091e006c610db980bca337121134d2ba54497b7a59Paul Stewart void(const std::vector<std::string>& device_list)); 1101ce231c71932200e4d02c71567f8e93788120781Paul Stewart MOCK_METHOD2(SetTechnologyOrder, 1111e006c610db980bca337121134d2ba54497b7a59Paul Stewart void(const std::string& order, Error* error)); 1121ce231c71932200e4d02c71567f8e93788120781Paul Stewart MOCK_METHOD1(SetIgnoreUnknownEthernet, void(bool ignore)); 1131e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD1(SetStartupPortalList, void(const std::string& portal_list)); 1141ce231c71932200e4d02c71567f8e93788120781Paul Stewart MOCK_METHOD0(SetPassiveMode, void()); 1151ce231c71932200e4d02c71567f8e93788120781Paul Stewart MOCK_METHOD1(SetPrependDNSServers, 1161e006c610db980bca337121134d2ba54497b7a59Paul Stewart void(const std::string& prepend_dns_servers)); 1171ce231c71932200e4d02c71567f8e93788120781Paul Stewart MOCK_METHOD1(SetMinimumMTU, void(const int mtu)); 1181e006c610db980bca337121134d2ba54497b7a59Paul Stewart MOCK_METHOD1(SetAcceptHostnameFrom, void(const std::string& hostname_from)); 1191ce231c71932200e4d02c71567f8e93788120781Paul Stewart MOCK_CONST_METHOD0(ignore_unknown_ethernet, bool()); 1201ce231c71932200e4d02c71567f8e93788120781Paul Stewart MOCK_CONST_METHOD1(FilterPrependDNSServersByFamily, 1211ce231c71932200e4d02c71567f8e93788120781Paul Stewart std::vector<std::string>(IPAddress::Family family)); 1229b6f8b8cdeb0c9e925fad635cc52a467c82741d0Peter Qiu MOCK_METHOD0(OnInnerDevicesChanged, void()); 1238a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan MOCK_METHOD3(ClaimDevice, 1248a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan void(const std::string& claimer_name, 1258a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan const std::string& interface_name, Error* error)); 1268a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan MOCK_METHOD4(ReleaseDevice, void(const std::string& claimer_name, 1278a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan const std::string& interface_name, 1288a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan bool* claimer_removed, Error* error)); 1298a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan MOCK_METHOD0(OnDeviceClaimerVanished, void()); 130e569b214bad42ec2be75ac1db2ca9b15563fdc61Samuel Tan#if !defined(DISABLE_WIFI) && defined(__BRILLO__) 1318a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan MOCK_METHOD2(SetupApModeInterface, 1328a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan bool(std::string* out_interface_name, Error* error)); 1338a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan MOCK_METHOD2(SetupStationModeInterface, 1348a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan bool(std::string* out_interface_name, Error* error)); 1358a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan MOCK_METHOD0(OnApModeSetterVanished, void()); 136e569b214bad42ec2be75ac1db2ca9b15563fdc61Samuel Tan#endif // !DISABLE_WIFI && __BRILLO__ 137626719f89881a949d8b5a8fa808beb924496489fChris Masone 138d4f26486b237fae831d4b682481de785fc99c66ePaul Stewart // Getter and setter for a mocked device info instance. 1391e006c610db980bca337121134d2ba54497b7a59Paul Stewart DeviceInfo* mock_device_info() { return mock_device_info_; } 1401e006c610db980bca337121134d2ba54497b7a59Paul Stewart void set_mock_device_info(DeviceInfo* mock_device_info) { 141d4f26486b237fae831d4b682481de785fc99c66ePaul Stewart mock_device_info_ = mock_device_info; 142d4f26486b237fae831d4b682481de785fc99c66ePaul Stewart } 143d4f26486b237fae831d4b682481de785fc99c66ePaul Stewart 144626719f89881a949d8b5a8fa808beb924496489fChris Masone private: 1451e006c610db980bca337121134d2ba54497b7a59Paul Stewart DeviceInfo* mock_device_info_; 146d4f26486b237fae831d4b682481de785fc99c66ePaul Stewart 147626719f89881a949d8b5a8fa808beb924496489fChris Masone DISALLOW_COPY_AND_ASSIGN(MockManager); 148626719f89881a949d8b5a8fa808beb924496489fChris Masone}; 149626719f89881a949d8b5a8fa808beb924496489fChris Masone 150626719f89881a949d8b5a8fa808beb924496489fChris Masone} // namespace shill 151626719f89881a949d8b5a8fa808beb924496489fChris Masone 15260a3706bee5686ae2322a774b9e7d5e8e63fcaf7Wade Guthrie#endif // SHILL_MOCK_MANAGER_H_ 153