1 // Copyright 2014 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 CHROMEOS_DBUS_SHILL_FAKE_SHILL_THIRD_PARTY_VPN_DRIVER_CLIENT_H_
6 #define CHROMEOS_DBUS_SHILL_FAKE_SHILL_THIRD_PARTY_VPN_DRIVER_CLIENT_H_
7
8 #include <stdint.h>
9
10 #include <map>
11 #include <string>
12 #include <vector>
13
14 #include "base/component_export.h"
15 #include "base/macros.h"
16 #include "chromeos/dbus/shill/shill_third_party_vpn_driver_client.h"
17
18 namespace chromeos {
19
20 // A fake implementation of ShillThirdPartyVpnDriverClient.
21 // The client can generate fake DBus signals when
22 // ShillThirdPartyVpnDriverClient::TestInterface methods are called. The
23 // DBus methods are nops that only acknowledge the caller.
COMPONENT_EXPORT(SHILL_CLIENT)24 class COMPONENT_EXPORT(SHILL_CLIENT) FakeShillThirdPartyVpnDriverClient
25 : public ShillThirdPartyVpnDriverClient,
26 public ShillThirdPartyVpnDriverClient::TestInterface {
27 public:
28 FakeShillThirdPartyVpnDriverClient();
29 ~FakeShillThirdPartyVpnDriverClient() override;
30
31 // ShillThirdPartyVpnDriverClient overrides
32 void AddShillThirdPartyVpnObserver(
33 const std::string& object_path_value,
34 ShillThirdPartyVpnObserver* observer) override;
35 void RemoveShillThirdPartyVpnObserver(
36 const std::string& object_path_value) override;
37 void SetParameters(const std::string& object_path_value,
38 const base::Value& parameters,
39 StringCallback callback,
40 ErrorCallback error_callback) override;
41 void UpdateConnectionState(const std::string& object_path_value,
42 const uint32_t connection_state,
43 base::OnceClosure callback,
44 ErrorCallback error_callback) override;
45 void SendPacket(const std::string& object_path_value,
46 const std::vector<char>& ip_packet,
47 base::OnceClosure callback,
48 ErrorCallback error_callback) override;
49 ShillThirdPartyVpnDriverClient::TestInterface* GetTestInterface() override;
50
51 // ShillThirdPartyVpnDriverClient::TestInterface overrides
52 void OnPacketReceived(const std::string& object_path_value,
53 const std::vector<char>& packet) override;
54 void OnPlatformMessage(const std::string& object_path_value,
55 uint32_t message) override;
56
57 private:
58 using ObserverMap = std::map<std::string, ShillThirdPartyVpnObserver*>;
59
60 ObserverMap observer_map_;
61
62 DISALLOW_COPY_AND_ASSIGN(FakeShillThirdPartyVpnDriverClient);
63 };
64
65 } // namespace chromeos
66
67 #endif // CHROMEOS_DBUS_SHILL_FAKE_SHILL_THIRD_PARTY_VPN_DRIVER_CLIENT_H_
68