Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4576)

Unified Diff: chrome/browser/local_discovery/wifi/bootstrapping_device_lister_unittest.cc

Issue 288043004: Bootstrapping device lister plus tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@wifi_lib1
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/local_discovery/wifi/bootstrapping_device_lister_unittest.cc
diff --git a/chrome/browser/local_discovery/wifi/bootstrapping_device_lister_unittest.cc b/chrome/browser/local_discovery/wifi/bootstrapping_device_lister_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..1a02b92f6890d882cc638747bf25d70afb33a0f2
--- /dev/null
+++ b/chrome/browser/local_discovery/wifi/bootstrapping_device_lister_unittest.cc
@@ -0,0 +1,205 @@
+// 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 "base/bind.h"
+#include "chrome/browser/local_discovery/wifi/bootstrapping_device_lister.h"
+#include "chrome/browser/local_discovery/wifi/mock_wifi_manager.h"
+#include "components/onc/onc_constants.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+using testing::StrictMock;
+using testing::Mock;
+
+namespace local_discovery {
+
+namespace wifi {
+
+namespace {
+
+class MockableUpdateCallback {
+ public:
+ void UpdateCallback(bool available,
+ const BootstrappingDeviceDescription& description) {
+ UpdateCallbackInternal(available,
+ description.device_network_id,
+ description.device_ssid,
+ description.device_name,
+ description.device_kind,
+ description.connection_status);
+ }
+
+ MOCK_METHOD6(UpdateCallbackInternal,
+ void(bool available,
+ const std::string& network_id,
+ const std::string& ssid,
+ const std::string& name,
+ const std::string& kind,
+ BootstrappingDeviceDescription::ConnectionStatus status));
+
+ BootstrappingDeviceLister::UpdateCallback callback() {
+ return base::Bind(&MockableUpdateCallback::UpdateCallback,
+ base::Unretained(this));
+ }
+};
+
+class BootstrappingDeviceListerTest : public ::testing::Test {
+ public:
+ BootstrappingDeviceListerTest()
+ : lister_(&mock_wifi_manager_, mockable_callback_.callback()) {}
+
+ ~BootstrappingDeviceListerTest() {}
+
+ StrictMock<MockableUpdateCallback> mockable_callback_;
+ StrictMock<MockWifiManager> mock_wifi_manager_;
+ BootstrappingDeviceLister lister_;
+};
+
+TEST_F(BootstrappingDeviceListerTest, ListSingleDevice) {
+ EXPECT_CALL(mock_wifi_manager_, GetSSIDListInternal());
+ lister_.Start();
+ Mock::VerifyAndClearExpectations(&mock_wifi_manager_);
+
+ std::vector<NetworkProperties> network_property_list;
+
+ NetworkProperties network;
+ network.guid = "MyInternalID";
+ network.ssid = "MyDevice@camNprv";
+ network.connection_state = onc::connection_state::kNotConnected;
+
+ network_property_list.push_back(network);
+
+ NetworkProperties network2;
+ network2.guid = "MyInternalID2";
+ network2.ssid = "SomeRandomNetwork";
+ network2.connection_state = onc::connection_state::kNotConnected;
+
+ network_property_list.push_back(network2);
+
+ EXPECT_CALL(
+ mockable_callback_,
+ UpdateCallbackInternal(true,
+ "MyInternalID",
+ "MyDevice@camNprv",
+ "MyDevice",
+ "camera",
+ BootstrappingDeviceDescription::NOT_CONFIGURED));
+ mock_wifi_manager_.CallSSIDListCallback(network_property_list);
+}
+
+TEST_F(BootstrappingDeviceListerTest, AddRemoveDevice) {
+ EXPECT_CALL(mock_wifi_manager_, GetSSIDListInternal());
+ lister_.Start();
+ Mock::VerifyAndClearExpectations(&mock_wifi_manager_);
+
+ std::vector<NetworkProperties> network_property_list;
+
+ NetworkProperties network;
+ network.guid = "MyInternalID";
+ network.ssid = "MyDevice@camNprv";
+ network.connection_state = onc::connection_state::kNotConnected;
+
+ network_property_list.push_back(network);
+
+ std::vector<NetworkProperties> network_property_list2;
+
+ NetworkProperties network2;
+ network2.guid = "MyInternalID2";
+ network2.ssid = "MyDevice2@priFprv";
+ network2.connection_state = onc::connection_state::kNotConnected;
+
+ network_property_list2.push_back(network2);
+
+ EXPECT_CALL(
+ mockable_callback_,
+ UpdateCallbackInternal(true,
+ "MyInternalID",
+ "MyDevice@camNprv",
+ "MyDevice",
+ "camera",
+ BootstrappingDeviceDescription::NOT_CONFIGURED));
+ mock_wifi_manager_.CallSSIDListCallback(network_property_list);
+
+ Mock::VerifyAndClearExpectations(&mock_wifi_manager_);
+
+ EXPECT_CALL(
+ mockable_callback_,
+ UpdateCallbackInternal(false,
+ "MyInternalID",
+ "MyDevice@camNprv",
+ "MyDevice",
+ "camera",
+ BootstrappingDeviceDescription::NOT_CONFIGURED));
+ EXPECT_CALL(mockable_callback_,
+ UpdateCallbackInternal(true,
+ "MyInternalID2",
+ "MyDevice2@priFprv",
+ "MyDevice2",
+ "printer",
+ BootstrappingDeviceDescription::OFFLINE));
+ mock_wifi_manager_.CallNetworkListObservers(network_property_list2);
+}
+
+TEST_F(BootstrappingDeviceListerTest, EdgeCases) {
+ EXPECT_CALL(mock_wifi_manager_, GetSSIDListInternal());
+ lister_.Start();
+ Mock::VerifyAndClearExpectations(&mock_wifi_manager_);
+
+ std::vector<NetworkProperties> network_property_list;
+
+ NetworkProperties network;
+ network.guid = "MyInternalID";
+ network.ssid = "MyDevice@camprv";
+ network.connection_state = onc::connection_state::kNotConnected;
+
+ NetworkProperties network2;
+ network2.guid = "MyInternalID2";
+ network2.ssid = "MyDevice2@unkNprv";
+ network2.connection_state = onc::connection_state::kNotConnected;
+
+ NetworkProperties network3;
+ network3.guid = "MyInternalID3";
+ network3.ssid = "MyDevice3camNprv";
+ network3.connection_state = onc::connection_state::kNotConnected;
+
+ NetworkProperties network4;
+ network4.guid = "MyInternalID4";
+ network4.ssid = "MyDevice4@camNnpr";
+ network4.connection_state = onc::connection_state::kNotConnected;
+
+ NetworkProperties network5;
+ network5.guid = "MyInternalID5";
+ network5.ssid = "MyDevice5@With@At@Signs@camOprv";
+ network5.connection_state = onc::connection_state::kNotConnected;
+
+ network_property_list.push_back(network);
+ network_property_list.push_back(network2);
+ network_property_list.push_back(network3);
+ network_property_list.push_back(network4);
+ network_property_list.push_back(network5);
+
+ EXPECT_CALL(
+ mockable_callback_,
+ UpdateCallbackInternal(true,
+ "MyInternalID2",
+ "MyDevice2@unkNprv",
+ "MyDevice2",
+ "device",
+ BootstrappingDeviceDescription::NOT_CONFIGURED));
+
+ EXPECT_CALL(mockable_callback_,
+ UpdateCallbackInternal(true,
+ "MyInternalID5",
+ "MyDevice5@With@At@Signs@camOprv",
+ "MyDevice5@With@At@Signs",
+ "camera",
+ BootstrappingDeviceDescription::ONLINE));
+ mock_wifi_manager_.CallSSIDListCallback(network_property_list);
+}
+
+} // namespace
+
+} // namespace wifi
+
+} // namespace local_discovery

Powered by Google App Engine
This is Rietveld 408576698