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 98f22ef993588fa0e000f94307562180654fe774..4700166c9572bddedbdf8783edb14c70bfa435e1 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 |
| @@ -7,6 +7,7 @@ |
| #include "base/bind.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_window.h" |
| +#include "chrome/browser/ui/tabs/tab_strip_model.h" |
| #include "chrome/test/base/in_process_browser_test.h" |
| #include "chrome/test/base/ui_test_utils.h" |
| #include "content/public/common/page_transition_types.h" |
| @@ -19,20 +20,17 @@ class OneClickSigninBubbleViewBrowserTest : public InProcessBrowserTest { |
| mode_(OneClickSigninSyncStarter::CONFIGURE_SYNC_FIRST) { |
| } |
| - OneClickSigninBubbleView* ShowOneClickSigninBubble() { |
| + OneClickSigninBubbleView* ShowOneClickSigninBubble( |
| + BrowserWindow::OneClickSigninBubbleType bubble_type) { |
| browser()->window()->ShowOneClickSigninBubble( |
| - BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE, |
| + bubble_type, |
| + string16(), |
| string16(), |
| base::Bind(&OneClickSigninBubbleViewBrowserTest::OnStartSync, this)); |
| - content::RunAllPendingInMessageLoop(); |
| - EXPECT_TRUE(OneClickSigninBubbleView::IsShowing()); |
| - |
| OneClickSigninBubbleView* view = |
| OneClickSigninBubbleView::view_for_testing(); |
| EXPECT_TRUE(view != NULL); |
| - |
| - // Simulate pressing a link in the bubble. This should open a new tab. |
| view->message_loop_for_testing_ = MessageLoop::current(); |
| return view; |
| } |
| @@ -50,22 +48,42 @@ class OneClickSigninBubbleViewBrowserTest : public InProcessBrowserTest { |
| DISALLOW_COPY_AND_ASSIGN(OneClickSigninBubbleViewBrowserTest); |
| }; |
| -// Disabled. See http://crbug.com/132348 |
| -IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, DISABLED_Show) { |
| - ShowOneClickSigninBubble(); |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, ShowBubble) { |
|
M-A Ruel
2013/05/21 17:48:25
I saw this test fail on a try job for no obvious r
|
| + ShowOneClickSigninBubble(BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE); |
| content::RunAllPendingInMessageLoop(); |
| EXPECT_TRUE(OneClickSigninBubbleView::IsShowing()); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, ShowDialog) { |
| + ShowOneClickSigninBubble( |
| + BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_MODAL_DIALOG); |
| + content::RunAllPendingInMessageLoop(); |
| + EXPECT_TRUE(OneClickSigninBubbleView::IsShowing()); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, HideBubble) { |
| + ShowOneClickSigninBubble(BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE); |
| + |
| + OneClickSigninBubbleView::Hide(); |
| + content::RunAllPendingInMessageLoop(); |
| + EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, HideDialog) { |
| + ShowOneClickSigninBubble( |
| + BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_MODAL_DIALOG); |
| OneClickSigninBubbleView::Hide(); |
| content::RunAllPendingInMessageLoop(); |
| + EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| EXPECT_TRUE(on_start_sync_called_); |
| EXPECT_EQ(OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS, mode_); |
| - EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| } |
| -// Disabled. See http://crbug.com/132348 |
| -IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, DISABLED_OkButton) { |
| - OneClickSigninBubbleView* view = ShowOneClickSigninBubble(); |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, BubbleOkButton) { |
| + OneClickSigninBubbleView* view = |
| + ShowOneClickSigninBubble( |
| + BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE); |
| // Simulate pressing the OK button. Set the message loop in the bubble |
| // view so that it can be quit once the bubble is hidden. |
| @@ -77,16 +95,34 @@ IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, DISABLED_OkButton) { |
| // View should no longer be showing. The message loop will exit once the |
| // fade animation of the bubble is done. |
| - content::RunMessageLoop(); |
| + content::RunAllPendingInMessageLoop(); |
| + EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, DialogOkButton) { |
| + OneClickSigninBubbleView* view = ShowOneClickSigninBubble( |
| + BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_MODAL_DIALOG); |
| + |
| + // Simulate pressing the OK 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 ui::MouseEvent event(ui::ET_MOUSE_PRESSED, |
| + gfx::Point(), gfx::Point(), |
| + 0); |
| + listener->ButtonPressed(view->ok_button_, event); |
| + |
| + // View should no longer be showing and sync should start |
| + // The message loop will exit once the fade animation of the dialog is done. |
| + content::RunAllPendingInMessageLoop(); |
| + EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| EXPECT_TRUE(on_start_sync_called_); |
| EXPECT_EQ(OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS, mode_); |
| - EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| } |
| -// Disabled. See http://crbug.com/132348 |
| IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, |
| - DISABLED_UndoButton) { |
| - OneClickSigninBubbleView* view = ShowOneClickSigninBubble(); |
| + DialogUndoButton) { |
| + OneClickSigninBubbleView* view = ShowOneClickSigninBubble( |
| + BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_MODAL_DIALOG); |
| // Simulate pressing the undo button. Set the message loop in the bubble |
| // view so that it can be quit once the bubble is hidden. |
| @@ -98,32 +134,87 @@ IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, |
| // View should no longer be showing. The message loop will exit once the |
| // fade animation of the bubble is done. |
| - content::RunMessageLoop(); |
| + content::RunAllPendingInMessageLoop(); |
| + EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| EXPECT_TRUE(on_start_sync_called_); |
| EXPECT_EQ(OneClickSigninSyncStarter::UNDO_SYNC, mode_); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, |
| + BubbleAdvancedLink) { |
| + int starting_tab_count = browser()->tab_strip_model()->count(); |
| + |
| + OneClickSigninBubbleView* view = ShowOneClickSigninBubble( |
| + BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE); |
| + |
| + // Simulate pressing a link in the bubble.This should replace the current tab. |
| + views::LinkListener* listener = view; |
| + listener->LinkClicked(view->advanced_link_, 0); |
| + |
| + // View should no longer be showing and the current tab should be replaced. |
| + content::RunAllPendingInMessageLoop(); |
| EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| + int tab_count = browser()->tab_strip_model()->count(); |
| + EXPECT_EQ(starting_tab_count, tab_count); |
| } |
| -// Disabled. See http://crbug.com/132348 |
| IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, |
| - DISABLED_AdvancedLink) { |
| - OneClickSigninBubbleView* view = ShowOneClickSigninBubble(); |
| + DialogAdvancedLink) { |
| + int starting_tab_count = browser()->tab_strip_model()->count(); |
| + |
| + OneClickSigninBubbleView* view = ShowOneClickSigninBubble( |
| + BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_MODAL_DIALOG); |
| // Simulate pressing a link in the bubble. This should open a new tab. |
| views::LinkListener* listener = view; |
| listener->LinkClicked(view->advanced_link_, 0); |
| // View should no longer be showing and a new tab should be opened. |
| - content::RunMessageLoop(); |
| + content::RunAllPendingInMessageLoop(); |
| EXPECT_TRUE(on_start_sync_called_); |
| EXPECT_EQ(OneClickSigninSyncStarter::CONFIGURE_SYNC_FIRST, mode_); |
| EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| + int tab_count = browser()->tab_strip_model()->count(); |
| + EXPECT_EQ(starting_tab_count, tab_count); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, |
| + BubbleLearnMoreLink) { |
| + int starting_tab_count = browser()->tab_strip_model()->count(); |
| + |
| + OneClickSigninBubbleView* view = ShowOneClickSigninBubble( |
| + BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE); |
| + |
| + // View should no longer be showing and a new tab should be added. |
| + views::LinkListener* listener = view; |
| + listener->LinkClicked(view->learn_more_link_, 0); |
| + |
| + content::RunAllPendingInMessageLoop(); |
| + EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| + int tab_count = browser()->tab_strip_model()->count(); |
| + EXPECT_EQ(starting_tab_count + 1, tab_count); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, |
| + BubblePressEnterKey) { |
| + OneClickSigninBubbleView* one_click_view = ShowOneClickSigninBubble( |
| + BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE); |
| + |
| + // 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. |
| + content::RunAllPendingInMessageLoop(); |
| + EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| } |
| -// Disabled. See http://crbug.com/132348 |
| IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, |
| - DISABLED_PressEnterKey) { |
| - OneClickSigninBubbleView* one_click_view = ShowOneClickSigninBubble(); |
| + DialogPressEnterKey) { |
| + OneClickSigninBubbleView* one_click_view = ShowOneClickSigninBubble( |
| + BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_MODAL_DIALOG); |
| // Simulate pressing the Enter key. |
| views::View* view = one_click_view; |
| @@ -132,16 +223,32 @@ IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, |
| // View should no longer be showing. The message loop will exit once the |
| // fade animation of the bubble is done. |
| - content::RunMessageLoop(); |
| + content::RunAllPendingInMessageLoop(); |
| + EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| EXPECT_TRUE(on_start_sync_called_); |
| EXPECT_EQ(OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS, mode_); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, |
| + BubblePressEscapeKey) { |
| + OneClickSigninBubbleView* one_click_view = ShowOneClickSigninBubble( |
| + BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE); |
| + |
| + // 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. |
| + content::RunAllPendingInMessageLoop(); |
| EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| } |
| -// Disabled. See http://crbug.com/132348 |
| IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, |
| - DISABLED_PressEscapeKey) { |
| - OneClickSigninBubbleView* one_click_view = ShowOneClickSigninBubble(); |
| + DialogPressEscapeKey) { |
| + OneClickSigninBubbleView* one_click_view = ShowOneClickSigninBubble( |
| + BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_MODAL_DIALOG); |
| // Simulate pressing the Escape key. |
| views::View* view = one_click_view; |
| @@ -150,7 +257,7 @@ IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, |
| // View should no longer be showing. The message loop will exit once the |
| // fade animation of the bubble is done. |
| - content::RunMessageLoop(); |
| - EXPECT_FALSE(on_start_sync_called_); |
| + content::RunAllPendingInMessageLoop(); |
| EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| + EXPECT_FALSE(on_start_sync_called_); |
| } |