Index: chrome/browser/web_resource/resource_request_allowed_notifier_unittest.cc |
diff --git a/chrome/browser/web_resource/resource_request_allowed_notifier_unittest.cc b/chrome/browser/web_resource/resource_request_allowed_notifier_unittest.cc |
index 1c18b42458e3bc6053c1f5a17d6f345aa1a0ac27..c8f8e034c3caa6ab0e6b74e868d51464c89bf175 100644 |
--- a/chrome/browser/web_resource/resource_request_allowed_notifier_unittest.cc |
+++ b/chrome/browser/web_resource/resource_request_allowed_notifier_unittest.cc |
@@ -103,9 +103,11 @@ class ResourceRequestAllowedNotifierTest |
network_notifier.SimulateNetworkConnectionChange(type); |
} |
- // Simulate a resource request from the test service. |
- void SimulateResourceRequest() { |
- resource_request_allowed_notifier_.ResourceRequestsAllowed(); |
+ // Simulate a resource request from the test service. It returns true if |
+ // resource request is allowed. Otherwise returns false and will change the |
+ // result of was_notified() to true when the request is allowed. |
+ bool SimulateResourceRequest() { |
+ return resource_request_allowed_notifier_.ResourceRequestsAllowed(); |
} |
void SimulateEulaAccepted() { |
@@ -152,31 +154,31 @@ class ResourceRequestAllowedNotifierTest |
}; |
TEST_F(ResourceRequestAllowedNotifierTest, DoNotNotifyIfOffline) { |
- SimulateResourceRequest(); |
SetWaitingForNetwork(true); |
+ EXPECT_FALSE(SimulateResourceRequest()); |
SimulateNetworkConnectionChange(net::NetworkChangeNotifier::CONNECTION_NONE); |
EXPECT_FALSE(was_notified()); |
} |
TEST_F(ResourceRequestAllowedNotifierTest, DoNotNotifyIfOnlineToOnline) { |
- SimulateResourceRequest(); |
SetWaitingForNetwork(false); |
+ EXPECT_TRUE(SimulateResourceRequest()); |
SimulateNetworkConnectionChange( |
net::NetworkChangeNotifier::CONNECTION_ETHERNET); |
EXPECT_FALSE(was_notified()); |
} |
TEST_F(ResourceRequestAllowedNotifierTest, NotifyOnReconnect) { |
- SimulateResourceRequest(); |
SetWaitingForNetwork(true); |
+ EXPECT_FALSE(SimulateResourceRequest()); |
SimulateNetworkConnectionChange( |
net::NetworkChangeNotifier::CONNECTION_ETHERNET); |
EXPECT_TRUE(was_notified()); |
} |
TEST_F(ResourceRequestAllowedNotifierTest, NoNotifyOnWardriving) { |
- SimulateResourceRequest(); |
SetWaitingForNetwork(false); |
+ EXPECT_TRUE(SimulateResourceRequest()); |
SimulateNetworkConnectionChange( |
net::NetworkChangeNotifier::CONNECTION_WIFI); |
EXPECT_FALSE(was_notified()); |
@@ -192,8 +194,10 @@ TEST_F(ResourceRequestAllowedNotifierTest, NoNotifyOnWardriving) { |
} |
TEST_F(ResourceRequestAllowedNotifierTest, NoNotifyOnFlakyConnection) { |
- SimulateResourceRequest(); |
+ // SimulateResourceRequest() returns true because network is online. |
SetWaitingForNetwork(false); |
+ EXPECT_TRUE(SimulateResourceRequest()); |
+ // The callback is nerver invoked whatever happens on network connection. |
SimulateNetworkConnectionChange( |
net::NetworkChangeNotifier::CONNECTION_WIFI); |
EXPECT_FALSE(was_notified()); |
@@ -205,6 +209,38 @@ TEST_F(ResourceRequestAllowedNotifierTest, NoNotifyOnFlakyConnection) { |
EXPECT_FALSE(was_notified()); |
} |
+TEST_F(ResourceRequestAllowedNotifierTest, NotifyOnFlakyConnection) { |
+ SetWaitingForNetwork(false); |
+ EXPECT_TRUE(SimulateResourceRequest()); |
+ // Network goes online, but not notified because SimulateResourceRequest() |
+ // returns true before. |
+ SimulateNetworkConnectionChange( |
+ net::NetworkChangeNotifier::CONNECTION_WIFI); |
+ EXPECT_FALSE(was_notified()); |
+ SimulateNetworkConnectionChange( |
+ net::NetworkChangeNotifier::CONNECTION_NONE); |
+ EXPECT_FALSE(SimulateResourceRequest()); |
+ // Now, SimulateResourceRequest() returns false and will be notified later. |
+ EXPECT_FALSE(was_notified()); |
+ SimulateNetworkConnectionChange( |
+ net::NetworkChangeNotifier::CONNECTION_WIFI); |
+ EXPECT_TRUE(was_notified()); |
+} |
+ |
+TEST_F(ResourceRequestAllowedNotifierTest, NoNotifyOnEulaAfterGoOffline) { |
+ DisableEulaAndNetwork(); |
+ EXPECT_FALSE(SimulateResourceRequest()); |
+ |
+ SimulateNetworkConnectionChange( |
+ net::NetworkChangeNotifier::CONNECTION_WIFI); |
+ EXPECT_FALSE(was_notified()); |
+ SimulateNetworkConnectionChange( |
+ net::NetworkChangeNotifier::CONNECTION_NONE); |
+ EXPECT_FALSE(was_notified()); |
+ SimulateEulaAccepted(); |
+ EXPECT_FALSE(was_notified()); |
+} |
+ |
TEST_F(ResourceRequestAllowedNotifierTest, NoRequestNoNotify) { |
// Ensure that if the observing service does not request access, it does not |
// get notified, even if the criteria is met. Note that this is done by not |
@@ -216,16 +252,16 @@ TEST_F(ResourceRequestAllowedNotifierTest, NoRequestNoNotify) { |
} |
TEST_F(ResourceRequestAllowedNotifierTest, EulaOnlyNetworkOffline) { |
- SimulateResourceRequest(); |
DisableEulaAndNetwork(); |
+ EXPECT_FALSE(SimulateResourceRequest()); |
SimulateEulaAccepted(); |
EXPECT_FALSE(was_notified()); |
} |
TEST_F(ResourceRequestAllowedNotifierTest, EulaFirst) { |
- SimulateResourceRequest(); |
DisableEulaAndNetwork(); |
+ EXPECT_FALSE(SimulateResourceRequest()); |
SimulateEulaAccepted(); |
EXPECT_FALSE(was_notified()); |
@@ -236,8 +272,8 @@ TEST_F(ResourceRequestAllowedNotifierTest, EulaFirst) { |
} |
TEST_F(ResourceRequestAllowedNotifierTest, NetworkFirst) { |
- SimulateResourceRequest(); |
DisableEulaAndNetwork(); |
+ EXPECT_FALSE(SimulateResourceRequest()); |
SimulateNetworkConnectionChange( |
net::NetworkChangeNotifier::CONNECTION_WIFI); |