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