| Index: chrome/browser/ui/ash/session_controller_client_unittest.cc
|
| diff --git a/chrome/browser/ui/ash/session_controller_client_unittest.cc b/chrome/browser/ui/ash/session_controller_client_unittest.cc
|
| index 1f230d2ea27a2c60c42fe745b0330d392238a4bd..34675df866b2578b6a4f87f96774f7a662cdde41 100644
|
| --- a/chrome/browser/ui/ash/session_controller_client_unittest.cc
|
| +++ b/chrome/browser/ui/ash/session_controller_client_unittest.cc
|
| @@ -10,6 +10,7 @@
|
|
|
| #include "base/macros.h"
|
| #include "base/run_loop.h"
|
| +#include "base/time/time.h"
|
| #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h"
|
| #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h"
|
| #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
|
| @@ -125,6 +126,14 @@ class TestSessionController : public ash::mojom::SessionController {
|
| void NotifyChromeLockAnimationsComplete() override {}
|
| void RunUnlockAnimation(RunUnlockAnimationCallback callback) override {}
|
| void NotifyChromeTerminating() override {}
|
| + void SetSessionLengthLimit(base::TimeDelta length_limit,
|
| + base::TimeTicks start_time) override {
|
| + last_session_length_limit_ = length_limit;
|
| + last_session_start_time_ = start_time;
|
| + }
|
| +
|
| + base::TimeDelta last_session_length_limit_;
|
| + base::TimeTicks last_session_start_time_;
|
|
|
| private:
|
| mojo::Binding<ash::mojom::SessionController> binding_;
|
| @@ -518,3 +527,27 @@ TEST_F(SessionControllerClientTest, UserPrefsChange) {
|
| EXPECT_FALSE(
|
| session_controller.last_session_info()->should_lock_screen_automatically);
|
| }
|
| +
|
| +TEST_F(SessionControllerClientTest, SessionLengthLimit) {
|
| + // Create an object to test and connect it to our test interface.
|
| + SessionControllerClient client;
|
| + TestSessionController session_controller;
|
| + client.session_controller_ = session_controller.CreateInterfacePtrAndBind();
|
| + client.Init();
|
| + SessionControllerClient::FlushForTesting();
|
| +
|
| + // By default there is no session length limit.
|
| + EXPECT_TRUE(session_controller.last_session_length_limit_.is_zero());
|
| + EXPECT_TRUE(session_controller.last_session_start_time_.is_null());
|
| +
|
| + // Setting a session length limit in local state sends it to ash.
|
| + const base::TimeDelta length_limit = base::TimeDelta::FromHours(1);
|
| + const base::TimeTicks start_time = base::TimeTicks::Now();
|
| + PrefService* local_state = TestingBrowserProcess::GetGlobal()->local_state();
|
| + local_state->SetInteger(prefs::kSessionLengthLimit,
|
| + length_limit.InMilliseconds());
|
| + local_state->SetInt64(prefs::kSessionStartTime, start_time.ToInternalValue());
|
| + SessionControllerClient::FlushForTesting();
|
| + EXPECT_EQ(length_limit, session_controller.last_session_length_limit_);
|
| + EXPECT_EQ(start_time, session_controller.last_session_start_time_);
|
| +}
|
|
|