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

Unified Diff: ash/common/session/session_controller_unittest.cc

Issue 2741403004: mash: Update LoginStatus with session state updates (Closed)
Patch Set: Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/common/session/session_controller.cc ('k') | ash/common/wm_shell.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/common/session/session_controller_unittest.cc
diff --git a/ash/common/session/session_controller_unittest.cc b/ash/common/session/session_controller_unittest.cc
index e5eb8f490aeda7cc6aa8dfca4f83bba0f0c2e687..d6a986a6833d412ffb68fd7bca53b327c9a78655 100644
--- a/ash/common/session/session_controller_unittest.cc
+++ b/ash/common/session/session_controller_unittest.cc
@@ -9,6 +9,7 @@
#include <utility>
#include <vector>
+#include "ash/common/login_status.h"
#include "ash/common/session/session_controller.h"
#include "ash/common/session/session_state_observer.h"
#include "ash/public/interfaces/session_controller.mojom.h"
@@ -192,6 +193,68 @@ TEST_F(SessionControllerTest, SessionState) {
}
}
+// Tests that LoginStatus is computed correctly for most session states.
+TEST_F(SessionControllerTest, GetLoginStatus) {
+ using session_manager::SessionState;
+
+ const struct {
+ SessionState state;
+ LoginStatus expected_status;
+ } kTestCases[] = {
+ {SessionState::UNKNOWN, LoginStatus::NOT_LOGGED_IN},
+ {SessionState::OOBE, LoginStatus::NOT_LOGGED_IN},
+ {SessionState::LOGIN_PRIMARY, LoginStatus::NOT_LOGGED_IN},
+ {SessionState::LOGGED_IN_NOT_ACTIVE, LoginStatus::NOT_LOGGED_IN},
+ {SessionState::LOCKED, LoginStatus::LOCKED},
+ // TODO: Add LOGIN_SECONDARY if we added a status for it.
+ };
+
+ mojom::SessionInfo info;
+ FillDefaultSessionInfo(&info);
+ for (const auto& test_case : kTestCases) {
+ info.state = test_case.state;
+ SetSessionInfo(info);
+ EXPECT_EQ(test_case.expected_status, controller()->GetLoginStatus())
+ << "Test case state=" << static_cast<int>(test_case.state);
+ }
+}
+
+// Tests that LoginStatus is computed correctly for active sessions.
+TEST_F(SessionControllerTest, GetLoginStateForActiveSession) {
+ // Simulate an active user session.
+ mojom::SessionInfo info;
+ FillDefaultSessionInfo(&info);
+ info.state = session_manager::SessionState::ACTIVE;
+ SetSessionInfo(info);
+
+ const struct {
+ user_manager::UserType user_type;
+ LoginStatus expected_status;
+ } kTestCases[] = {
+ {user_manager::USER_TYPE_REGULAR, LoginStatus::USER},
+ {user_manager::USER_TYPE_GUEST, LoginStatus::GUEST},
+ {user_manager::USER_TYPE_PUBLIC_ACCOUNT, LoginStatus::PUBLIC},
+ {user_manager::USER_TYPE_SUPERVISED, LoginStatus::SUPERVISED},
+ {user_manager::USER_TYPE_KIOSK_APP, LoginStatus::KIOSK_APP},
+ {user_manager::USER_TYPE_CHILD, LoginStatus::SUPERVISED},
+ {user_manager::USER_TYPE_ARC_KIOSK_APP, LoginStatus::ARC_KIOSK_APP},
+ // TODO: Add USER_TYPE_ACTIVE_DIRECTORY if we add a status for it.
+ };
+
+ for (const auto& test_case : kTestCases) {
+ mojom::UserSessionPtr session = mojom::UserSession::New();
+ session->session_id = 1u;
+ session->type = test_case.user_type;
+ session->account_id = AccountId::FromUserEmail("user1@test.com");
+ session->display_name = "User 1";
+ session->display_email = "user1@test.com";
+ controller()->UpdateUserSession(std::move(session));
+
+ EXPECT_EQ(test_case.expected_status, controller()->GetLoginStatus())
+ << "Test case user_type=" << static_cast<int>(test_case.user_type);
+ }
+}
+
// Tests that user sessions can be set and updated.
TEST_F(SessionControllerTest, UserSessions) {
EXPECT_FALSE(controller()->IsActiveUserSessionStarted());
« no previous file with comments | « ash/common/session/session_controller.cc ('k') | ash/common/wm_shell.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698