user_manager_ui_browsertest.cc revision 3551c9c881056c480085172ff9840cab31610854
13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 23551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 33551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// found in the LICENSE file. 43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "base/command_line.h" 53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chrome/browser/profiles/profile_manager.h" 63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chrome/browser/ui/browser.h" 73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chrome/browser/ui/tabs/tab_strip_model.h" 83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chrome/common/chrome_switches.h" 93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chrome/common/url_constants.h" 103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chrome/test/base/in_process_browser_test.h" 113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chrome/test/base/testing_browser_process.h" 123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chrome/test/base/ui_test_utils.h" 133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "content/public/browser/web_contents.h" 143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "content/public/test/browser_test_utils.h" 153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "grit/generated_resources.h" 163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "ui/base/l10n/l10n_util.h" 173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)namespace { 193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)const GURL& url = GURL(chrome::kChromeUIUserManagerURL); 203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)} // namespace 213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class UserManagerUIBrowserTest : public InProcessBrowserTest, 233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) public testing::WithParamInterface<bool> { 243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) public: 253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) UserManagerUIBrowserTest() {} 263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) protected: 283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual void SetUp() OVERRIDE { 293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) InProcessBrowserTest::SetUp(); 303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) DCHECK(CommandLine::ForCurrentProcess()->HasSwitch( 313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) switches::kNewProfileManagement)); 323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) } 333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) command_line->AppendSwitch(switches::kNewProfileManagement); 363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) } 373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}; 383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(UserManagerUIBrowserTest, PageLoads) { 403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(browser(), url, 1); 413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) content::WebContents* web_contents = 423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) browser()->tab_strip_model()->GetActiveWebContents(); 433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) string16 title = web_contents->GetTitle(); 453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) EXPECT_EQ(l10n_util::GetStringUTF16(IDS_USER_MANAGER_SCREEN_TITLE), title); 463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // If the page has loaded correctly, then there should be an account picker. 483551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) int num_account_pickers = -1; 493551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ASSERT_TRUE(content::ExecuteScriptAndExtractInt( 503551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) web_contents, 513551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) "domAutomationController.send(" 523551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) "document.getElementsByClassName('account-picker').length)", 533551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) &num_account_pickers)); 543551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) EXPECT_EQ(1, num_account_pickers); 553551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 563551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) int num_pods = -1; 573551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ASSERT_TRUE(content::ExecuteScriptAndExtractInt( 583551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) web_contents, 593551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) "domAutomationController.send(" 603551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) "parseInt(document.getElementById('pod-row').getAttribute('ncolumns')))", 613551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) &num_pods)); 623551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 633551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // There should be one user pod for each profile. 643551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ProfileManager* profile_manager = g_browser_process->profile_manager(); 653551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) EXPECT_EQ(num_pods, static_cast<int>(profile_manager->GetNumberOfProfiles())); 663551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)} 67