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 COMPONENTS_WIFI_FAKE_WIFI_SERVICE_H_
6 #define COMPONENTS_WIFI_FAKE_WIFI_SERVICE_H_
7 
8 #include <string>
9 
10 #include "base/compiler_specific.h"
11 #include "base/macros.h"
12 #include "base/single_thread_task_runner.h"
13 #include "components/wifi/network_properties.h"
14 #include "components/wifi/wifi_service.h"
15 
16 namespace wifi {
17 
18 // Fake implementation of WiFiService used to satisfy expectations of
19 // networkingPrivateApi browser test.
20 class FakeWiFiService : public WiFiService {
21  public:
22   FakeWiFiService();
23   ~FakeWiFiService() override;
24 
25   void Initialize(
26       scoped_refptr<base::SequencedTaskRunner> task_runner) override;
27   void UnInitialize() override;
28   void GetProperties(const std::string& network_guid,
29                      base::DictionaryValue* properties,
30                      std::string* error) override;
31   void GetManagedProperties(const std::string& network_guid,
32                             base::DictionaryValue* managed_properties,
33                             std::string* error) override;
34   void GetState(const std::string& network_guid,
35                 base::DictionaryValue* properties,
36                 std::string* error) override;
37   void SetProperties(const std::string& network_guid,
38                      std::unique_ptr<base::DictionaryValue> properties,
39                      std::string* error) override;
40   void CreateNetwork(bool shared,
41                      std::unique_ptr<base::DictionaryValue> properties,
42                      std::string* network_guid,
43                      std::string* error) override;
44   void GetVisibleNetworks(const std::string& network_type,
45                           base::ListValue* network_list,
46                           bool include_details) override;
47   void RequestNetworkScan() override;
48   void StartConnect(const std::string& network_guid,
49                     std::string* error) override;
50   void StartDisconnect(const std::string& network_guid,
51                        std::string* error) override;
52   void GetKeyFromSystem(const std::string& network_guid,
53                         std::string* key_data,
54                         std::string* error) override;
55   void SetEventObservers(
56       scoped_refptr<base::SingleThreadTaskRunner> task_runner,
57       NetworkGuidListCallback networks_changed_observer,
58       NetworkGuidListCallback network_list_changed_observer) override;
59   void RequestConnectedNetworkUpdate() override;
60   void GetConnectedNetworkSSID(std::string* ssid,
61                                std::string* error) override;
62 
63  private:
64   NetworkList::iterator FindNetwork(const std::string& network_guid);
65 
66   void DisconnectAllNetworksOfType(const std::string& type);
67 
68   void SortNetworks();
69 
70   void NotifyNetworkListChanged(const NetworkList& networks);
71 
72   void NotifyNetworkChanged(const std::string& network_guid);
73 
74   NetworkList networks_;
75   scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
76   NetworkGuidListCallback networks_changed_observer_;
77   NetworkGuidListCallback network_list_changed_observer_;
78 
79   DISALLOW_COPY_AND_ASSIGN(FakeWiFiService);
80 };
81 
82 }  // namespace wifi
83 
84 #endif  // COMPONENTS_WIFI_FAKE_WIFI_SERVICE_H_
85