Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/bind.h" | |
| 5 #include "chrome/browser/ui/browser.h" | 6 #include "chrome/browser/ui/browser.h" |
| 6 #include "chrome/browser/ui/browser_window.h" | 7 #include "chrome/browser/ui/browser_window.h" |
| 7 #include "chrome/browser/ui/views/sync/one_click_signin_bubble_view.h" | 8 #include "chrome/browser/ui/views/sync/one_click_signin_bubble_view.h" |
|
sky
2012/03/28 14:49:17
nit: this should be the first include.
akalin
2012/03/28 15:19:21
Done.
| |
| 8 #include "chrome/test/base/in_process_browser_test.h" | 9 #include "chrome/test/base/in_process_browser_test.h" |
| 9 #include "chrome/test/base/ui_test_utils.h" | 10 #include "chrome/test/base/ui_test_utils.h" |
| 11 #include "content/public/common/page_transition_types.h" | |
| 10 #include "ui/views/controls/button/text_button.h" | 12 #include "ui/views/controls/button/text_button.h" |
| 11 #include "ui/views/events/event.h" | 13 #include "ui/views/events/event.h" |
| 12 | 14 |
| 15 namespace { | |
| 16 | |
| 17 void OnClickLink(Browser* browser) { | |
| 18 browser->AddSelectedTabWithURL(GURL("http://www.example.com"), | |
| 19 content::PAGE_TRANSITION_AUTO_BOOKMARK); | |
| 20 } | |
| 21 | |
| 22 } // namespace | |
| 23 | |
| 13 class OneClickSigninBubbleViewBrowserTest : public InProcessBrowserTest { | 24 class OneClickSigninBubbleViewBrowserTest : public InProcessBrowserTest { |
| 14 public: | 25 public: |
| 15 OneClickSigninBubbleViewBrowserTest() : InProcessBrowserTest() { } | 26 OneClickSigninBubbleViewBrowserTest() {} |
| 27 | |
| 28 void ShowOneClickSigninBubble() { | |
| 29 base::Closure on_click_link_callback = | |
| 30 base::Bind(&OnClickLink, base::Unretained(browser())); | |
| 31 browser()->window()->ShowOneClickSigninBubble(on_click_link_callback, | |
| 32 on_click_link_callback); | |
| 33 } | |
| 16 | 34 |
| 17 private: | 35 private: |
| 18 DISALLOW_COPY_AND_ASSIGN(OneClickSigninBubbleViewBrowserTest); | 36 DISALLOW_COPY_AND_ASSIGN(OneClickSigninBubbleViewBrowserTest); |
| 19 }; | 37 }; |
| 20 | 38 |
| 21 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, Show) { | 39 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, Show) { |
| 22 browser()->window()->ShowOneClickSigninBubble(); | 40 ShowOneClickSigninBubble(); |
| 23 ui_test_utils::RunAllPendingInMessageLoop(); | 41 ui_test_utils::RunAllPendingInMessageLoop(); |
| 24 EXPECT_TRUE(OneClickSigninBubbleView::IsShowing()); | 42 EXPECT_TRUE(OneClickSigninBubbleView::IsShowing()); |
| 25 | 43 |
| 26 OneClickSigninBubbleView::Hide(); | 44 OneClickSigninBubbleView::Hide(); |
| 27 ui_test_utils::RunAllPendingInMessageLoop(); | 45 ui_test_utils::RunAllPendingInMessageLoop(); |
| 28 EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); | 46 EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| 29 } | 47 } |
| 30 | 48 |
| 31 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, CloseButton) { | 49 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, CloseButton) { |
| 32 int initial_tab_count = browser()->tab_count(); | 50 int initial_tab_count = browser()->tab_count(); |
| 33 | 51 |
| 34 browser()->window()->ShowOneClickSigninBubble(); | 52 ShowOneClickSigninBubble(); |
| 35 ui_test_utils::RunAllPendingInMessageLoop(); | 53 ui_test_utils::RunAllPendingInMessageLoop(); |
| 36 EXPECT_TRUE(OneClickSigninBubbleView::IsShowing()); | 54 EXPECT_TRUE(OneClickSigninBubbleView::IsShowing()); |
| 37 | 55 |
| 38 OneClickSigninBubbleView* view = OneClickSigninBubbleView::view_for_testing(); | 56 OneClickSigninBubbleView* view = OneClickSigninBubbleView::view_for_testing(); |
| 39 EXPECT_TRUE(view != NULL); | 57 EXPECT_TRUE(view != NULL); |
| 40 EXPECT_EQ(initial_tab_count, browser()->tab_count()); | 58 EXPECT_EQ(initial_tab_count, browser()->tab_count()); |
| 41 | 59 |
| 42 // Simulate pressing the OK button. Set the message loop in the bubble | 60 // Simulate pressing the OK button. Set the message loop in the bubble |
| 43 // view so that it can be quit once the bubble is hidden. | 61 // view so that it can be quit once the bubble is hidden. |
| 44 view->set_message_loop_for_testing(MessageLoop::current()); | 62 view->set_message_loop_for_testing(MessageLoop::current()); |
| 45 views::ButtonListener* listener = view; | 63 views::ButtonListener* listener = view; |
| 46 views::MouseEvent event(ui::ET_MOUSE_PRESSED, 0, 0, 0); | 64 views::MouseEvent event(ui::ET_MOUSE_PRESSED, 0, 0, 0); |
| 47 listener->ButtonPressed(view->close_button_for_testing(), event); | 65 listener->ButtonPressed(view->close_button_for_testing(), event); |
| 48 | 66 |
| 49 // View should no longer be showing. The message loop will exit once the | 67 // View should no longer be showing. The message loop will exit once the |
| 50 // fade animation of the bubble is done. | 68 // fade animation of the bubble is done. |
| 51 ui_test_utils::RunMessageLoop(); | 69 ui_test_utils::RunMessageLoop(); |
| 52 EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); | 70 EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| 53 EXPECT_EQ(initial_tab_count, browser()->tab_count()); | 71 EXPECT_EQ(initial_tab_count, browser()->tab_count()); |
| 54 } | 72 } |
| 55 | 73 |
| 56 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, ViewLink) { | 74 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleViewBrowserTest, ViewLink) { |
| 57 int initial_tab_count = browser()->tab_count(); | 75 int initial_tab_count = browser()->tab_count(); |
| 58 | 76 |
| 59 browser()->window()->ShowOneClickSigninBubble(); | 77 ShowOneClickSigninBubble(); |
| 60 ui_test_utils::RunAllPendingInMessageLoop(); | 78 ui_test_utils::RunAllPendingInMessageLoop(); |
| 61 EXPECT_TRUE(OneClickSigninBubbleView::IsShowing()); | 79 EXPECT_TRUE(OneClickSigninBubbleView::IsShowing()); |
| 62 | 80 |
| 63 OneClickSigninBubbleView* view = OneClickSigninBubbleView::view_for_testing(); | 81 OneClickSigninBubbleView* view = OneClickSigninBubbleView::view_for_testing(); |
| 64 EXPECT_TRUE(view != NULL); | 82 EXPECT_TRUE(view != NULL); |
| 65 EXPECT_EQ(initial_tab_count, browser()->tab_count()); | 83 EXPECT_EQ(initial_tab_count, browser()->tab_count()); |
| 66 | 84 |
| 67 // Simulate pressing a link in the bubble. This should open a new tab. | 85 // Simulate pressing a link in the bubble. This should open a new tab. |
| 68 views::LinkListener* listener = view; | 86 views::LinkListener* listener = view; |
| 69 listener->LinkClicked(view->learn_more_link_for_testing(), 0); | 87 listener->LinkClicked(view->learn_more_link_for_testing(), 0); |
| 70 | 88 |
| 71 // View should no longer be showing and a new tab should be opened. | 89 // View should no longer be showing and a new tab should be opened. |
| 72 ui_test_utils::RunAllPendingInMessageLoop(); | 90 ui_test_utils::RunAllPendingInMessageLoop(); |
| 73 EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); | 91 EXPECT_FALSE(OneClickSigninBubbleView::IsShowing()); |
| 74 EXPECT_EQ(initial_tab_count + 1, browser()->tab_count()); | 92 EXPECT_EQ(initial_tab_count + 1, browser()->tab_count()); |
| 75 } | 93 } |
| OLD | NEW |