146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file. 446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "base/bind.h" 646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "chrome/browser/local_discovery/wifi/bootstrapping_device_lister.h" 746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "chrome/browser/local_discovery/wifi/mock_wifi_manager.h" 846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "components/onc/onc_constants.h" 946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "testing/gmock/include/gmock/gmock.h" 1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)using testing::StrictMock; 1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)using testing::Mock; 1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace local_discovery { 1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace wifi { 1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace { 2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class MockableUpdateCallback { 2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) public: 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void UpdateCallback(bool available, 2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const BootstrappingDeviceDescription& description) { 2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UpdateCallbackInternal(available, 2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) description.device_network_id, 2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) description.device_ssid, 2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) description.device_name, 2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) description.device_kind, 3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) description.connection_status); 3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) MOCK_METHOD6(UpdateCallbackInternal, 3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void(bool available, 3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const std::string& network_id, 3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const std::string& ssid, 3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const std::string& name, 3846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const std::string& kind, 3946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BootstrappingDeviceDescription::ConnectionStatus status)); 4046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BootstrappingDeviceLister::UpdateCallback callback() { 4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return base::Bind(&MockableUpdateCallback::UpdateCallback, 4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) base::Unretained(this)); 4446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 4546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}; 4646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 4746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class BootstrappingDeviceListerTest : public ::testing::Test { 4846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) public: 4946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BootstrappingDeviceListerTest() 5046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) : lister_(&mock_wifi_manager_, mockable_callback_.callback()) {} 5146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 5246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ~BootstrappingDeviceListerTest() {} 5346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 5446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) StrictMock<MockableUpdateCallback> mockable_callback_; 5546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) StrictMock<MockWifiManager> mock_wifi_manager_; 5646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BootstrappingDeviceLister lister_; 5746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}; 5846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 5946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)TEST_F(BootstrappingDeviceListerTest, ListSingleDevice) { 6046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_CALL(mock_wifi_manager_, GetSSIDListInternal()); 6146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) lister_.Start(); 6246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) Mock::VerifyAndClearExpectations(&mock_wifi_manager_); 6346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 6446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::vector<NetworkProperties> network_property_list; 6546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 6646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NetworkProperties network; 6746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network.guid = "MyInternalID"; 6846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network.ssid = "MyDevice@camNprv"; 6946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network.connection_state = onc::connection_state::kNotConnected; 7046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 7146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network_property_list.push_back(network); 7246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 7346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NetworkProperties network2; 7446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network2.guid = "MyInternalID2"; 7546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network2.ssid = "SomeRandomNetwork"; 7646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network2.connection_state = onc::connection_state::kNotConnected; 7746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 7846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network_property_list.push_back(network2); 7946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 8046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_CALL( 8146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) mockable_callback_, 8246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UpdateCallbackInternal(true, 8346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyInternalID", 8446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyDevice@camNprv", 8546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyDevice", 8646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "camera", 8746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BootstrappingDeviceDescription::NOT_CONFIGURED)); 8846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) mock_wifi_manager_.CallSSIDListCallback(network_property_list); 8946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 9046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 9146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)TEST_F(BootstrappingDeviceListerTest, AddRemoveDevice) { 9246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_CALL(mock_wifi_manager_, GetSSIDListInternal()); 9346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) lister_.Start(); 9446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) Mock::VerifyAndClearExpectations(&mock_wifi_manager_); 9546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 9646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::vector<NetworkProperties> network_property_list; 9746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 9846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NetworkProperties network; 9946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network.guid = "MyInternalID"; 10046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network.ssid = "MyDevice@camNprv"; 10146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network.connection_state = onc::connection_state::kNotConnected; 10246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 10346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network_property_list.push_back(network); 10446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 10546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::vector<NetworkProperties> network_property_list2; 10646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 10746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NetworkProperties network2; 10846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network2.guid = "MyInternalID2"; 10946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network2.ssid = "MyDevice2@priFprv"; 11046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network2.connection_state = onc::connection_state::kNotConnected; 11146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 11246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network_property_list2.push_back(network2); 11346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 11446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_CALL( 11546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) mockable_callback_, 11646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UpdateCallbackInternal(true, 11746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyInternalID", 11846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyDevice@camNprv", 11946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyDevice", 12046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "camera", 12146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BootstrappingDeviceDescription::NOT_CONFIGURED)); 12246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) mock_wifi_manager_.CallSSIDListCallback(network_property_list); 12346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 12446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) Mock::VerifyAndClearExpectations(&mock_wifi_manager_); 12546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 12646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_CALL( 12746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) mockable_callback_, 12846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UpdateCallbackInternal(false, 12946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyInternalID", 13046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyDevice@camNprv", 13146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyDevice", 13246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "camera", 13346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BootstrappingDeviceDescription::NOT_CONFIGURED)); 13446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_CALL(mockable_callback_, 13546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UpdateCallbackInternal(true, 13646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyInternalID2", 13746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyDevice2@priFprv", 13846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyDevice2", 13946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "printer", 14046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BootstrappingDeviceDescription::OFFLINE)); 14146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) mock_wifi_manager_.CallNetworkListObservers(network_property_list2); 14246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 14346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 14446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)TEST_F(BootstrappingDeviceListerTest, EdgeCases) { 14546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_CALL(mock_wifi_manager_, GetSSIDListInternal()); 14646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) lister_.Start(); 14746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) Mock::VerifyAndClearExpectations(&mock_wifi_manager_); 14846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 14946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::vector<NetworkProperties> network_property_list; 15046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 15146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NetworkProperties network; 15246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network.guid = "MyInternalID"; 15346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network.ssid = "MyDevice@camprv"; 15446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network.connection_state = onc::connection_state::kNotConnected; 15546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 15646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NetworkProperties network2; 15746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network2.guid = "MyInternalID2"; 15846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network2.ssid = "MyDevice2@unkNprv"; 15946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network2.connection_state = onc::connection_state::kNotConnected; 16046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 16146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NetworkProperties network3; 16246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network3.guid = "MyInternalID3"; 16346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network3.ssid = "MyDevice3camNprv"; 16446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network3.connection_state = onc::connection_state::kNotConnected; 16546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 16646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NetworkProperties network4; 16746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network4.guid = "MyInternalID4"; 16846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network4.ssid = "MyDevice4@camNnpr"; 16946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network4.connection_state = onc::connection_state::kNotConnected; 17046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 17146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NetworkProperties network5; 17246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network5.guid = "MyInternalID5"; 17346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network5.ssid = "MyDevice5@With@At@Signs@camOprv"; 17446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network5.connection_state = onc::connection_state::kNotConnected; 17546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 17646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network_property_list.push_back(network); 17746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network_property_list.push_back(network2); 17846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network_property_list.push_back(network3); 17946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network_property_list.push_back(network4); 18046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) network_property_list.push_back(network5); 18146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 18246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_CALL( 18346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) mockable_callback_, 18446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UpdateCallbackInternal(true, 18546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyInternalID2", 18646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyDevice2@unkNprv", 18746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyDevice2", 18846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "device", 18946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BootstrappingDeviceDescription::NOT_CONFIGURED)); 19046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 19146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_CALL(mockable_callback_, 19246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UpdateCallbackInternal(true, 19346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyInternalID5", 19446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyDevice5@With@At@Signs@camOprv", 19546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "MyDevice5@With@At@Signs", 19646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "camera", 19746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BootstrappingDeviceDescription::ONLINE)); 19846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) mock_wifi_manager_.CallSSIDListCallback(network_property_list); 19946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 20046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 20146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace 20246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 20346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace wifi 20446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 20546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace local_discovery 206