| 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 1e5d0a5cb6d955daaf3541699bdd26b36df398e8..2d0db44daf68faca0bb4f070fde6338b932c8db5 100644
|
| --- a/chrome/browser/ui/ash/session_controller_client_unittest.cc
|
| +++ b/chrome/browser/ui/ash/session_controller_client_unittest.cc
|
| @@ -87,6 +87,8 @@ class TestSessionController : public ash::mojom::SessionController {
|
| return last_user_session_.get();
|
| }
|
|
|
| + int update_user_session_count() { return update_user_session_count_; }
|
| +
|
| // ash::mojom::SessionController:
|
| void SetClient(ash::mojom::SessionControllerClientPtr client) override {}
|
| void SetSessionInfo(ash::mojom::SessionInfoPtr info) override {
|
| @@ -94,6 +96,7 @@ class TestSessionController : public ash::mojom::SessionController {
|
| }
|
| void UpdateUserSession(ash::mojom::UserSessionPtr user_session) override {
|
| last_user_session_ = user_session->Clone();
|
| + update_user_session_count_++;
|
| }
|
| void SetUserSessionOrder(
|
| const std::vector<uint32_t>& user_session_order) override {}
|
| @@ -108,6 +111,7 @@ class TestSessionController : public ash::mojom::SessionController {
|
|
|
| ash::mojom::SessionInfoPtr last_session_info_;
|
| ash::mojom::UserSessionPtr last_user_session_;
|
| + int update_user_session_count_ = 0;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(TestSessionController);
|
| };
|
| @@ -361,6 +365,36 @@ TEST_F(SessionControllerClientTest,
|
| SessionControllerClient::GetAddUserSessionPolicy());
|
| }
|
|
|
| +TEST_F(SessionControllerClientTest, SendUserSession) {
|
| + // 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();
|
| +
|
| + // No user session sent yet.
|
| + EXPECT_EQ(0, session_controller.update_user_session_count());
|
| +
|
| + // Simulate login.
|
| + const AccountId account_id(AccountId::FromUserEmail("user@test.com"));
|
| + user_manager()->AddUser(account_id);
|
| + session_manager_.CreateSession(
|
| + account_id, chromeos::ProfileHelper::GetUserIdHashByUserIdForTesting(
|
| + "user@test.com"));
|
| + SessionControllerClient::FlushForTesting();
|
| +
|
| + // User session was sent.
|
| + EXPECT_EQ(1, session_controller.update_user_session_count());
|
| +
|
| + // Simulate a request for an update where nothing changed.
|
| + client.SendUserSession(*user_manager()->GetLoggedInUsers()[0]);
|
| + SessionControllerClient::FlushForTesting();
|
| +
|
| + // Session was not updated because nothing changed.
|
| + EXPECT_EQ(1, session_controller.update_user_session_count());
|
| +}
|
| +
|
| TEST_F(SessionControllerClientTest, SupervisedUser) {
|
| // Create an object to test and connect it to our test interface.
|
| SessionControllerClient client;
|
|
|