Index: components/scheduler/renderer/web_view_scheduler_impl_unittest.cc |
diff --git a/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc b/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc |
index 8ccc4dfc83c3f6cf88bdc0c7af2830582c23619f..5a3d54751c7c0560de954d680b3b13d8228dbbd5 100644 |
--- a/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc |
+++ b/components/scheduler/renderer/web_view_scheduler_impl_unittest.cc |
@@ -20,6 +20,7 @@ |
#include "third_party/WebKit/public/platform/WebTraceLocation.h" |
using testing::ElementsAre; |
+using VirtualTimePolicy = blink::WebViewScheduler::VirtualTimePolicy; |
namespace scheduler { |
@@ -335,7 +336,7 @@ class DelayedRunOrderTask : public blink::WebTaskRunner::Task { |
TEST_F(WebViewSchedulerImplTest, VirtualTime_NotAllowedToAdvance) { |
std::vector<int> run_order; |
- web_view_scheduler_->setAllowVirtualTimeToAdvance(false); |
+ web_view_scheduler_->setVirtualTimePolicy(VirtualTimePolicy::PAUSE); |
web_view_scheduler_->enableVirtualTime(); |
web_frame_scheduler_->timerTaskRunner()->postTask( |
@@ -362,7 +363,7 @@ TEST_F(WebViewSchedulerImplTest, VirtualTime_NotAllowedToAdvance) { |
TEST_F(WebViewSchedulerImplTest, VirtualTime_AllowedToAdvance) { |
std::vector<int> run_order; |
- web_view_scheduler_->setAllowVirtualTimeToAdvance(true); |
+ web_view_scheduler_->setVirtualTimePolicy(VirtualTimePolicy::ADVANCE); |
web_view_scheduler_->enableVirtualTime(); |
web_frame_scheduler_->timerTaskRunner()->postTask( |
@@ -411,7 +412,7 @@ TEST_F(WebViewSchedulerImplTestWithDisabledBackgroundTimerThrottling, |
TEST_F(WebViewSchedulerImplTest, VirtualTimeSettings_NewWebFrameScheduler) { |
std::vector<int> run_order; |
- web_view_scheduler_->setAllowVirtualTimeToAdvance(false); |
+ web_view_scheduler_->setVirtualTimePolicy(VirtualTimePolicy::PAUSE); |
web_view_scheduler_->enableVirtualTime(); |
std::unique_ptr<WebFrameSchedulerImpl> web_frame_scheduler = |
@@ -423,7 +424,7 @@ TEST_F(WebViewSchedulerImplTest, VirtualTimeSettings_NewWebFrameScheduler) { |
mock_task_runner_->RunUntilIdle(); |
EXPECT_TRUE(run_order.empty()); |
- web_view_scheduler_->setAllowVirtualTimeToAdvance(true); |
+ web_view_scheduler_->setVirtualTimePolicy(VirtualTimePolicy::ADVANCE); |
mock_task_runner_->RunUntilIdle(); |
EXPECT_THAT(run_order, ElementsAre(1)); |
@@ -501,4 +502,29 @@ TEST_F(WebViewSchedulerImplTest, DeleteThrottledQueue_InTask) { |
EXPECT_EQ(10, run_count); |
} |
+TEST_F(WebViewSchedulerImplTest, |
+ VirtualTimePolicy_PAUSE_IF_NETWORK_FETCHES_PENDING) { |
+ web_view_scheduler_->setVirtualTimePolicy( |
+ VirtualTimePolicy::PAUSE_IF_NETWORK_FETCHES_PENDING); |
+ EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); |
+ |
+ web_view_scheduler_->incrementPendingResourceLoadCount(); |
+ EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); |
+ |
+ web_view_scheduler_->incrementPendingResourceLoadCount(); |
+ EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); |
+ |
+ web_view_scheduler_->decrementPendingResourceLoadCount(); |
+ EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); |
+ |
+ web_view_scheduler_->incrementPendingResourceLoadCount(); |
+ EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); |
+ |
+ web_view_scheduler_->decrementPendingResourceLoadCount(); |
+ EXPECT_FALSE(web_view_scheduler_->virtualTimeAllowedToAdvance()); |
+ |
+ web_view_scheduler_->decrementPendingResourceLoadCount(); |
+ EXPECT_TRUE(web_view_scheduler_->virtualTimeAllowedToAdvance()); |
+} |
+ |
} // namespace scheduler |