Index: chrome/browser/ui/views/new_avatar_menu_button_browsertest.cc |
diff --git a/chrome/browser/ui/views/avatar_menu_button_browsertest.cc b/chrome/browser/ui/views/new_avatar_menu_button_browsertest.cc |
similarity index 52% |
copy from chrome/browser/ui/views/avatar_menu_button_browsertest.cc |
copy to chrome/browser/ui/views/new_avatar_menu_button_browsertest.cc |
index a3c01250caacef69479aa69063f6c0b6ba4e3fa1..83251755f1815d7346882c5990959f84d032b96a 100644 |
--- a/chrome/browser/ui/views/avatar_menu_button_browsertest.cc |
+++ b/chrome/browser/ui/views/new_avatar_menu_button_browsertest.cc |
@@ -2,20 +2,17 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/ui/views/avatar_menu_button.h" |
- |
#include "base/command_line.h" |
#include "base/path_service.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/chrome_notification_types.h" |
-#include "chrome/browser/profiles/avatar_menu.h" |
#include "chrome/browser/profiles/profile_manager.h" |
#include "chrome/browser/profiles/profiles_state.h" |
#include "chrome/browser/ui/browser_list.h" |
-#include "chrome/browser/ui/views/avatar_menu_bubble_view.h" |
+#include "chrome/browser/ui/views/avatar_menu_button.h" |
#include "chrome/browser/ui/views/frame/browser_view.h" |
+#include "chrome/browser/ui/views/new_avatar_button.h" |
#include "chrome/browser/ui/views/profile_chooser_view.h" |
-#include "chrome/browser/ui/views/user_manager_view.h" |
#include "chrome/common/chrome_paths.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/test/base/in_process_browser_test.h" |
@@ -23,53 +20,39 @@ |
#include "chrome/test/base/testing_browser_process.h" |
#include "content/public/test/test_utils.h" |
#include "grit/generated_resources.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/views/controls/button/label_button.h" |
-class AvatarMenuButtonTest : public InProcessBrowserTest, |
- public testing::WithParamInterface<bool> { |
+class NewAvatarMenuButtonTest : public InProcessBrowserTest { |
public: |
- AvatarMenuButtonTest(); |
- virtual ~AvatarMenuButtonTest(); |
+ NewAvatarMenuButtonTest(); |
+ virtual ~NewAvatarMenuButtonTest(); |
protected: |
virtual void SetUp() OVERRIDE; |
- |
- bool UsingNewProfileChooser(); |
+ virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE; |
void CreateTestingProfile(); |
- AvatarMenuButton* GetAvatarMenuButton(); |
void StartAvatarMenu(); |
private: |
- DISALLOW_COPY_AND_ASSIGN(AvatarMenuButtonTest); |
+ DISALLOW_COPY_AND_ASSIGN(NewAvatarMenuButtonTest); |
}; |
-AvatarMenuButtonTest::AvatarMenuButtonTest() { |
+NewAvatarMenuButtonTest::NewAvatarMenuButtonTest() { |
} |
-AvatarMenuButtonTest::~AvatarMenuButtonTest() { |
+NewAvatarMenuButtonTest::~NewAvatarMenuButtonTest() { |
} |
-void AvatarMenuButtonTest::SetUp() { |
- if (GetParam()) { |
- if (!UsingNewProfileChooser()) { |
- CommandLine::ForCurrentProcess()->AppendSwitch( |
- switches::kNewProfileManagement); |
- } |
- DCHECK(UsingNewProfileChooser()); |
- } else { |
- DCHECK(!UsingNewProfileChooser()); |
- } |
- |
+void NewAvatarMenuButtonTest::SetUp() { |
InProcessBrowserTest::SetUp(); |
+ DCHECK(CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kNewProfileManagement)); |
} |
-bool AvatarMenuButtonTest::UsingNewProfileChooser() { |
- return CommandLine::ForCurrentProcess()->HasSwitch( |
- switches::kNewProfileManagement); |
+void NewAvatarMenuButtonTest::SetUpCommandLine(CommandLine* command_line) { |
+ command_line->AppendSwitch(switches::kNewProfileManagement); |
} |
-void AvatarMenuButtonTest::CreateTestingProfile() { |
+void NewAvatarMenuButtonTest::CreateTestingProfile() { |
ProfileManager* profile_manager = g_browser_process->profile_manager(); |
EXPECT_EQ(1u, profile_manager->GetNumberOfProfiles()); |
@@ -88,60 +71,29 @@ void AvatarMenuButtonTest::CreateTestingProfile() { |
EXPECT_EQ(2u, profile_manager->GetNumberOfProfiles()); |
} |
-AvatarMenuButton* AvatarMenuButtonTest::GetAvatarMenuButton() { |
+void NewAvatarMenuButtonTest::StartAvatarMenu() { |
BrowserView* browser_view = reinterpret_cast<BrowserView*>( |
browser()->window()); |
- return browser_view->frame()->GetAvatarMenuButton(); |
-} |
-void AvatarMenuButtonTest::StartAvatarMenu() { |
- AvatarMenuButton* button = GetAvatarMenuButton(); |
+ // Ensure that the avatar icon button is not also showing. |
+ NewAvatarButton* button = browser_view->frame()->GetNewAvatarMenuButton(); |
ASSERT_TRUE(button); |
+ ASSERT_FALSE(browser_view->frame()->GetAvatarMenuButton()); |
- AvatarMenuBubbleView::set_close_on_deactivate(false); |
ProfileChooserView::set_close_on_deactivate(false); |
- static_cast<views::MenuButtonListener*>(button)->OnMenuButtonClicked( |
- NULL, gfx::Point()); |
- base::MessageLoop::current()->RunUntilIdle(); |
- EXPECT_NE(AvatarMenuBubbleView::IsShowing(), |
- ProfileChooserView::IsShowing()); |
-} |
- |
-IN_PROC_BROWSER_TEST_P(AvatarMenuButtonTest, HideOnSecondClick) { |
-#if defined(OS_WIN) && defined(USE_ASH) |
- // Disable this test in Metro+Ash for now (http://crbug.com/262796). |
- if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) |
- return; |
-#endif |
- |
- if (!profiles::IsMultipleProfilesEnabled() || |
- UsingNewProfileChooser()) { |
- return; |
- } |
- |
- CreateTestingProfile(); |
- StartAvatarMenu(); |
- |
- // Verify that clicking again doesn't reshow it. |
- AvatarMenuButton* button = GetAvatarMenuButton(); |
- static_cast<views::MenuButtonListener*>(button)->OnMenuButtonClicked( |
- NULL, gfx::Point()); |
- // Hide the bubble manually. In the browser this would normally happen during |
- // the event processing. |
- AvatarMenuBubbleView::Hide(); |
+ ui::MouseEvent mouse_ev(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), 0); |
+ button->NotifyClick(mouse_ev); |
base::MessageLoop::current()->RunUntilIdle(); |
- EXPECT_FALSE(AvatarMenuBubbleView::IsShowing()); |
- EXPECT_FALSE(ProfileChooserView::IsShowing()); |
+ EXPECT_TRUE(ProfileChooserView::IsShowing()); |
} |
-IN_PROC_BROWSER_TEST_P(AvatarMenuButtonTest, NewSignOut) { |
- if (!profiles::IsMultipleProfilesEnabled() || |
- !UsingNewProfileChooser()) { |
+IN_PROC_BROWSER_TEST_F(NewAvatarMenuButtonTest, SignOut) { |
+ // If multiprofile mode is not enabled, you can't switch between profiles. |
+ if (!profiles::IsMultipleProfilesEnabled()) |
return; |
- } |
CreateTestingProfile(); |
- StartAvatarMenu(); |
+ ASSERT_NO_FATAL_FAILURE(StartAvatarMenu()); |
BrowserList* browser_list = |
BrowserList::GetInstance(chrome::GetActiveDesktop()); |
@@ -169,6 +121,3 @@ IN_PROC_BROWSER_TEST_P(AvatarMenuButtonTest, NewSignOut) { |
window_close_observer.Wait(); // Rely on test timeout for failure indication. |
EXPECT_TRUE(browser_list->empty()); |
} |
- |
-INSTANTIATE_TEST_CASE_P(Old, AvatarMenuButtonTest, testing::Values(false)); |
-INSTANTIATE_TEST_CASE_P(New, AvatarMenuButtonTest, testing::Values(true)); |