| 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));
 | 
| 
 |