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

Unified Diff: components/offline_pages/background/request_coordinator_unittest.cc

Issue 2347783003: [OfflinePages, NetworkQualityEstimator] Use NetworkQualityEstimator to decide on triggering Backgro… (Closed)
Patch Set: Addresses some feedback Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: components/offline_pages/background/request_coordinator_unittest.cc
diff --git a/components/offline_pages/background/request_coordinator_unittest.cc b/components/offline_pages/background/request_coordinator_unittest.cc
index 1b469fd84cd2091b005807a1138a77aa2db82128..523ecfcfa3e3b01c5e010ce63a385d143757063a 100644
--- a/components/offline_pages/background/request_coordinator_unittest.cc
+++ b/components/offline_pages/background/request_coordinator_unittest.cc
@@ -127,6 +127,26 @@ class OfflinerFactoryStub : public OfflinerFactory {
std::unique_ptr<OfflinerStub> offliner_;
};
+// TODO(dougarnett): Replace with real NQE instance when/if support interface.
RyanSturm 2016/09/19 17:15:40 For the purposes of this test, you'd probably be b
dougarnett 2016/09/19 19:34:32 Done.
+class NetworkQualityEstimatorStub
tbansal1 2016/09/16 22:05:56 nit: may be s/NetworkQualityEstimatorStub/TestNetw
dougarnett 2016/09/19 19:34:33 Acknowledged. I prefer that too but matching namin
+ : public net::NetworkQualityEstimator::NetworkQualityProvider {
+ public:
+ NetworkQualityEstimatorStub()
+ : connection_type_(
+ net::EffectiveConnectionType::EFFECTIVE_CONNECTION_TYPE_3G) {}
+
+ net::EffectiveConnectionType GetEffectiveConnectionType() override {
+ return connection_type_;
+ }
+
+ void SetEffectiveConnectionTypeForTesting(net::EffectiveConnectionType type) {
+ connection_type_ = type;
+ }
+
+ private:
+ net::EffectiveConnectionType connection_type_;
+};
+
class ObserverStub : public RequestCoordinator::Observer {
public:
ObserverStub()
@@ -246,6 +266,10 @@ class RequestCoordinatorTest
coordinator()->SetNetworkConditionsForTest(connection);
}
+ void SetEffectiveConnectionTypeForTesting(net::EffectiveConnectionType type) {
+ nqe_->SetEffectiveConnectionTypeForTesting(type);
+ }
+
void ScheduleForTest() { coordinator_->ScheduleAsNeeded(); }
void CallRequestNotPicked(bool non_user_requested_tasks_remaining) {
@@ -282,6 +306,7 @@ class RequestCoordinatorTest
std::vector<std::unique_ptr<SavePageRequest>> last_requests_;
scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
base::ThreadTaskRunnerHandle task_runner_handle_;
+ NetworkQualityEstimatorStub* nqe_;
std::unique_ptr<RequestCoordinator> coordinator_;
OfflinerStub* offliner_;
base::WaitableEvent waiter_;
@@ -292,6 +317,7 @@ RequestCoordinatorTest::RequestCoordinatorTest()
: last_get_requests_result_(RequestQueue::GetRequestsResult::STORE_FAILURE),
task_runner_(new base::TestMockTimeTaskRunner),
task_runner_handle_(task_runner_),
+ nqe_(new NetworkQualityEstimatorStub()),
tbansal1 2016/09/16 22:05:56 Is this not leaking memory? May be you can store i
dougarnett 2016/09/19 19:34:32 Done.
offliner_(nullptr),
waiter_(base::WaitableEvent::ResetPolicy::MANUAL,
base::WaitableEvent::InitialState::NOT_SIGNALED) {}
@@ -310,7 +336,7 @@ void RequestCoordinatorTest::SetUp() {
std::unique_ptr<Scheduler> scheduler_stub(new SchedulerStub());
coordinator_.reset(new RequestCoordinator(
std::move(policy), std::move(factory), std::move(queue),
- std::move(scheduler_stub)));
+ std::move(scheduler_stub), nqe_));
coordinator_->AddObserver(&observer_);
}
@@ -358,6 +384,8 @@ TEST_F(RequestCoordinatorTest, StartProcessingWithNoRequests) {
}
TEST_F(RequestCoordinatorTest, StartProcessingWithRequestInProgress) {
+ SetEffectiveConnectionTypeForTesting(
Pete Williamson 2016/09/16 22:26:01 Maybe set up a default type in the ::SetUp functio
dougarnett 2016/09/19 19:34:33 Done.
+ net::EffectiveConnectionType::EFFECTIVE_CONNECTION_TYPE_OFFLINE);
SetNetworkConditionsForTest(
net::NetworkChangeNotifier::ConnectionType::CONNECTION_NONE);
// Put the request on the queue.
@@ -962,6 +990,8 @@ TEST_F(RequestCoordinatorTest, RemoveRequest) {
TEST_F(RequestCoordinatorTest,
SavePageStartsProcessingWhenConnectedAndNotLowEndDevice) {
+ SetEffectiveConnectionTypeForTesting(
+ net::EffectiveConnectionType::EFFECTIVE_CONNECTION_TYPE_3G);
SetNetworkConditionsForTest(
net::NetworkChangeNotifier::ConnectionType::CONNECTION_3G);
EXPECT_TRUE(coordinator()->SavePageLater(kUrl1, kClientId1, kUserRequested));
@@ -977,6 +1007,8 @@ TEST_F(RequestCoordinatorTest,
}
TEST_F(RequestCoordinatorTest, SavePageDoesntStartProcessingWhenDisconnected) {
+ SetEffectiveConnectionTypeForTesting(
+ net::EffectiveConnectionType::EFFECTIVE_CONNECTION_TYPE_OFFLINE);
Pete Williamson 2016/09/16 22:26:01 Maybe EFFECTIVE_CONNECTION_TYPE_SLOW_2G (unless we
dougarnett 2016/09/19 19:34:33 Added ...WhenPoorlyConnected test variant.
SetNetworkConditionsForTest(
net::NetworkChangeNotifier::ConnectionType::CONNECTION_NONE);
EXPECT_TRUE(coordinator()->SavePageLater(kUrl1, kClientId1, kUserRequested));
@@ -986,6 +1018,8 @@ TEST_F(RequestCoordinatorTest, SavePageDoesntStartProcessingWhenDisconnected) {
TEST_F(RequestCoordinatorTest,
ResumeStartsProcessingWhenConnectedAndNotLowEndDevice) {
+ SetEffectiveConnectionTypeForTesting(
+ net::EffectiveConnectionType::EFFECTIVE_CONNECTION_TYPE_OFFLINE);
SetNetworkConditionsForTest(
net::NetworkChangeNotifier::ConnectionType::CONNECTION_NONE);
@@ -1014,6 +1048,8 @@ TEST_F(RequestCoordinatorTest,
PumpLoop();
// Now simulate being connected.
+ SetEffectiveConnectionTypeForTesting(
+ net::EffectiveConnectionType::EFFECTIVE_CONNECTION_TYPE_3G);
SetNetworkConditionsForTest(
net::NetworkChangeNotifier::ConnectionType::CONNECTION_3G);

Powered by Google App Engine
This is Rietveld 408576698