Chromium Code Reviews| Index: chrome/browser/ui/views/sync/one_click_signin_bubble_view_browsertest.cc |
| diff --git a/chrome/browser/ui/views/sync/one_click_signin_bubble_view_browsertest.cc b/chrome/browser/ui/views/sync/one_click_signin_bubble_view_browsertest.cc |
| index f9541f5c3e8454fb74ea50082962b94584ef1d3b..9ba704b8fb420af04cdca58a9746e8392aaf57f2 100644 |
| --- a/chrome/browser/ui/views/sync/one_click_signin_bubble_view_browsertest.cc |
| +++ b/chrome/browser/ui/views/sync/one_click_signin_bubble_view_browsertest.cc |
| @@ -13,26 +13,38 @@ |
| #include "ui/views/controls/button/text_button.h" |
| #include "ui/views/events/event.h" |
| -namespace { |
| +class OneClickSigninBubbleViewBrowserTest : public InProcessBrowserTest { |
| + public: |
| + OneClickSigninBubbleViewBrowserTest() |
| + : on_start_sync_called_(false), |
| + mode_(OneClickSigninSyncStarter::CONFIGURE_SYNC_FIRST) { |
| + } |
| -void OnClickLink(Browser* browser) { |
| - browser->AddSelectedTabWithURL(GURL("http://www.example.com"), |
| - content::PAGE_TRANSITION_AUTO_BOOKMARK); |
| -} |
| + OneClickSigninBubbleView* ShowOneClickSigninBubble() { |
| + browser()->window()->ShowOneClickSigninBubble( |
| + base::Bind(&OneClickSigninBubbleViewBrowserTest::OnStartSync, this)); |
| -} // namespace |
| + ui_test_utils::RunAllPendingInMessageLoop(); |
| + EXPECT_TRUE(OneClickSigninBubbleView::IsShowing()); |
| -class OneClickSigninBubbleViewBrowserTest : public InProcessBrowserTest { |
| - public: |
| - OneClickSigninBubbleViewBrowserTest() {} |
| + OneClickSigninBubbleView* view = |
| + OneClickSigninBubbleView::view_for_testing(); |
| + EXPECT_TRUE(view != NULL); |
|
Peter Kasting
2012/05/24 22:25:18
Tiny nit: EXPECT_FALSE(view == NULL) always felt l
Roger Tawa OOO till Jul 10th
2012/05/25 16:04:08
6 of one, half a dozen of another...
|
| - void ShowOneClickSigninBubble() { |
| - base::Closure on_click_link_callback = |
| - base::Bind(&OnClickLink, base::Unretained(browser())); |
| - browser()->window()->ShowOneClickSigninBubble(on_click_link_callback, |
| - on_click_link_callback); |
| + // Simulate pressing a link in the bubble. This should open a new tab. |
| + view->set_message_loop_for_testing(MessageLoop::current()); |
| + return view; |
| } |
| + void OnStartSync(OneClickSigninSyncStarter::StartSyncMode mode) { |
| + on_start_sync_called_ = true; |
| + mode_ = mode; |
| + } |
| + |
| + protected: |
| + bool on_start_sync_called_; |
| + OneClickSigninSyncStarter::StartSyncMode mode_; |
| + |
| private: |
| DISALLOW_COPY_AND_ASSIGN(OneClickSigninBubbleViewBrowserTest); |
| }; |
| @@ -44,51 +56,85 @@ IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, Show) { |
| OneClickSigninBubbleView::Hide(); |
| ui_test_utils::RunAllPendingInMessageLoop(); |
| + EXPECT_TRUE(on_start_sync_called_); |
| + EXPECT_EQ(OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS, mode_); |
| EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| } |
| -IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, CloseButton) { |
| - int initial_tab_count = browser()->tab_count(); |
| - |
| - ShowOneClickSigninBubble(); |
| - ui_test_utils::RunAllPendingInMessageLoop(); |
| - EXPECT_TRUE(OneClickSigninBubbleView::IsShowing()); |
| - |
| - OneClickSigninBubbleView* view = OneClickSigninBubbleView::view_for_testing(); |
| - EXPECT_TRUE(view != NULL); |
| - EXPECT_EQ(initial_tab_count, browser()->tab_count()); |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, OkButton) { |
| + OneClickSigninBubbleView* view = ShowOneClickSigninBubble(); |
| // Simulate pressing the OK button. Set the message loop in the bubble |
| // view so that it can be quit once the bubble is hidden. |
| - view->set_message_loop_for_testing(MessageLoop::current()); |
| views::ButtonListener* listener = view; |
| - views::MouseEvent event(ui::ET_MOUSE_PRESSED, 0, 0, 0); |
| - listener->ButtonPressed(view->close_button_for_testing(), event); |
| + const views::MouseEvent event(ui::ET_MOUSE_PRESSED, 0, 0, 0); |
| + listener->ButtonPressed(view->ok_button_for_testing(), event); |
| // View should no longer be showing. The message loop will exit once the |
| // fade animation of the bubble is done. |
| ui_test_utils::RunMessageLoop(); |
| + EXPECT_TRUE(on_start_sync_called_); |
| + EXPECT_EQ(OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS, mode_); |
| EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| - EXPECT_EQ(initial_tab_count, browser()->tab_count()); |
| } |
| -IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, ViewLink) { |
| - int initial_tab_count = browser()->tab_count(); |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, UndoButton) { |
| + OneClickSigninBubbleView* view = ShowOneClickSigninBubble(); |
| - ShowOneClickSigninBubble(); |
| - ui_test_utils::RunAllPendingInMessageLoop(); |
| - EXPECT_TRUE(OneClickSigninBubbleView::IsShowing()); |
| + // Simulate pressing the undo button. Set the message loop in the bubble |
| + // view so that it can be quit once the bubble is hidden. |
| + views::ButtonListener* listener = view; |
| + const views::MouseEvent event(ui::ET_MOUSE_PRESSED, 0, 0, 0); |
| + listener->ButtonPressed(view->undo_button_for_testing(), event); |
| - OneClickSigninBubbleView* view = OneClickSigninBubbleView::view_for_testing(); |
| - EXPECT_TRUE(view != NULL); |
| - EXPECT_EQ(initial_tab_count, browser()->tab_count()); |
| + // View should no longer be showing. The message loop will exit once the |
| + // fade animation of the bubble is done. |
| + ui_test_utils::RunMessageLoop(); |
| + EXPECT_FALSE(on_start_sync_called_); |
| + EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, AdvancedLink) { |
| + OneClickSigninBubbleView* view = ShowOneClickSigninBubble(); |
| // Simulate pressing a link in the bubble. This should open a new tab. |
| views::LinkListener* listener = view; |
| - listener->LinkClicked(view->learn_more_link_for_testing(), 0); |
| + listener->LinkClicked(view->advanced_link_for_testing(), 0); |
| // View should no longer be showing and a new tab should be opened. |
| - ui_test_utils::RunAllPendingInMessageLoop(); |
| + ui_test_utils::RunMessageLoop(); |
| + EXPECT_TRUE(on_start_sync_called_); |
| + EXPECT_EQ(OneClickSigninSyncStarter::CONFIGURE_SYNC_FIRST, mode_); |
| + EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, PressEnterKey) { |
| + OneClickSigninBubbleView* one_click_view = ShowOneClickSigninBubble(); |
| + |
| + // Simulate pressing the Enter key. |
| + views::View* view = one_click_view; |
| + const ui::Accelerator accelerator(ui::VKEY_RETURN, 0); |
| + view->AcceleratorPressed(accelerator); |
| + |
| + // View should no longer be showing. The message loop will exit once the |
| + // fade animation of the bubble is done. |
| + ui_test_utils::RunMessageLoop(); |
| + EXPECT_TRUE(on_start_sync_called_); |
| + EXPECT_EQ(OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS, mode_); |
| + EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, PressEscapeKey) { |
| + OneClickSigninBubbleView* one_click_view = ShowOneClickSigninBubble(); |
| + |
| + // Simulate pressing the Escape key. |
| + views::View* view = one_click_view; |
| + const ui::Accelerator accelerator(ui::VKEY_ESCAPE, 0); |
| + view->AcceleratorPressed(accelerator); |
| + |
| + // View should no longer be showing. The message loop will exit once the |
| + // fade animation of the bubble is done. |
| + ui_test_utils::RunMessageLoop(); |
| + EXPECT_FALSE(on_start_sync_called_); |
| EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| - EXPECT_EQ(initial_tab_count + 1, browser()->tab_count()); |
| } |