blob: 1fa5624ef85d8fd947fe9f365350bb0c09d7d34e [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/command_line.h"
#include "chrome/browser/chromeos/login/login_manager_test.h"
#include "chrome/browser/chromeos/login/startup_utils.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/view_ids.h"
#include "chrome/common/chrome_switches.h"
#include "components/session_manager/core/session_manager.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/views/focus/focus_manager.h"
#include "ui/views/view.h"
#include "ui/views/widget/widget.h"
namespace chromeos {
namespace {
constexpr char kTestUser[] = "test-user@gmail.com";
constexpr char kTestUserGaiaId[] = "1234567890";
} // namespace
class BrowserLoginTest : public chromeos::LoginManagerTest {
public:
BrowserLoginTest() : LoginManagerTest(true, true) {}
~BrowserLoginTest() override {}
void SetUpCommandLine(base::CommandLine* command_line) override {
LoginManagerTest::SetUpCommandLine(command_line);
command_line->AppendSwitch(::switches::kCreateBrowserOnStartupForTests);
}
};
IN_PROC_BROWSER_TEST_F(BrowserLoginTest, PRE_BrowserActive) {
RegisterUser(AccountId::FromUserEmailGaiaId(kTestUser, kTestUserGaiaId));
EXPECT_EQ(session_manager::SessionState::OOBE,
session_manager::SessionManager::Get()->session_state());
chromeos::StartupUtils::MarkOobeCompleted();
}
IN_PROC_BROWSER_TEST_F(BrowserLoginTest, BrowserActive) {
EXPECT_EQ(session_manager::SessionState::LOGIN_PRIMARY,
session_manager::SessionManager::Get()->session_state());
LoginUser(AccountId::FromUserEmailGaiaId(kTestUser, kTestUserGaiaId));
EXPECT_EQ(session_manager::SessionState::ACTIVE,
session_manager::SessionManager::Get()->session_state());
Browser* browser =
chrome::FindAnyBrowser(ProfileManager::GetActiveUserProfile(), false);
EXPECT_TRUE(browser != NULL);
EXPECT_TRUE(browser->window()->IsActive());
gfx::NativeWindow window = browser->window()->GetNativeWindow();
views::Widget* widget = views::Widget::GetWidgetForNativeWindow(window);
views::FocusManager* focus_manager = widget->GetFocusManager();
EXPECT_TRUE(focus_manager != NULL);
const views::View* focused_view = focus_manager->GetFocusedView();
EXPECT_TRUE(focused_view != NULL);
EXPECT_EQ(VIEW_ID_OMNIBOX, focused_view->id());
}
} // namespace chromeos