OLD | NEW |
| (Empty) |
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 #include "base/bind.h" | |
6 #include "chrome/browser/local_discovery/wifi/bootstrapping_network_switcher.h" | |
7 #include "chrome/browser/local_discovery/wifi/mock_wifi_manager.h" | |
8 #include "components/onc/onc_constants.h" | |
9 #include "testing/gmock/include/gmock/gmock.h" | |
10 #include "testing/gtest/include/gtest/gtest.h" | |
11 | |
12 using testing::StrictMock; | |
13 | |
14 namespace local_discovery { | |
15 | |
16 namespace wifi { | |
17 | |
18 namespace { | |
19 | |
20 class MockableNetworkSwitchCallback { | |
21 public: | |
22 MOCK_METHOD1(OnNetworkSwitch, void(bool success)); | |
23 | |
24 BootstrappingNetworkSwitcher::SuccessCallback callback() { | |
25 return base::Bind(&MockableNetworkSwitchCallback::OnNetworkSwitch, | |
26 base::Unretained(this)); | |
27 } | |
28 }; | |
29 | |
30 class BootstrappingNetworkSwitcherTest : public ::testing::Test { | |
31 public: | |
32 BootstrappingNetworkSwitcherTest() { | |
33 NetworkProperties network1; | |
34 network1.guid = "SampleGUID1"; | |
35 network1.ssid = "SampleSSID1"; | |
36 network1.connection_state = onc::connection_state::kNotConnected; | |
37 | |
38 NetworkProperties network2; | |
39 network2.guid = "SampleGUID2"; | |
40 network2.ssid = "SampleSSID2"; | |
41 network2.connection_state = onc::connection_state::kConnected; | |
42 | |
43 network_properties_.push_back(network1); | |
44 network_properties_.push_back(network2); | |
45 } | |
46 | |
47 ~BootstrappingNetworkSwitcherTest() {} | |
48 | |
49 NetworkPropertiesList network_properties_; | |
50 StrictMock<MockableNetworkSwitchCallback> mockable_callback_; | |
51 StrictMock<MockWifiManager> mock_wifi_manager_; | |
52 scoped_ptr<BootstrappingNetworkSwitcher> network_switcher_; | |
53 }; | |
54 | |
55 TEST_F(BootstrappingNetworkSwitcherTest, EndToEndSuccess) { | |
56 network_switcher_.reset(new BootstrappingNetworkSwitcher( | |
57 &mock_wifi_manager_, "SampleConnectSSID", mockable_callback_.callback())); | |
58 | |
59 EXPECT_CALL(mock_wifi_manager_, GetSSIDListInternal()); | |
60 network_switcher_->Connect(); | |
61 | |
62 EXPECT_CALL(mock_wifi_manager_, | |
63 ConfigureAndConnectNetworkInternal("SampleConnectSSID", "")); | |
64 mock_wifi_manager_.CallSSIDListCallback(network_properties_); | |
65 | |
66 EXPECT_CALL(mockable_callback_, OnNetworkSwitch(true)); | |
67 mock_wifi_manager_.CallConfigureAndConnectNetworkCallback(true); | |
68 | |
69 EXPECT_CALL(mock_wifi_manager_, ConnectToNetworkByIDInternal("SampleGUID2")); | |
70 network_switcher_->Disconnect(); | |
71 } | |
72 | |
73 TEST_F(BootstrappingNetworkSwitcherTest, MidconnnectCancel) { | |
74 network_switcher_.reset(new BootstrappingNetworkSwitcher( | |
75 &mock_wifi_manager_, "SampleConnectSSID", mockable_callback_.callback())); | |
76 | |
77 EXPECT_CALL(mock_wifi_manager_, GetSSIDListInternal()); | |
78 network_switcher_->Connect(); | |
79 | |
80 EXPECT_CALL(mock_wifi_manager_, | |
81 ConfigureAndConnectNetworkInternal("SampleConnectSSID", "")); | |
82 mock_wifi_manager_.CallSSIDListCallback(network_properties_); | |
83 | |
84 EXPECT_CALL(mock_wifi_manager_, ConnectToNetworkByIDInternal("SampleGUID2")); | |
85 network_switcher_->Disconnect(); | |
86 } | |
87 | |
88 TEST_F(BootstrappingNetworkSwitcherTest, Failure) { | |
89 network_switcher_.reset(new BootstrappingNetworkSwitcher( | |
90 &mock_wifi_manager_, "SampleConnectSSID", mockable_callback_.callback())); | |
91 | |
92 EXPECT_CALL(mock_wifi_manager_, GetSSIDListInternal()); | |
93 network_switcher_->Connect(); | |
94 | |
95 EXPECT_CALL(mock_wifi_manager_, | |
96 ConfigureAndConnectNetworkInternal("SampleConnectSSID", "")); | |
97 mock_wifi_manager_.CallSSIDListCallback(network_properties_); | |
98 | |
99 EXPECT_CALL(mockable_callback_, OnNetworkSwitch(false)); | |
100 mock_wifi_manager_.CallConfigureAndConnectNetworkCallback(false); | |
101 | |
102 network_switcher_->Disconnect(); | |
103 } | |
104 | |
105 TEST_F(BootstrappingNetworkSwitcherTest, RAII) { | |
106 network_switcher_.reset(new BootstrappingNetworkSwitcher( | |
107 &mock_wifi_manager_, "SampleConnectSSID", mockable_callback_.callback())); | |
108 | |
109 EXPECT_CALL(mock_wifi_manager_, GetSSIDListInternal()); | |
110 network_switcher_->Connect(); | |
111 | |
112 EXPECT_CALL(mock_wifi_manager_, | |
113 ConfigureAndConnectNetworkInternal("SampleConnectSSID", "")); | |
114 mock_wifi_manager_.CallSSIDListCallback(network_properties_); | |
115 | |
116 EXPECT_CALL(mock_wifi_manager_, ConnectToNetworkByIDInternal("SampleGUID2")); | |
117 network_switcher_.reset(); | |
118 } | |
119 | |
120 } // namespace | |
121 | |
122 } // namespace wifi | |
123 | |
124 } // namespace local_discovery | |
OLD | NEW |