Index: chrome/browser/local_discovery/wifi/mock_wifi_manager.cc |
diff --git a/chrome/browser/local_discovery/wifi/mock_wifi_manager.cc b/chrome/browser/local_discovery/wifi/mock_wifi_manager.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d938b1896cd90ead820490da100f4d245def83cb |
--- /dev/null |
+++ b/chrome/browser/local_discovery/wifi/mock_wifi_manager.cc |
@@ -0,0 +1,125 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/local_discovery/wifi/mock_wifi_manager.h" |
+ |
+namespace local_discovery { |
+ |
+namespace wifi { |
+ |
+class MockWifiManager::MockNetworkWatcher : public NetworkListWatcher { |
+ public: |
+ MockNetworkWatcher(const WifiManager::SSIDListCallback& callback, |
+ base::WeakPtr<MockWifiManager> wifi_manager) |
+ : callback_(callback), wifi_manager_(wifi_manager), started_(false) {} |
+ |
+ virtual ~MockNetworkWatcher() { |
+ if (wifi_manager_ && started_) { |
+ wifi_manager_->RemoveWatcher(this); |
+ } |
+ } |
+ |
+ virtual void Start() OVERRIDE { |
+ wifi_manager_->AddWatcher(this); |
+ started_ = true; |
+ } |
+ |
+ void RunCallback(const std::vector<NetworkProperties>& ssids) { |
+ callback_.Run(ssids); |
+ } |
+ |
+ private: |
+ WifiManager::SSIDListCallback callback_; |
+ base::WeakPtr<MockWifiManager> wifi_manager_; |
+ bool started_; |
+}; |
+ |
+MockWifiManager::MockWifiManager() : weak_factory_(this) { |
+} |
+ |
+MockWifiManager::~MockWifiManager() { |
+} |
+ |
+void MockWifiManager::GetSSIDList(const SSIDListCallback& callback) { |
+ ssid_list_callback_ = callback; |
+ GetSSIDListInternal(); |
+} |
+ |
+void MockWifiManager::CallSSIDListCallback( |
+ const std::vector<NetworkProperties>& networks) { |
+ ssid_list_callback_.Run(networks); |
+} |
+ |
+void MockWifiManager::ConfigureAndConnectNetwork( |
+ const std::string& ssid, |
+ const WifiCredentials& credentials, |
+ const SuccessCallback& callback) { |
+ configure_and_connect_network_callback_ = callback; |
+ ConfigureAndConnectNetworkInternal(ssid, credentials.psk); |
+} |
+ |
+void MockWifiManager::CallConfigureAndConnectNetworkCallback(bool success) { |
+ configure_and_connect_network_callback_.Run(success); |
+} |
+ |
+void MockWifiManager::ConnectToNetworkByID(const std::string& internal_id, |
+ const SuccessCallback& callback) { |
+ connect_by_id_callback_ = callback; |
+ ConnectToNetworkByIDInternal(internal_id); |
+} |
+ |
+void MockWifiManager::CallConnectToNetworkByIDCallback(bool success) { |
+ connect_by_id_callback_.Run(success); |
+} |
+ |
+void MockWifiManager::RequestNetworkCredentials( |
+ const std::string& internal_id, |
+ const CredentialsCallback& callback) { |
+ credentials_callback_ = callback; |
+ RequestNetworkCredentialsInternal(internal_id); |
+} |
+ |
+void MockWifiManager::CallRequestNetworkCredentialsCallback( |
+ bool success, |
+ const std::string& ssid, |
+ const std::string& password) { |
+ credentials_callback_.Run(success, ssid, password); |
+} |
+ |
+scoped_ptr<NetworkListWatcher> MockWifiManager::CreateNetworkListWatcher( |
+ const SSIDListCallback& callback) { |
+ return scoped_ptr<NetworkListWatcher>( |
+ new MockNetworkWatcher(callback, weak_factory_.GetWeakPtr())); |
+} |
+ |
+void MockWifiManager::CallNetworkWatchers( |
+ const std::vector<NetworkProperties>& ssids) { |
+ FOR_EACH_OBSERVER(MockNetworkWatcher, network_observers_, RunCallback(ssids)); |
+} |
+ |
+void MockWifiManager::AddWatcher(MockNetworkWatcher* observer) { |
+ network_observers_.AddObserver(observer); |
+} |
+ |
+void MockWifiManager::RemoveWatcher(MockNetworkWatcher* observer) { |
+ network_observers_.RemoveObserver(observer); |
+} |
+ |
+MockWifiManagerFactory::MockWifiManagerFactory() { |
+ WifiManager::SetFactory(this); |
+} |
+ |
+MockWifiManagerFactory::~MockWifiManagerFactory() { |
+ WifiManager::SetFactory(NULL); |
+} |
+ |
+scoped_ptr<WifiManager> MockWifiManagerFactory::CreateWifiManager() { |
+ last_created_manager_ = new MockWifiManager(); |
+ |
+ return scoped_ptr<WifiManager>(last_created_manager_); |
+} |
+ |
+} // namespace wifi |
+ |
+} // namespace local_discovery |