Chromium Code Reviews| Index: chrome/browser/ui/views/profiles/profile_chooser_view_browsertest.cc |
| diff --git a/chrome/browser/ui/views/profiles/profile_chooser_view_browsertest.cc b/chrome/browser/ui/views/profiles/profile_chooser_view_browsertest.cc |
| index 00c34db86403cf1327df2c1fd5389adb8018eb15..ae9703848ae9fb6fc53f738142d294824cdf153a 100644 |
| --- a/chrome/browser/ui/views/profiles/profile_chooser_view_browsertest.cc |
| +++ b/chrome/browser/ui/views/profiles/profile_chooser_view_browsertest.cc |
| @@ -15,6 +15,7 @@ |
| #include "chrome/browser/profiles/profile_manager.h" |
| #include "chrome/browser/profiles/profile_metrics.h" |
| #include "chrome/browser/profiles/profiles_state.h" |
| +#include "chrome/browser/ui/browser_commands.h" |
| #include "chrome/browser/ui/browser_list.h" |
| #include "chrome/browser/ui/user_manager.h" |
| #include "chrome/browser/ui/views/frame/browser_view.h" |
| @@ -50,6 +51,26 @@ Profile* CreateTestingProfile(const std::string& profile_name) { |
| return profile; |
| } |
| +Profile* CreateProfileOutsideUserDataDir() { |
| + base::FilePath path; |
| + if (!base::CreateNewTempDirectory(base::FilePath::StringType(), &path)) |
| + NOTREACHED() << "Could not create directory at " << path.MaybeAsASCII(); |
| + |
| + ProfileManager* profile_manager = g_browser_process->profile_manager(); |
| + Profile* profile = |
| + Profile::CreateProfile(path, NULL, Profile::CREATE_MODE_SYNCHRONOUS); |
| + profile_manager->RegisterTestingProfile(profile, true, false); |
| + return profile; |
| +} |
| + |
| +void CloseBrowser(Browser* browser) { |
| + content::WindowedNotificationObserver close_observer( |
| + chrome::NOTIFICATION_BROWSER_CLOSED, |
| + content::Source<Browser>(browser)); |
| + chrome::CloseWindow(browser); |
| + close_observer.Wait(); |
| +} |
| + |
| // Set up the profiles to enable Lock. Takes as parameter a profile that will be |
| // signed in, and also creates a supervised user (necessary for lock). |
| void SetupProfilesForLock(Profile* signed_in) { |
| @@ -184,6 +205,20 @@ class ProfileChooserViewExtensionsTest : public ExtensionBrowserTest { |
| DISALLOW_COPY_AND_ASSIGN(ProfileChooserViewExtensionsTest); |
| }; |
| +IN_PROC_BROWSER_TEST_F(ProfileChooserViewExtensionsTest, |
| + ProfileChooserOnMultipleBrowsers) { |
| + // Test that the profile chooser view should be deleted when the browser is |
| + // deleted. Even if the profile is not in user_data_dir. |
|
msw
2015/09/10 23:42:00
Why does the profile's location matter for this te
|
| + Profile* new_profile = CreateProfileOutsideUserDataDir(); |
| + Browser* browser = CreateBrowser(new_profile); |
| + browser->window()->ShowAvatarBubbleFromAvatarButton( |
| + BrowserWindow::AVATAR_BUBBLE_MODE_CONFIRM_SIGNIN, |
| + signin::ManageAccountsParams()); |
| + EXPECT_TRUE(ProfileChooserView::IsShowing()); |
| + CloseBrowser(browser); |
| + ASSERT_FALSE(ProfileChooserView::IsShowing()) << "Bubble was not deleted"; |
| +} |
| + |
| IN_PROC_BROWSER_TEST_F(ProfileChooserViewExtensionsTest, SigninButtonHasFocus) { |
| ASSERT_TRUE(profiles::IsMultipleProfilesEnabled()); |
| ASSERT_NO_FATAL_FAILURE(OpenProfileChooserView(browser())); |