| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/ui/ash/session_controller_client.h" | 5 #include "chrome/browser/ui/ash/session_controller_client.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/macros.h" | 11 #include "base/macros.h" |
| 12 #include "base/run_loop.h" | 12 #include "base/run_loop.h" |
| 13 #include "base/time/time.h" |
| 13 #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" | 14 #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" |
| 14 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" | 15 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" |
| 15 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" | 16 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" |
| 16 #include "chrome/browser/chromeos/policy/policy_cert_service.h" | 17 #include "chrome/browser/chromeos/policy/policy_cert_service.h" |
| 17 #include "chrome/browser/chromeos/policy/policy_cert_service_factory.h" | 18 #include "chrome/browser/chromeos/policy/policy_cert_service_factory.h" |
| 18 #include "chrome/browser/chromeos/policy/policy_cert_verifier.h" | 19 #include "chrome/browser/chromeos/policy/policy_cert_verifier.h" |
| 19 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 20 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| 20 #include "chrome/browser/supervised_user/supervised_user_service.h" | 21 #include "chrome/browser/supervised_user/supervised_user_service.h" |
| 21 #include "chrome/browser/supervised_user/supervised_user_service_factory.h" | 22 #include "chrome/browser/supervised_user/supervised_user_service_factory.h" |
| 22 #include "chrome/common/pref_names.h" | 23 #include "chrome/common/pref_names.h" |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 void UpdateUserSession(ash::mojom::UserSessionPtr user_session) override { | 119 void UpdateUserSession(ash::mojom::UserSessionPtr user_session) override { |
| 119 last_user_session_ = user_session->Clone(); | 120 last_user_session_ = user_session->Clone(); |
| 120 update_user_session_count_++; | 121 update_user_session_count_++; |
| 121 } | 122 } |
| 122 void SetUserSessionOrder( | 123 void SetUserSessionOrder( |
| 123 const std::vector<uint32_t>& user_session_order) override {} | 124 const std::vector<uint32_t>& user_session_order) override {} |
| 124 void StartLock(StartLockCallback callback) override {} | 125 void StartLock(StartLockCallback callback) override {} |
| 125 void NotifyChromeLockAnimationsComplete() override {} | 126 void NotifyChromeLockAnimationsComplete() override {} |
| 126 void RunUnlockAnimation(RunUnlockAnimationCallback callback) override {} | 127 void RunUnlockAnimation(RunUnlockAnimationCallback callback) override {} |
| 127 void NotifyChromeTerminating() override {} | 128 void NotifyChromeTerminating() override {} |
| 129 void SetSessionLengthLimit(base::TimeDelta length_limit, |
| 130 base::TimeTicks start_time) override { |
| 131 last_session_length_limit_ = length_limit; |
| 132 last_session_start_time_ = start_time; |
| 133 } |
| 134 |
| 135 base::TimeDelta last_session_length_limit_; |
| 136 base::TimeTicks last_session_start_time_; |
| 128 | 137 |
| 129 private: | 138 private: |
| 130 mojo::Binding<ash::mojom::SessionController> binding_; | 139 mojo::Binding<ash::mojom::SessionController> binding_; |
| 131 | 140 |
| 132 ash::mojom::SessionInfoPtr last_session_info_; | 141 ash::mojom::SessionInfoPtr last_session_info_; |
| 133 ash::mojom::UserSessionPtr last_user_session_; | 142 ash::mojom::UserSessionPtr last_user_session_; |
| 134 int update_user_session_count_ = 0; | 143 int update_user_session_count_ = 0; |
| 135 | 144 |
| 136 DISALLOW_COPY_AND_ASSIGN(TestSessionController); | 145 DISALLOW_COPY_AND_ASSIGN(TestSessionController); |
| 137 }; | 146 }; |
| (...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 511 | 520 |
| 512 user_prefs->SetBoolean(prefs::kEnableAutoScreenLock, true); | 521 user_prefs->SetBoolean(prefs::kEnableAutoScreenLock, true); |
| 513 SessionControllerClient::FlushForTesting(); | 522 SessionControllerClient::FlushForTesting(); |
| 514 EXPECT_TRUE( | 523 EXPECT_TRUE( |
| 515 session_controller.last_session_info()->should_lock_screen_automatically); | 524 session_controller.last_session_info()->should_lock_screen_automatically); |
| 516 user_prefs->SetBoolean(prefs::kEnableAutoScreenLock, false); | 525 user_prefs->SetBoolean(prefs::kEnableAutoScreenLock, false); |
| 517 SessionControllerClient::FlushForTesting(); | 526 SessionControllerClient::FlushForTesting(); |
| 518 EXPECT_FALSE( | 527 EXPECT_FALSE( |
| 519 session_controller.last_session_info()->should_lock_screen_automatically); | 528 session_controller.last_session_info()->should_lock_screen_automatically); |
| 520 } | 529 } |
| 530 |
| 531 TEST_F(SessionControllerClientTest, SessionLengthLimit) { |
| 532 // Create an object to test and connect it to our test interface. |
| 533 SessionControllerClient client; |
| 534 TestSessionController session_controller; |
| 535 client.session_controller_ = session_controller.CreateInterfacePtrAndBind(); |
| 536 client.Init(); |
| 537 SessionControllerClient::FlushForTesting(); |
| 538 |
| 539 // By default there is no session length limit. |
| 540 EXPECT_TRUE(session_controller.last_session_length_limit_.is_zero()); |
| 541 EXPECT_TRUE(session_controller.last_session_start_time_.is_null()); |
| 542 |
| 543 // Setting a session length limit in local state sends it to ash. |
| 544 const base::TimeDelta length_limit = base::TimeDelta::FromHours(1); |
| 545 const base::TimeTicks start_time = base::TimeTicks::Now(); |
| 546 PrefService* local_state = TestingBrowserProcess::GetGlobal()->local_state(); |
| 547 local_state->SetInteger(prefs::kSessionLengthLimit, |
| 548 length_limit.InMilliseconds()); |
| 549 local_state->SetInt64(prefs::kSessionStartTime, start_time.ToInternalValue()); |
| 550 SessionControllerClient::FlushForTesting(); |
| 551 EXPECT_EQ(length_limit, session_controller.last_session_length_limit_); |
| 552 EXPECT_EQ(start_time, session_controller.last_session_start_time_); |
| 553 } |
| OLD | NEW |