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

Side by Side Diff: chrome/browser/web_resource/resource_request_allowed_notifier_unittest.cc

Issue 16841020: ResourceRequestAllowedNotifier didn't work as expected (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: (rebase) Created 7 years, 6 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
« no previous file with comments | « chrome/browser/web_resource/resource_request_allowed_notifier_test_util.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/prefs/testing_pref_service.h" 5 #include "base/prefs/testing_pref_service.h"
6 #include "chrome/browser/web_resource/eula_accepted_notifier.h" 6 #include "chrome/browser/web_resource/eula_accepted_notifier.h"
7 #include "chrome/browser/web_resource/resource_request_allowed_notifier_test_uti l.h" 7 #include "chrome/browser/web_resource/resource_request_allowed_notifier_test_uti l.h"
8 #include "chrome/common/chrome_notification_types.h" 8 #include "chrome/common/chrome_notification_types.h"
9 #include "chrome/test/base/testing_browser_process.h" 9 #include "chrome/test/base/testing_browser_process.h"
10 #include "content/public/browser/notification_service.h" 10 #include "content/public/browser/notification_service.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 // Network manipulation methods: 96 // Network manipulation methods:
97 void SetWaitingForNetwork(bool waiting) { 97 void SetWaitingForNetwork(bool waiting) {
98 resource_request_allowed_notifier_.SetWaitingForNetworkForTesting(waiting); 98 resource_request_allowed_notifier_.SetWaitingForNetworkForTesting(waiting);
99 } 99 }
100 100
101 void SimulateNetworkConnectionChange( 101 void SimulateNetworkConnectionChange(
102 net::NetworkChangeNotifier::ConnectionType type) { 102 net::NetworkChangeNotifier::ConnectionType type) {
103 network_notifier.SimulateNetworkConnectionChange(type); 103 network_notifier.SimulateNetworkConnectionChange(type);
104 } 104 }
105 105
106 // Simulate a resource request from the test service. 106 // Simulate a resource request from the test service. It returns true if
107 void SimulateResourceRequest() { 107 // resource request is allowed. Otherwise returns false and will change the
108 resource_request_allowed_notifier_.ResourceRequestsAllowed(); 108 // result of was_notified() to true when the request is allowed.
109 bool SimulateResourceRequest() {
110 return resource_request_allowed_notifier_.ResourceRequestsAllowed();
109 } 111 }
110 112
111 void SimulateEulaAccepted() { 113 void SimulateEulaAccepted() {
112 eula_notifier_->SimulateEulaAccepted(); 114 eula_notifier_->SimulateEulaAccepted();
113 } 115 }
114 116
115 // Eula manipulation methods: 117 // Eula manipulation methods:
116 void SetNeedsEulaAcceptance(bool needs_acceptance) { 118 void SetNeedsEulaAcceptance(bool needs_acceptance) {
117 eula_notifier_->SetEulaAcceptedForTesting(!needs_acceptance); 119 eula_notifier_->SetEulaAcceptedForTesting(!needs_acceptance);
118 } 120 }
(...skipping 26 matching lines...) Expand all
145 content::TestBrowserThread ui_thread; 147 content::TestBrowserThread ui_thread;
146 TestNetworkChangeNotifier network_notifier; 148 TestNetworkChangeNotifier network_notifier;
147 TestRequestAllowedNotifier resource_request_allowed_notifier_; 149 TestRequestAllowedNotifier resource_request_allowed_notifier_;
148 TestEulaAcceptedNotifier* eula_notifier_; // Weak, owned by RRAN. 150 TestEulaAcceptedNotifier* eula_notifier_; // Weak, owned by RRAN.
149 bool was_notified_; 151 bool was_notified_;
150 152
151 DISALLOW_COPY_AND_ASSIGN(ResourceRequestAllowedNotifierTest); 153 DISALLOW_COPY_AND_ASSIGN(ResourceRequestAllowedNotifierTest);
152 }; 154 };
153 155
154 TEST_F(ResourceRequestAllowedNotifierTest, DoNotNotifyIfOffline) { 156 TEST_F(ResourceRequestAllowedNotifierTest, DoNotNotifyIfOffline) {
155 SimulateResourceRequest();
156 SetWaitingForNetwork(true); 157 SetWaitingForNetwork(true);
158 EXPECT_FALSE(SimulateResourceRequest());
157 SimulateNetworkConnectionChange(net::NetworkChangeNotifier::CONNECTION_NONE); 159 SimulateNetworkConnectionChange(net::NetworkChangeNotifier::CONNECTION_NONE);
158 EXPECT_FALSE(was_notified()); 160 EXPECT_FALSE(was_notified());
159 } 161 }
160 162
161 TEST_F(ResourceRequestAllowedNotifierTest, DoNotNotifyIfOnlineToOnline) { 163 TEST_F(ResourceRequestAllowedNotifierTest, DoNotNotifyIfOnlineToOnline) {
162 SimulateResourceRequest();
163 SetWaitingForNetwork(false); 164 SetWaitingForNetwork(false);
165 EXPECT_TRUE(SimulateResourceRequest());
164 SimulateNetworkConnectionChange( 166 SimulateNetworkConnectionChange(
165 net::NetworkChangeNotifier::CONNECTION_ETHERNET); 167 net::NetworkChangeNotifier::CONNECTION_ETHERNET);
166 EXPECT_FALSE(was_notified()); 168 EXPECT_FALSE(was_notified());
167 } 169 }
168 170
169 TEST_F(ResourceRequestAllowedNotifierTest, NotifyOnReconnect) { 171 TEST_F(ResourceRequestAllowedNotifierTest, NotifyOnReconnect) {
170 SimulateResourceRequest();
171 SetWaitingForNetwork(true); 172 SetWaitingForNetwork(true);
173 EXPECT_FALSE(SimulateResourceRequest());
172 SimulateNetworkConnectionChange( 174 SimulateNetworkConnectionChange(
173 net::NetworkChangeNotifier::CONNECTION_ETHERNET); 175 net::NetworkChangeNotifier::CONNECTION_ETHERNET);
174 EXPECT_TRUE(was_notified()); 176 EXPECT_TRUE(was_notified());
175 } 177 }
176 178
177 TEST_F(ResourceRequestAllowedNotifierTest, NoNotifyOnWardriving) { 179 TEST_F(ResourceRequestAllowedNotifierTest, NoNotifyOnWardriving) {
178 SimulateResourceRequest();
179 SetWaitingForNetwork(false); 180 SetWaitingForNetwork(false);
181 EXPECT_TRUE(SimulateResourceRequest());
180 SimulateNetworkConnectionChange( 182 SimulateNetworkConnectionChange(
181 net::NetworkChangeNotifier::CONNECTION_WIFI); 183 net::NetworkChangeNotifier::CONNECTION_WIFI);
182 EXPECT_FALSE(was_notified()); 184 EXPECT_FALSE(was_notified());
183 SimulateNetworkConnectionChange( 185 SimulateNetworkConnectionChange(
184 net::NetworkChangeNotifier::CONNECTION_3G); 186 net::NetworkChangeNotifier::CONNECTION_3G);
185 EXPECT_FALSE(was_notified()); 187 EXPECT_FALSE(was_notified());
186 SimulateNetworkConnectionChange( 188 SimulateNetworkConnectionChange(
187 net::NetworkChangeNotifier::CONNECTION_4G); 189 net::NetworkChangeNotifier::CONNECTION_4G);
188 EXPECT_FALSE(was_notified()); 190 EXPECT_FALSE(was_notified());
189 SimulateNetworkConnectionChange( 191 SimulateNetworkConnectionChange(
190 net::NetworkChangeNotifier::CONNECTION_WIFI); 192 net::NetworkChangeNotifier::CONNECTION_WIFI);
191 EXPECT_FALSE(was_notified()); 193 EXPECT_FALSE(was_notified());
192 } 194 }
193 195
194 TEST_F(ResourceRequestAllowedNotifierTest, NoNotifyOnFlakyConnection) { 196 TEST_F(ResourceRequestAllowedNotifierTest, NoNotifyOnFlakyConnection) {
195 SimulateResourceRequest(); 197 // SimulateResourceRequest() returns true because network is online.
196 SetWaitingForNetwork(false); 198 SetWaitingForNetwork(false);
199 EXPECT_TRUE(SimulateResourceRequest());
200 // The callback is nerver invoked whatever happens on network connection.
197 SimulateNetworkConnectionChange( 201 SimulateNetworkConnectionChange(
198 net::NetworkChangeNotifier::CONNECTION_WIFI); 202 net::NetworkChangeNotifier::CONNECTION_WIFI);
199 EXPECT_FALSE(was_notified()); 203 EXPECT_FALSE(was_notified());
200 SimulateNetworkConnectionChange( 204 SimulateNetworkConnectionChange(
201 net::NetworkChangeNotifier::CONNECTION_NONE); 205 net::NetworkChangeNotifier::CONNECTION_NONE);
202 EXPECT_FALSE(was_notified()); 206 EXPECT_FALSE(was_notified());
203 SimulateNetworkConnectionChange( 207 SimulateNetworkConnectionChange(
204 net::NetworkChangeNotifier::CONNECTION_WIFI); 208 net::NetworkChangeNotifier::CONNECTION_WIFI);
205 EXPECT_FALSE(was_notified()); 209 EXPECT_FALSE(was_notified());
206 } 210 }
207 211
212 TEST_F(ResourceRequestAllowedNotifierTest, NotifyOnFlakyConnection) {
213 SetWaitingForNetwork(false);
214 EXPECT_TRUE(SimulateResourceRequest());
215 // Network goes online, but not notified because SimulateResourceRequest()
216 // returns true before.
217 SimulateNetworkConnectionChange(
218 net::NetworkChangeNotifier::CONNECTION_WIFI);
219 EXPECT_FALSE(was_notified());
220 SimulateNetworkConnectionChange(
221 net::NetworkChangeNotifier::CONNECTION_NONE);
222 EXPECT_FALSE(SimulateResourceRequest());
223 // Now, SimulateResourceRequest() returns false and will be notified later.
224 EXPECT_FALSE(was_notified());
225 SimulateNetworkConnectionChange(
226 net::NetworkChangeNotifier::CONNECTION_WIFI);
227 EXPECT_TRUE(was_notified());
228 }
229
230 TEST_F(ResourceRequestAllowedNotifierTest, NoNotifyOnEulaAfterGoOffline) {
231 DisableEulaAndNetwork();
232 EXPECT_FALSE(SimulateResourceRequest());
233
234 SimulateNetworkConnectionChange(
235 net::NetworkChangeNotifier::CONNECTION_WIFI);
236 EXPECT_FALSE(was_notified());
237 SimulateNetworkConnectionChange(
238 net::NetworkChangeNotifier::CONNECTION_NONE);
239 EXPECT_FALSE(was_notified());
240 SimulateEulaAccepted();
241 EXPECT_FALSE(was_notified());
242 }
243
208 TEST_F(ResourceRequestAllowedNotifierTest, NoRequestNoNotify) { 244 TEST_F(ResourceRequestAllowedNotifierTest, NoRequestNoNotify) {
209 // Ensure that if the observing service does not request access, it does not 245 // Ensure that if the observing service does not request access, it does not
210 // get notified, even if the criteria is met. Note that this is done by not 246 // get notified, even if the criteria is met. Note that this is done by not
211 // calling SimulateResourceRequest here. 247 // calling SimulateResourceRequest here.
212 SetWaitingForNetwork(true); 248 SetWaitingForNetwork(true);
213 SimulateNetworkConnectionChange( 249 SimulateNetworkConnectionChange(
214 net::NetworkChangeNotifier::CONNECTION_ETHERNET); 250 net::NetworkChangeNotifier::CONNECTION_ETHERNET);
215 EXPECT_FALSE(was_notified()); 251 EXPECT_FALSE(was_notified());
216 } 252 }
217 253
218 TEST_F(ResourceRequestAllowedNotifierTest, EulaOnlyNetworkOffline) { 254 TEST_F(ResourceRequestAllowedNotifierTest, EulaOnlyNetworkOffline) {
219 SimulateResourceRequest();
220 DisableEulaAndNetwork(); 255 DisableEulaAndNetwork();
256 EXPECT_FALSE(SimulateResourceRequest());
221 257
222 SimulateEulaAccepted(); 258 SimulateEulaAccepted();
223 EXPECT_FALSE(was_notified()); 259 EXPECT_FALSE(was_notified());
224 } 260 }
225 261
226 TEST_F(ResourceRequestAllowedNotifierTest, EulaFirst) { 262 TEST_F(ResourceRequestAllowedNotifierTest, EulaFirst) {
227 SimulateResourceRequest();
228 DisableEulaAndNetwork(); 263 DisableEulaAndNetwork();
264 EXPECT_FALSE(SimulateResourceRequest());
229 265
230 SimulateEulaAccepted(); 266 SimulateEulaAccepted();
231 EXPECT_FALSE(was_notified()); 267 EXPECT_FALSE(was_notified());
232 268
233 SimulateNetworkConnectionChange( 269 SimulateNetworkConnectionChange(
234 net::NetworkChangeNotifier::CONNECTION_WIFI); 270 net::NetworkChangeNotifier::CONNECTION_WIFI);
235 EXPECT_TRUE(was_notified()); 271 EXPECT_TRUE(was_notified());
236 } 272 }
237 273
238 TEST_F(ResourceRequestAllowedNotifierTest, NetworkFirst) { 274 TEST_F(ResourceRequestAllowedNotifierTest, NetworkFirst) {
239 SimulateResourceRequest();
240 DisableEulaAndNetwork(); 275 DisableEulaAndNetwork();
276 EXPECT_FALSE(SimulateResourceRequest());
241 277
242 SimulateNetworkConnectionChange( 278 SimulateNetworkConnectionChange(
243 net::NetworkChangeNotifier::CONNECTION_WIFI); 279 net::NetworkChangeNotifier::CONNECTION_WIFI);
244 EXPECT_FALSE(was_notified()); 280 EXPECT_FALSE(was_notified());
245 281
246 SimulateEulaAccepted(); 282 SimulateEulaAccepted();
247 EXPECT_TRUE(was_notified()); 283 EXPECT_TRUE(was_notified());
248 } 284 }
249 285
250 TEST_F(ResourceRequestAllowedNotifierTest, NoRequestNoNotifyEula) { 286 TEST_F(ResourceRequestAllowedNotifierTest, NoRequestNoNotifyEula) {
251 // Ensure that if the observing service does not request access, it does not 287 // Ensure that if the observing service does not request access, it does not
252 // get notified, even if the criteria is met. Note that this is done by not 288 // get notified, even if the criteria is met. Note that this is done by not
253 // calling SimulateResourceRequest here. 289 // calling SimulateResourceRequest here.
254 DisableEulaAndNetwork(); 290 DisableEulaAndNetwork();
255 291
256 SimulateNetworkConnectionChange( 292 SimulateNetworkConnectionChange(
257 net::NetworkChangeNotifier::CONNECTION_WIFI); 293 net::NetworkChangeNotifier::CONNECTION_WIFI);
258 EXPECT_FALSE(was_notified()); 294 EXPECT_FALSE(was_notified());
259 295
260 SimulateEulaAccepted(); 296 SimulateEulaAccepted();
261 EXPECT_FALSE(was_notified()); 297 EXPECT_FALSE(was_notified());
262 } 298 }
OLDNEW
« no previous file with comments | « chrome/browser/web_resource/resource_request_allowed_notifier_test_util.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698