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

Side by Side Diff: ash/system/chromeos/session/logout_confirmation_controller_unittest.cc

Issue 899863002: Add support in TestMockTimeTaskRunner for vending out mock Time and mock Clocks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Start ticks from 0, some tests depend on this. Created 5 years, 10 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "ash/system/chromeos/session/logout_confirmation_controller.h" 5 #include "ash/system/chromeos/session/logout_confirmation_controller.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/test/test_mock_time_task_runner.h" 10 #include "base/test/test_mock_time_task_runner.h"
11 #include "base/thread_task_runner_handle.h" 11 #include "base/thread_task_runner_handle.h"
12 #include "base/time/tick_clock.h"
12 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
13 14
14 namespace ash { 15 namespace ash {
15 16
16 class LogoutConfirmationControllerTest : public testing::Test { 17 class LogoutConfirmationControllerTest : public testing::Test {
17 protected: 18 protected:
18 LogoutConfirmationControllerTest(); 19 LogoutConfirmationControllerTest();
19 ~LogoutConfirmationControllerTest() override; 20 ~LogoutConfirmationControllerTest() override;
20 21
21 void LogOut(); 22 void LogOut();
(...skipping 21 matching lines...) Expand all
43 LogoutConfirmationControllerTest::~LogoutConfirmationControllerTest() { 44 LogoutConfirmationControllerTest::~LogoutConfirmationControllerTest() {
44 } 45 }
45 46
46 void LogoutConfirmationControllerTest::LogOut() { 47 void LogoutConfirmationControllerTest::LogOut() {
47 log_out_called_ = true; 48 log_out_called_ = true;
48 } 49 }
49 50
50 // Verifies that the user is logged out immediately if logout confirmation with 51 // Verifies that the user is logged out immediately if logout confirmation with
51 // a zero-length countdown is requested. 52 // a zero-length countdown is requested.
52 TEST_F(LogoutConfirmationControllerTest, ZeroDuration) { 53 TEST_F(LogoutConfirmationControllerTest, ZeroDuration) {
53 controller_.ConfirmLogout(runner_->GetCurrentMockTime()); 54 controller_.ConfirmLogout(runner_->NowTicks());
54 EXPECT_FALSE(log_out_called_); 55 EXPECT_FALSE(log_out_called_);
55 runner_->FastForwardBy(base::TimeDelta()); 56 runner_->FastForwardBy(base::TimeDelta());
56 EXPECT_TRUE(log_out_called_); 57 EXPECT_TRUE(log_out_called_);
57 } 58 }
58 59
59 // Verifies that the user is logged out when the countdown expires. 60 // Verifies that the user is logged out when the countdown expires.
60 TEST_F(LogoutConfirmationControllerTest, DurationExpired) { 61 TEST_F(LogoutConfirmationControllerTest, DurationExpired) {
61 controller_.ConfirmLogout( 62 controller_.ConfirmLogout(runner_->NowTicks() +
62 runner_->GetCurrentMockTime() + base::TimeDelta::FromSeconds(10)); 63 base::TimeDelta::FromSeconds(10));
63 EXPECT_FALSE(log_out_called_); 64 EXPECT_FALSE(log_out_called_);
64 runner_->FastForwardBy(base::TimeDelta::FromSeconds(9)); 65 runner_->FastForwardBy(base::TimeDelta::FromSeconds(9));
65 EXPECT_FALSE(log_out_called_); 66 EXPECT_FALSE(log_out_called_);
66 runner_->FastForwardBy(base::TimeDelta::FromSeconds(2)); 67 runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
67 EXPECT_TRUE(log_out_called_); 68 EXPECT_TRUE(log_out_called_);
68 } 69 }
69 70
70 // Verifies that when a second request to confirm logout is made and the second 71 // Verifies that when a second request to confirm logout is made and the second
71 // request's countdown ends before the original request's, the user is logged 72 // request's countdown ends before the original request's, the user is logged
72 // out when the new countdown expires. 73 // out when the new countdown expires.
73 TEST_F(LogoutConfirmationControllerTest, DurationShortened) { 74 TEST_F(LogoutConfirmationControllerTest, DurationShortened) {
74 controller_.ConfirmLogout( 75 controller_.ConfirmLogout(runner_->NowTicks() +
75 runner_->GetCurrentMockTime() + base::TimeDelta::FromSeconds(30)); 76 base::TimeDelta::FromSeconds(30));
76 EXPECT_FALSE(log_out_called_); 77 EXPECT_FALSE(log_out_called_);
77 runner_->FastForwardBy(base::TimeDelta::FromSeconds(9)); 78 runner_->FastForwardBy(base::TimeDelta::FromSeconds(9));
78 EXPECT_FALSE(log_out_called_); 79 EXPECT_FALSE(log_out_called_);
79 controller_.ConfirmLogout( 80 controller_.ConfirmLogout(runner_->NowTicks() +
80 runner_->GetCurrentMockTime() + base::TimeDelta::FromSeconds(10)); 81 base::TimeDelta::FromSeconds(10));
81 runner_->FastForwardBy(base::TimeDelta::FromSeconds(9)); 82 runner_->FastForwardBy(base::TimeDelta::FromSeconds(9));
82 EXPECT_FALSE(log_out_called_); 83 EXPECT_FALSE(log_out_called_);
83 runner_->FastForwardBy(base::TimeDelta::FromSeconds(2)); 84 runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
84 EXPECT_TRUE(log_out_called_); 85 EXPECT_TRUE(log_out_called_);
85 } 86 }
86 87
87 // Verifies that when a second request to confirm logout is made and the second 88 // Verifies that when a second request to confirm logout is made and the second
88 // request's countdown ends after the original request's, the user is logged 89 // request's countdown ends after the original request's, the user is logged
89 // out when the original countdown expires. 90 // out when the original countdown expires.
90 TEST_F(LogoutConfirmationControllerTest, DurationExtended) { 91 TEST_F(LogoutConfirmationControllerTest, DurationExtended) {
91 controller_.ConfirmLogout( 92 controller_.ConfirmLogout(runner_->NowTicks() +
92 runner_->GetCurrentMockTime() + base::TimeDelta::FromSeconds(10)); 93 base::TimeDelta::FromSeconds(10));
93 EXPECT_FALSE(log_out_called_); 94 EXPECT_FALSE(log_out_called_);
94 runner_->FastForwardBy(base::TimeDelta::FromSeconds(9)); 95 runner_->FastForwardBy(base::TimeDelta::FromSeconds(9));
95 EXPECT_FALSE(log_out_called_); 96 EXPECT_FALSE(log_out_called_);
96 controller_.ConfirmLogout( 97 controller_.ConfirmLogout(runner_->NowTicks() +
97 runner_->GetCurrentMockTime() + base::TimeDelta::FromSeconds(10)); 98 base::TimeDelta::FromSeconds(10));
98 runner_->FastForwardBy(base::TimeDelta::FromSeconds(2)); 99 runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
99 EXPECT_TRUE(log_out_called_); 100 EXPECT_TRUE(log_out_called_);
100 } 101 }
101 102
102 // Verifies that when the screen is locked while the countdown is running, the 103 // Verifies that when the screen is locked while the countdown is running, the
103 // user is not logged out, even when the original countdown expires. 104 // user is not logged out, even when the original countdown expires.
104 TEST_F(LogoutConfirmationControllerTest, Lock) { 105 TEST_F(LogoutConfirmationControllerTest, Lock) {
105 controller_.ConfirmLogout( 106 controller_.ConfirmLogout(runner_->NowTicks() +
106 runner_->GetCurrentMockTime() + base::TimeDelta::FromSeconds(10)); 107 base::TimeDelta::FromSeconds(10));
107 EXPECT_FALSE(log_out_called_); 108 EXPECT_FALSE(log_out_called_);
108 controller_.OnLockStateChanged(true); 109 controller_.OnLockStateChanged(true);
109 runner_->FastForwardUntilNoTasksRemain(); 110 runner_->FastForwardUntilNoTasksRemain();
110 EXPECT_FALSE(log_out_called_); 111 EXPECT_FALSE(log_out_called_);
111 } 112 }
112 113
113 // Verifies that when the user confirms the logout request, the user is logged 114 // Verifies that when the user confirms the logout request, the user is logged
114 // out immediately. 115 // out immediately.
115 TEST_F(LogoutConfirmationControllerTest, UserAccepted) { 116 TEST_F(LogoutConfirmationControllerTest, UserAccepted) {
116 controller_.ConfirmLogout( 117 controller_.ConfirmLogout(runner_->NowTicks() +
117 runner_->GetCurrentMockTime() + base::TimeDelta::FromSeconds(10)); 118 base::TimeDelta::FromSeconds(10));
118 EXPECT_FALSE(log_out_called_); 119 EXPECT_FALSE(log_out_called_);
119 controller_.OnLogoutConfirmed(); 120 controller_.OnLogoutConfirmed();
120 EXPECT_TRUE(log_out_called_); 121 EXPECT_TRUE(log_out_called_);
121 } 122 }
122 123
123 // Verifies that when the user denies the logout request, the user is not logged 124 // Verifies that when the user denies the logout request, the user is not logged
124 // out, even when the original countdown expires. 125 // out, even when the original countdown expires.
125 TEST_F(LogoutConfirmationControllerTest, UserDenied) { 126 TEST_F(LogoutConfirmationControllerTest, UserDenied) {
126 controller_.ConfirmLogout( 127 controller_.ConfirmLogout(runner_->NowTicks() +
127 runner_->GetCurrentMockTime() + base::TimeDelta::FromSeconds(10)); 128 base::TimeDelta::FromSeconds(10));
128 EXPECT_FALSE(log_out_called_); 129 EXPECT_FALSE(log_out_called_);
129 controller_.OnDialogClosed(); 130 controller_.OnDialogClosed();
130 runner_->FastForwardUntilNoTasksRemain(); 131 runner_->FastForwardUntilNoTasksRemain();
131 EXPECT_FALSE(log_out_called_); 132 EXPECT_FALSE(log_out_called_);
132 } 133 }
133 134
134 // Verifies that after the user has denied a logout request, a subsequent logout 135 // Verifies that after the user has denied a logout request, a subsequent logout
135 // request is handled correctly and the user is logged out when the countdown 136 // request is handled correctly and the user is logged out when the countdown
136 // expires. 137 // expires.
137 TEST_F(LogoutConfirmationControllerTest, DurationExpiredAfterDeniedRequest) { 138 TEST_F(LogoutConfirmationControllerTest, DurationExpiredAfterDeniedRequest) {
138 controller_.ConfirmLogout( 139 controller_.ConfirmLogout(runner_->NowTicks() +
139 runner_->GetCurrentMockTime() + base::TimeDelta::FromSeconds(10)); 140 base::TimeDelta::FromSeconds(10));
140 EXPECT_FALSE(log_out_called_); 141 EXPECT_FALSE(log_out_called_);
141 controller_.OnDialogClosed(); 142 controller_.OnDialogClosed();
142 runner_->FastForwardUntilNoTasksRemain(); 143 runner_->FastForwardUntilNoTasksRemain();
143 EXPECT_FALSE(log_out_called_); 144 EXPECT_FALSE(log_out_called_);
144 145
145 controller_.ConfirmLogout( 146 controller_.ConfirmLogout(runner_->NowTicks() +
146 runner_->GetCurrentMockTime() + base::TimeDelta::FromSeconds(10)); 147 base::TimeDelta::FromSeconds(10));
147 EXPECT_FALSE(log_out_called_); 148 EXPECT_FALSE(log_out_called_);
148 runner_->FastForwardBy(base::TimeDelta::FromSeconds(9)); 149 runner_->FastForwardBy(base::TimeDelta::FromSeconds(9));
149 EXPECT_FALSE(log_out_called_); 150 EXPECT_FALSE(log_out_called_);
150 runner_->FastForwardBy(base::TimeDelta::FromSeconds(2)); 151 runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
151 EXPECT_TRUE(log_out_called_); 152 EXPECT_TRUE(log_out_called_);
152 } 153 }
153 154
154 } // namespace ash 155 } // namespace ash
OLDNEW
« no previous file with comments | « no previous file | base/test/test_mock_time_task_runner.h » ('j') | base/test/test_mock_time_task_runner.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698