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 3// found in the LICENSE file. 4 5#include "ash/session/session_state_delegate.h" 6#include "ash/shell.h" 7#include "chrome/browser/chromeos/login/login_manager_test.h" 8#include "chrome/browser/chromeos/login/startup_utils.h" 9#include "chrome/browser/profiles/profile_manager.h" 10#include "chrome/browser/ui/browser.h" 11#include "chrome/browser/ui/browser_finder.h" 12#include "chrome/browser/ui/browser_window.h" 13#include "chrome/browser/ui/browser_window_testing_views.h" 14#include "chrome/browser/ui/view_ids.h" 15#include "chrome/common/chrome_switches.h" 16#include "testing/gtest/include/gtest/gtest.h" 17#include "ui/views/focus/focus_manager.h" 18#include "ui/views/view.h" 19 20namespace chromeos { 21 22namespace { 23 24const char kTestUser[] = "test-user@gmail.com"; 25 26} // anonymous namespace 27 28class BrowserLoginTest : public chromeos::LoginManagerTest { 29 public: 30 BrowserLoginTest() : LoginManagerTest(true) {} 31 virtual ~BrowserLoginTest() {} 32 33 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 34 LoginManagerTest::SetUpCommandLine(command_line); 35 command_line->AppendSwitch(::switches::kCreateBrowserOnStartupForTests); 36 } 37}; 38 39IN_PROC_BROWSER_TEST_F(BrowserLoginTest, PRE_BrowserActive) { 40 RegisterUser(kTestUser); 41 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_LOGIN_PRIMARY, 42 ash::Shell::GetInstance()->session_state_delegate()-> 43 GetSessionState()); 44 chromeos::StartupUtils::MarkOobeCompleted(); 45} 46 47IN_PROC_BROWSER_TEST_F(BrowserLoginTest, BrowserActive) { 48 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_LOGIN_PRIMARY, 49 ash::Shell::GetInstance()->session_state_delegate()-> 50 GetSessionState()); 51 LoginUser(kTestUser); 52 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_ACTIVE, 53 ash::Shell::GetInstance()->session_state_delegate()-> 54 GetSessionState()); 55 56 Browser* browser = FindAnyBrowser(ProfileManager::GetActiveUserProfile(), 57 false, 58 chrome::HOST_DESKTOP_TYPE_ASH); 59 EXPECT_TRUE(browser != NULL); 60 EXPECT_TRUE(browser->window()->IsActive()); 61 62 views::FocusManager* focus_manager = browser->window()-> 63 GetBrowserWindowTesting()->GetTabContentsContainerView()-> 64 GetFocusManager(); 65 EXPECT_TRUE(focus_manager != NULL); 66 67 const views::View* focused_view = focus_manager->GetFocusedView(); 68 EXPECT_TRUE(focused_view != NULL); 69 EXPECT_EQ(VIEW_ID_OMNIBOX, focused_view->id()); 70} 71 72} // namespace chromeos 73