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

Side by Side Diff: components/offline_pages/background/request_coordinator_unittest.cc

Issue 2338313002: [Offline Pages] Gates immediate triggering (non scheduled) of background loading by whether low end… (Closed)
Patch Set: 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 unified diff | Download patch
« no previous file with comments | « components/offline_pages/background/request_coordinator.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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "components/offline_pages/background/request_coordinator.h" 5 #include "components/offline_pages/background/request_coordinator.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/location.h" 12 #include "base/location.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/synchronization/waitable_event.h" 14 #include "base/synchronization/waitable_event.h"
15 #include "base/sys_info.h"
15 #include "base/test/test_mock_time_task_runner.h" 16 #include "base/test/test_mock_time_task_runner.h"
16 #include "base/threading/thread_task_runner_handle.h" 17 #include "base/threading/thread_task_runner_handle.h"
17 #include "base/time/time.h" 18 #include "base/time/time.h"
18 #include "components/offline_pages/background/device_conditions.h" 19 #include "components/offline_pages/background/device_conditions.h"
19 #include "components/offline_pages/background/offliner.h" 20 #include "components/offline_pages/background/offliner.h"
20 #include "components/offline_pages/background/offliner_factory.h" 21 #include "components/offline_pages/background/offliner_factory.h"
21 #include "components/offline_pages/background/offliner_policy.h" 22 #include "components/offline_pages/background/offliner_policy.h"
22 #include "components/offline_pages/background/request_queue.h" 23 #include "components/offline_pages/background/request_queue.h"
23 #include "components/offline_pages/background/request_queue_in_memory_store.h" 24 #include "components/offline_pages/background/request_queue_in_memory_store.h"
24 #include "components/offline_pages/background/save_page_request.h" 25 #include "components/offline_pages/background/save_page_request.h"
(...skipping 927 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 WaitForCallback(); 953 WaitForCallback();
953 PumpLoop(); 954 PumpLoop();
954 955
955 EXPECT_TRUE(observer().completed_called()); 956 EXPECT_TRUE(observer().completed_called());
956 EXPECT_EQ(RequestCoordinator::BackgroundSavePageResult::REMOVED, 957 EXPECT_EQ(RequestCoordinator::BackgroundSavePageResult::REMOVED,
957 observer().last_status()); 958 observer().last_status());
958 EXPECT_EQ(1UL, last_remove_results().size()); 959 EXPECT_EQ(1UL, last_remove_results().size());
959 EXPECT_EQ(kRequestId1, std::get<0>(last_remove_results().at(0))); 960 EXPECT_EQ(kRequestId1, std::get<0>(last_remove_results().at(0)));
960 } 961 }
961 962
962 TEST_F(RequestCoordinatorTest, SavePageStartsProcessingWhenConnected) { 963 TEST_F(RequestCoordinatorTest,
964 SavePageStartsProcessingWhenConnectedAndNotLowEndDevice) {
963 SetNetworkConditionsForTest( 965 SetNetworkConditionsForTest(
964 net::NetworkChangeNotifier::ConnectionType::CONNECTION_3G); 966 net::NetworkChangeNotifier::ConnectionType::CONNECTION_3G);
965 EXPECT_TRUE(coordinator()->SavePageLater(kUrl1, kClientId1, kUserRequested)); 967 EXPECT_TRUE(coordinator()->SavePageLater(kUrl1, kClientId1, kUserRequested));
966 PumpLoop(); 968 PumpLoop();
967 EXPECT_TRUE(is_busy()); 969
970 // Now whether processing triggered immediately depends on whether test
971 // is run on svelte device or not.
972 if (base::SysInfo::IsLowEndDevice()) {
973 EXPECT_FALSE(is_busy());
974 } else {
975 EXPECT_TRUE(is_busy());
976 }
968 } 977 }
969 978
970 TEST_F(RequestCoordinatorTest, SavePageDoesntStartProcessingWhenDisconnected) { 979 TEST_F(RequestCoordinatorTest, SavePageDoesntStartProcessingWhenDisconnected) {
971 SetNetworkConditionsForTest( 980 SetNetworkConditionsForTest(
972 net::NetworkChangeNotifier::ConnectionType::CONNECTION_NONE); 981 net::NetworkChangeNotifier::ConnectionType::CONNECTION_NONE);
973 EXPECT_TRUE(coordinator()->SavePageLater(kUrl1, kClientId1, kUserRequested)); 982 EXPECT_TRUE(coordinator()->SavePageLater(kUrl1, kClientId1, kUserRequested));
974 PumpLoop(); 983 PumpLoop();
975 EXPECT_FALSE(is_busy()); 984 EXPECT_FALSE(is_busy());
976 } 985 }
977 986
978 TEST_F(RequestCoordinatorTest, ResumeStartsProcessingWhenConnected) { 987 TEST_F(RequestCoordinatorTest,
988 ResumeStartsProcessingWhenConnectedAndNotLowEndDevice) {
979 SetNetworkConditionsForTest( 989 SetNetworkConditionsForTest(
980 net::NetworkChangeNotifier::ConnectionType::CONNECTION_NONE); 990 net::NetworkChangeNotifier::ConnectionType::CONNECTION_NONE);
981 991
982 // Add a request to the queue. 992 // Add a request to the queue.
983 offline_pages::SavePageRequest request1(kRequestId1, kUrl1, kClientId1, 993 offline_pages::SavePageRequest request1(kRequestId1, kUrl1, kClientId1,
984 base::Time::Now(), kUserRequested); 994 base::Time::Now(), kUserRequested);
985 coordinator()->queue()->AddRequest( 995 coordinator()->queue()->AddRequest(
986 request1, base::Bind(&RequestCoordinatorTest::AddRequestDone, 996 request1, base::Bind(&RequestCoordinatorTest::AddRequestDone,
987 base::Unretained(this))); 997 base::Unretained(this)));
988 PumpLoop(); 998 PumpLoop();
(...skipping 15 matching lines...) Expand all
1004 PumpLoop(); 1014 PumpLoop();
1005 1015
1006 // Now simulate being connected. 1016 // Now simulate being connected.
1007 SetNetworkConditionsForTest( 1017 SetNetworkConditionsForTest(
1008 net::NetworkChangeNotifier::ConnectionType::CONNECTION_3G); 1018 net::NetworkChangeNotifier::ConnectionType::CONNECTION_3G);
1009 1019
1010 // Resume the request while connected. 1020 // Resume the request while connected.
1011 coordinator()->ResumeRequests(request_ids); 1021 coordinator()->ResumeRequests(request_ids);
1012 EXPECT_FALSE(is_busy()); 1022 EXPECT_FALSE(is_busy());
1013 PumpLoop(); 1023 PumpLoop();
1014 EXPECT_TRUE(is_busy()); 1024
1025 // Now whether processing triggered immediately depends on whether test
1026 // is run on svelte device or not.
1027 if (base::SysInfo::IsLowEndDevice()) {
1028 EXPECT_FALSE(is_busy());
1029 } else {
1030 EXPECT_TRUE(is_busy());
1031 }
1015 } 1032 }
1016 1033
1017 } // namespace offline_pages 1034 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/background/request_coordinator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698