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

Side by Side Diff: chrome/browser/chromeos/login/screens/network_screen_browsertest.cc

Issue 22264004: Remove ConnectivityStateHelper (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove redundant IsConnected() check Created 7 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "chrome/browser/chromeos/login/helper.h"
6 #include "chrome/browser/chromeos/login/screens/mock_screen_observer.h" 7 #include "chrome/browser/chromeos/login/screens/mock_screen_observer.h"
7 #include "chrome/browser/chromeos/login/screens/network_screen.h" 8 #include "chrome/browser/chromeos/login/screens/network_screen.h"
8 #include "chrome/browser/chromeos/login/screens/wizard_screen.h" 9 #include "chrome/browser/chromeos/login/screens/wizard_screen.h"
9 #include "chrome/browser/chromeos/login/wizard_controller.h" 10 #include "chrome/browser/chromeos/login/wizard_controller.h"
10 #include "chrome/browser/chromeos/login/wizard_in_process_browser_test.h" 11 #include "chrome/browser/chromeos/login/wizard_in_process_browser_test.h"
11 #include "chrome/browser/chromeos/net/mock_connectivity_state_helper.h"
12 #include "chrome/test/base/ui_test_utils.h" 12 #include "chrome/test/base/ui_test_utils.h"
13 #include "chromeos/dbus/fake_session_manager_client.h" 13 #include "chromeos/dbus/fake_session_manager_client.h"
14 #include "chromeos/dbus/mock_dbus_thread_manager_without_gmock.h" 14 #include "chromeos/dbus/mock_dbus_thread_manager_without_gmock.h"
15 #include "content/public/test/test_utils.h" 15 #include "content/public/test/test_utils.h"
16 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
17 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
18 #include "third_party/cros_system_api/dbus/service_constants.h" 18 #include "third_party/cros_system_api/dbus/service_constants.h"
19 #include "ui/views/controls/button/button.h" 19 #include "ui/views/controls/button/button.h"
20 20
21 using ::testing::_; 21 using ::testing::_;
22 using ::testing::AnyNumber; 22 using ::testing::AnyNumber;
23 using ::testing::Return; 23 using ::testing::Return;
24 using ::testing::ReturnRef; 24 using ::testing::ReturnRef;
25 using views::Button; 25 using views::Button;
26 26
27 namespace chromeos { 27 namespace chromeos {
28 28
29 class DummyButtonListener : public views::ButtonListener { 29 class DummyButtonListener : public views::ButtonListener {
30 public: 30 public:
31 virtual void ButtonPressed(views::Button* sender, 31 virtual void ButtonPressed(views::Button* sender,
32 const ui::Event& event) OVERRIDE {} 32 const ui::Event& event) OVERRIDE {}
33 }; 33 };
34 34
35 namespace login {
36
37 class MockNetworkStateHelper : public NetworkStateHelper {
38 public:
39 MOCK_CONST_METHOD0(GetCurrentNetworkName, string16(void));
40 MOCK_CONST_METHOD0(IsConnected, bool(void));
41 MOCK_CONST_METHOD0(IsConnecting, bool(void));
42 };
43
44 } // namespace login
45
35 class NetworkScreenTest : public WizardInProcessBrowserTest { 46 class NetworkScreenTest : public WizardInProcessBrowserTest {
36 public: 47 public:
37 NetworkScreenTest(): WizardInProcessBrowserTest("network"), 48 NetworkScreenTest(): WizardInProcessBrowserTest("network"),
38 fake_session_manager_client_(NULL) { 49 fake_session_manager_client_(NULL) {
39 } 50 }
40 51
41 protected: 52 protected:
42 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { 53 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
43 WizardInProcessBrowserTest::SetUpInProcessBrowserTestFixture(); 54 WizardInProcessBrowserTest::SetUpInProcessBrowserTestFixture();
44 55
45 MockDBusThreadManagerWithoutGMock* mock_dbus_thread_manager = 56 MockDBusThreadManagerWithoutGMock* mock_dbus_thread_manager =
46 new MockDBusThreadManagerWithoutGMock; 57 new MockDBusThreadManagerWithoutGMock;
47 DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager); 58 DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager);
48 fake_session_manager_client_ = 59 fake_session_manager_client_ =
49 mock_dbus_thread_manager->fake_session_manager_client(); 60 mock_dbus_thread_manager->fake_session_manager_client();
50
51 mock_connectivity_state_helper_.reset(new MockConnectivityStateHelper);
52 ConnectivityStateHelper::SetForTest(mock_connectivity_state_helper_.get());
53 SetDefaultMockConnectivityStateHelperExpectations();
54
55 cellular_.reset(new NetworkDevice("cellular"));
56
57 // Minimal set of expectations needed on NetworkScreen initialization.
58 // Status bar expectations are defined with RetiresOnSaturation() so
59 EXPECT_CALL(*mock_connectivity_state_helper_,
60 IsConnectedType(flimflam::kTypeWifi))
61 .Times(1)
62 .WillRepeatedly(Return(false));
63 } 61 }
64 62
65 virtual void SetUpOnMainThread() OVERRIDE { 63 virtual void SetUpOnMainThread() OVERRIDE {
66 WizardInProcessBrowserTest::SetUpOnMainThread(); 64 WizardInProcessBrowserTest::SetUpOnMainThread();
67 mock_screen_observer_.reset(new MockScreenObserver()); 65 mock_screen_observer_.reset(new MockScreenObserver());
68 ASSERT_TRUE(WizardController::default_controller() != NULL); 66 ASSERT_TRUE(WizardController::default_controller() != NULL);
69 network_screen_ = 67 network_screen_ =
70 WizardController::default_controller()->GetNetworkScreen(); 68 WizardController::default_controller()->GetNetworkScreen();
71 ASSERT_TRUE(network_screen_ != NULL); 69 ASSERT_TRUE(network_screen_ != NULL);
72 ASSERT_EQ(WizardController::default_controller()->current_screen(), 70 ASSERT_EQ(WizardController::default_controller()->current_screen(),
73 network_screen_); 71 network_screen_);
74 network_screen_->screen_observer_ = mock_screen_observer_.get(); 72 network_screen_->screen_observer_ = mock_screen_observer_.get();
75 ASSERT_TRUE(network_screen_->actor() != NULL); 73 ASSERT_TRUE(network_screen_->actor() != NULL);
74
75 mock_network_state_helper_ = new login::MockNetworkStateHelper;
76 SetDefaultNetworkStateHelperExpectations();
77 network_screen_->SetNetworkStateHelperForTest(mock_network_state_helper_);
76 } 78 }
77 79
78 virtual void TearDownInProcessBrowserTestFixture() OVERRIDE { 80 virtual void TearDownInProcessBrowserTestFixture() OVERRIDE {
79 CrosInProcessBrowserTest::TearDownInProcessBrowserTestFixture(); 81 CrosInProcessBrowserTest::TearDownInProcessBrowserTestFixture();
80 DBusThreadManager::Shutdown(); 82 DBusThreadManager::Shutdown();
81 ConnectivityStateHelper::SetForTest(NULL);
82 } 83 }
83 84
84 void EmulateContinueButtonExit(NetworkScreen* network_screen) { 85 void EmulateContinueButtonExit(NetworkScreen* network_screen) {
85 EXPECT_CALL(*mock_screen_observer_, 86 EXPECT_CALL(*mock_screen_observer_,
86 OnExit(ScreenObserver::NETWORK_CONNECTED)) 87 OnExit(ScreenObserver::NETWORK_CONNECTED))
87 .Times(1); 88 .Times(1);
88 EXPECT_CALL(*mock_connectivity_state_helper_, IsConnected()) 89 EXPECT_CALL(*mock_network_state_helper_, IsConnected())
89 .WillOnce(Return(true)); 90 .WillOnce(Return(true));
90 network_screen->OnContinuePressed(); 91 network_screen->OnContinuePressed();
91 content::RunAllPendingInMessageLoop(); 92 content::RunAllPendingInMessageLoop();
92 } 93 }
93 94
94 void SetDefaultMockConnectivityStateHelperExpectations() { 95 void SetDefaultNetworkStateHelperExpectations() {
95 EXPECT_CALL(*mock_connectivity_state_helper_, AddNetworkManagerObserver(_)) 96 EXPECT_CALL(*mock_network_state_helper_, GetCurrentNetworkName())
96 .Times(AnyNumber());
97 EXPECT_CALL(*mock_connectivity_state_helper_,
98 RemoveNetworkManagerObserver(_))
99 .Times(AnyNumber());
100 EXPECT_CALL(*mock_connectivity_state_helper_, NetworkNameForType(_))
101 .Times(AnyNumber()) 97 .Times(AnyNumber())
102 .WillRepeatedly((Return(""))); 98 .WillRepeatedly((Return(string16())));
103 EXPECT_CALL(*mock_connectivity_state_helper_, IsConnected()) 99 EXPECT_CALL(*mock_network_state_helper_, IsConnected())
104 .Times(AnyNumber()) 100 .Times(AnyNumber())
105 .WillRepeatedly((Return(false))); 101 .WillRepeatedly((Return(false)));
106 EXPECT_CALL(*mock_connectivity_state_helper_, IsConnecting()) 102 EXPECT_CALL(*mock_network_state_helper_, IsConnecting())
107 .Times(AnyNumber())
108 .WillRepeatedly((Return(false)));
109 EXPECT_CALL(*mock_connectivity_state_helper_, IsConnectedType(_))
110 .Times(AnyNumber())
111 .WillRepeatedly((Return(false)));
112 EXPECT_CALL(*mock_connectivity_state_helper_, IsConnectingType(_))
113 .Times(AnyNumber()) 103 .Times(AnyNumber())
114 .WillRepeatedly((Return(false))); 104 .WillRepeatedly((Return(false)));
115 } 105 }
116 106
117 scoped_ptr<MockScreenObserver> mock_screen_observer_; 107 scoped_ptr<MockScreenObserver> mock_screen_observer_;
118 scoped_ptr<MockConnectivityStateHelper> mock_connectivity_state_helper_; 108 login::MockNetworkStateHelper* mock_network_state_helper_;
119 scoped_ptr<NetworkDevice> cellular_;
120 NetworkScreen* network_screen_; 109 NetworkScreen* network_screen_;
121 FakeSessionManagerClient* fake_session_manager_client_; 110 FakeSessionManagerClient* fake_session_manager_client_;
122 111
123 private: 112 private:
124 DISALLOW_COPY_AND_ASSIGN(NetworkScreenTest); 113 DISALLOW_COPY_AND_ASSIGN(NetworkScreenTest);
125 }; 114 };
126 115
127 IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Ethernet) { 116 IN_PROC_BROWSER_TEST_F(NetworkScreenTest, CanConnect) {
128 EXPECT_CALL(*mock_connectivity_state_helper_, 117 EXPECT_CALL(*mock_network_state_helper_, IsConnecting())
129 IsConnectedType(flimflam::kTypeEthernet))
130 .WillOnce((Return(false)));
131 EXPECT_CALL(*mock_connectivity_state_helper_,
132 IsConnectedType(flimflam::kTypeWifi))
133 .WillOnce((Return(false)));
134 EXPECT_CALL(*mock_connectivity_state_helper_,
135 IsConnectedType(flimflam::kTypeCellular))
136 .WillOnce((Return(false)));
137 EXPECT_CALL(*mock_connectivity_state_helper_,
138 IsConnectingType(flimflam::kTypeEthernet))
139 .WillOnce((Return(true))); 118 .WillOnce((Return(true)));
140 // EXPECT_FALSE(actor_->IsContinueEnabled()); 119 // EXPECT_FALSE(actor_->IsContinueEnabled());
141 network_screen_->NetworkManagerChanged(); 120 network_screen_->NetworkManagerChanged();
142 121
143 EXPECT_CALL(*mock_connectivity_state_helper_, 122 EXPECT_CALL(*mock_network_state_helper_, IsConnected())
144 IsConnectedType(flimflam::kTypeEthernet))
145 .WillOnce(Return(true));
146 EXPECT_CALL(*mock_connectivity_state_helper_, IsConnected())
147 .Times(2) 123 .Times(2)
148 .WillRepeatedly(Return(true)); 124 .WillRepeatedly(Return(true));
149 // TODO(nkostylev): Add integration with WebUI actor http://crosbug.com/22570 125 // TODO(nkostylev): Add integration with WebUI actor http://crosbug.com/22570
150 // EXPECT_FALSE(actor_->IsContinueEnabled());
151 // EXPECT_FALSE(actor_->IsConnecting());
152 network_screen_->NetworkManagerChanged();
153
154 // EXPECT_TRUE(actor_->IsContinueEnabled());
155 EmulateContinueButtonExit(network_screen_);
156 EXPECT_EQ(
157 1, fake_session_manager_client_->emit_login_prompt_ready_call_count());
158 }
159
160 IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Wifi) {
161 EXPECT_CALL(*mock_connectivity_state_helper_,
162 IsConnectedType(flimflam::kTypeEthernet))
163 .WillOnce((Return(false)));
164 EXPECT_CALL(*mock_connectivity_state_helper_,
165 IsConnectedType(flimflam::kTypeWifi))
166 .WillOnce((Return(false)));
167 EXPECT_CALL(*mock_connectivity_state_helper_,
168 IsConnectedType(flimflam::kTypeCellular))
169 .WillOnce((Return(false)));
170 EXPECT_CALL(*mock_connectivity_state_helper_,
171 IsConnectingType(flimflam::kTypeEthernet))
172 .WillOnce((Return(false)));
173 EXPECT_CALL(*mock_connectivity_state_helper_,
174 IsConnectingType(flimflam::kTypeWifi))
175 .WillOnce((Return(true)));
176 // EXPECT_FALSE(actor_->IsContinueEnabled());
177 network_screen_->NetworkManagerChanged();
178
179 EXPECT_CALL(*mock_connectivity_state_helper_,
180 IsConnectedType(flimflam::kTypeEthernet))
181 .WillOnce(Return(true));
182 EXPECT_CALL(*mock_connectivity_state_helper_, IsConnected())
183 .Times(2)
184 .WillRepeatedly(Return(true));
185 // TODO(nkostylev): Add integration with WebUI actor http://crosbug.com/22570
186 // EXPECT_FALSE(actor_->IsContinueEnabled());
187 // EXPECT_FALSE(actor_->IsConnecting());
188 network_screen_->NetworkManagerChanged();
189
190 // EXPECT_TRUE(actor_->IsContinueEnabled());
191 EmulateContinueButtonExit(network_screen_);
192 EXPECT_EQ(
193 1, fake_session_manager_client_->emit_login_prompt_ready_call_count());
194 }
195
196 IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Cellular) {
197 EXPECT_CALL(*mock_connectivity_state_helper_,
198 IsConnectedType(flimflam::kTypeEthernet))
199 .WillOnce((Return(false)));
200 EXPECT_CALL(*mock_connectivity_state_helper_,
201 IsConnectedType(flimflam::kTypeWifi))
202 .WillOnce((Return(false)));
203 EXPECT_CALL(*mock_connectivity_state_helper_,
204 IsConnectedType(flimflam::kTypeCellular))
205 .WillOnce((Return(false)));
206 EXPECT_CALL(*mock_connectivity_state_helper_,
207 IsConnectingType(flimflam::kTypeEthernet))
208 .WillOnce((Return(false)));
209 EXPECT_CALL(*mock_connectivity_state_helper_,
210 IsConnectingType(flimflam::kTypeWifi))
211 .WillOnce((Return(false)));
212 EXPECT_CALL(*mock_connectivity_state_helper_,
213 IsConnectingType(flimflam::kTypeCellular))
214 .WillOnce((Return(true)));
215 // EXPECT_FALSE(actor_->IsContinueEnabled());
216 network_screen_->NetworkManagerChanged();
217
218 EXPECT_CALL(*mock_connectivity_state_helper_,
219 IsConnectedType(flimflam::kTypeEthernet))
220 .WillOnce(Return(true));
221 EXPECT_CALL(*mock_connectivity_state_helper_, IsConnected())
222 .Times(2)
223 .WillRepeatedly(Return(true));
224 // TODO(nkostylev): Add integration with WebUI actor http://crosbug.com/22570
225 // EXPECT_FALSE(actor_->IsContinueEnabled()); 126 // EXPECT_FALSE(actor_->IsContinueEnabled());
226 // EXPECT_FALSE(actor_->IsConnecting()); 127 // EXPECT_FALSE(actor_->IsConnecting());
227 network_screen_->NetworkManagerChanged(); 128 network_screen_->NetworkManagerChanged();
228 129
229 // EXPECT_TRUE(actor_->IsContinueEnabled()); 130 // EXPECT_TRUE(actor_->IsContinueEnabled());
230 EmulateContinueButtonExit(network_screen_); 131 EmulateContinueButtonExit(network_screen_);
231 EXPECT_EQ( 132 EXPECT_EQ(
232 1, fake_session_manager_client_->emit_login_prompt_ready_call_count()); 133 1, fake_session_manager_client_->emit_login_prompt_ready_call_count());
233 } 134 }
234 135
235 IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Timeout) { 136 IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Timeout) {
236 EXPECT_CALL(*mock_connectivity_state_helper_, 137 EXPECT_CALL(*mock_network_state_helper_, IsConnecting())
237 IsConnectedType(flimflam::kTypeEthernet))
238 .WillOnce((Return(false)));
239 EXPECT_CALL(*mock_connectivity_state_helper_,
240 IsConnectedType(flimflam::kTypeWifi))
241 .WillOnce((Return(false)));
242 EXPECT_CALL(*mock_connectivity_state_helper_,
243 IsConnectedType(flimflam::kTypeCellular))
244 .WillOnce((Return(false)));
245 EXPECT_CALL(*mock_connectivity_state_helper_,
246 IsConnectingType(flimflam::kTypeEthernet))
247 .WillOnce((Return(false)));
248 EXPECT_CALL(*mock_connectivity_state_helper_,
249 IsConnectingType(flimflam::kTypeWifi))
250 .WillOnce((Return(true))); 138 .WillOnce((Return(true)));
251 // EXPECT_FALSE(actor_->IsContinueEnabled()); 139 // EXPECT_FALSE(actor_->IsContinueEnabled());
252 network_screen_->NetworkManagerChanged(); 140 network_screen_->NetworkManagerChanged();
253 141
254 EXPECT_CALL(*mock_connectivity_state_helper_, IsConnected()) 142 EXPECT_CALL(*mock_network_state_helper_, IsConnected())
255 .Times(2) 143 .Times(2)
256 .WillRepeatedly(Return(false)); 144 .WillRepeatedly(Return(false));
257 // TODO(nkostylev): Add integration with WebUI actor http://crosbug.com/22570 145 // TODO(nkostylev): Add integration with WebUI actor http://crosbug.com/22570
258 // EXPECT_FALSE(actor_->IsContinueEnabled()); 146 // EXPECT_FALSE(actor_->IsContinueEnabled());
259 // EXPECT_FALSE(actor_->IsConnecting()); 147 // EXPECT_FALSE(actor_->IsConnecting());
260 network_screen_->OnConnectionTimeout(); 148 network_screen_->OnConnectionTimeout();
261 149
262 // Close infobubble with error message - it makes the test stable. 150 // Close infobubble with error message - it makes the test stable.
263 // EXPECT_FALSE(actor_->IsContinueEnabled()); 151 // EXPECT_FALSE(actor_->IsContinueEnabled());
264 // EXPECT_FALSE(actor_->IsConnecting()); 152 // EXPECT_FALSE(actor_->IsConnecting());
265 // actor_->ClearErrors(); 153 // actor_->ClearErrors();
266 EXPECT_EQ( 154 EXPECT_EQ(
267 1, fake_session_manager_client_->emit_login_prompt_ready_call_count()); 155 1, fake_session_manager_client_->emit_login_prompt_ready_call_count());
268 } 156 }
269 157
270 } // namespace chromeos 158 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/screens/network_screen.cc ('k') | chrome/browser/chromeos/login/webui_screen_locker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698