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

Side by Side Diff: components/scheduler/child/virtual_time_task_runner_delegate_unittest.cc

Issue 1424053002: Adds a flag to support "Virtual Time" to the blink scheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added a test Created 5 years, 1 month 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
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "components/scheduler/child/virtual_time_task_runner_delegate.h"
6
7 #include "base/bind.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 namespace scheduler {
11
12 class VirtualTimeTaskRunnerDelegateTest : public testing::Test {
13 public:
14 VirtualTimeTaskRunnerDelegateTest() {}
15
16 ~VirtualTimeTaskRunnerDelegateTest() override {}
17
18 void SetUp() override {
19 message_loop_.reset(new base::MessageLoop());
20 initial_time_ = base::TimeTicks() + base::TimeDelta::FromSeconds(100);
21 virtual_time_task_runner_delegate_ =
22 VirtualTimeTaskRunnerDelegate::Create(message_loop_.get(),
23 initial_time_);
24 }
25
26 base::TimeTicks initial_time_;
27 scoped_ptr<base::MessageLoop> message_loop_;
28
29 scoped_refptr<VirtualTimeTaskRunnerDelegate>
30 virtual_time_task_runner_delegate_;
31 };
32
33 namespace {
34 void TestFunc(bool* run) {
35 *run = true;
36 }
37 }
38
39 TEST_F(VirtualTimeTaskRunnerDelegateTest, OnNoMoreWork_FastForwardingEnabled) {
40 bool was_run = false;
41 virtual_time_task_runner_delegate_->PostDelayedTask(
42 FROM_HERE,
43 base::Bind(TestFunc, &was_run),
44 base::TimeDelta::FromSeconds(1));
45
46 EXPECT_EQ(initial_time_, virtual_time_task_runner_delegate_->NowTicks());
47
48 virtual_time_task_runner_delegate_->OnNoMoreWork();
49
50 EXPECT_EQ(initial_time_ + base::TimeDelta::FromSeconds(1),
51 virtual_time_task_runner_delegate_->NowTicks());
52
53 message_loop_->RunUntilIdle();
54 EXPECT_TRUE(was_run);
55 }
56
57 TEST_F(VirtualTimeTaskRunnerDelegateTest, OnNoMoreWork_FastForwardingDisabled) {
58 bool was_run = false;
59 virtual_time_task_runner_delegate_->PostDelayedTask(
60 FROM_HERE,
61 base::Bind(TestFunc, &was_run),
62 base::TimeDelta::FromSeconds(1));
63
64 virtual_time_task_runner_delegate_->SetFastForwardTimers(false);
65
66 EXPECT_EQ(initial_time_, virtual_time_task_runner_delegate_->NowTicks());
67
68 virtual_time_task_runner_delegate_->OnNoMoreWork();
69
70 EXPECT_EQ(initial_time_, virtual_time_task_runner_delegate_->NowTicks());
71
72 message_loop_->RunUntilIdle();
73 EXPECT_FALSE(was_run);
74 }
75
76 } // namespace scheduler
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698