| 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..b0ac8475729c16a55e7e5f434519db7a1512d4b6
|
| --- /dev/null
|
| +++ b/chrome/browser/local_discovery/wifi/bootstrapping_device_lister_unittest.cc
|
| @@ -0,0 +1,204 @@
|
| +// 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 "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.internal_id = "MyInternalID";
|
| + network.ssid = "MyDevice@camNprv";
|
| + network.connected = false;
|
| +
|
| + network_property_list.push_back(network);
|
| +
|
| + NetworkProperties network2;
|
| + network2.internal_id = "MyInternalID2";
|
| + network2.ssid = "SomeRandomNetwork";
|
| + network2.connected = false;
|
| +
|
| + 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.internal_id = "MyInternalID";
|
| + network.ssid = "MyDevice@camNprv";
|
| + network.connected = false;
|
| +
|
| + network_property_list.push_back(network);
|
| +
|
| + std::vector<NetworkProperties> network_property_list2;
|
| +
|
| + NetworkProperties network2;
|
| + network2.internal_id = "MyInternalID2";
|
| + network2.ssid = "MyDevice2@priFprv";
|
| + network2.connected = false;
|
| +
|
| + 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_.CallNetworkWatchers(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.internal_id = "MyInternalID";
|
| + network.ssid = "MyDevice@camprv";
|
| + network.connected = false;
|
| +
|
| + NetworkProperties network2;
|
| + network2.internal_id = "MyInternalID2";
|
| + network2.ssid = "MyDevice2@unkNprv";
|
| + network2.connected = false;
|
| +
|
| + NetworkProperties network3;
|
| + network3.internal_id = "MyInternalID3";
|
| + network3.ssid = "MyDevice3camNprv";
|
| + network3.connected = false;
|
| +
|
| + NetworkProperties network4;
|
| + network4.internal_id = "MyInternalID4";
|
| + network4.ssid = "MyDevice4@camNnpr";
|
| + network4.connected = false;
|
| +
|
| + NetworkProperties network5;
|
| + network5.internal_id = "MyInternalID5";
|
| + network5.ssid = "MyDevice5@With@At@Signs@camOprv";
|
| + network5.connected = false;
|
| +
|
| + 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
|
|
|