Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(263)

Side by Side Diff: chrome/browser/ui/gtk/one_click_signin_bubble_gtk_browsertest.cc

Issue 14258007: GTK: Display a native bubble (instead of the JS one) after the web signin flow. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ntpBubble
Patch Set: Rebase with master Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/ui/gtk/one_click_signin_bubble_gtk.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "chrome/browser/ui/gtk/one_click_signin_bubble_gtk.h" 5 #include "chrome/browser/ui/gtk/one_click_signin_bubble_gtk.h"
6 6
7 #include <gtk/gtk.h> 7 #include <gtk/gtk.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/memory/weak_ptr.h" 11 #include "base/memory/weak_ptr.h"
12 #include "chrome/browser/ui/browser.h" 12 #include "chrome/browser/ui/browser.h"
13 #include "chrome/browser/ui/gtk/browser_window_gtk.h" 13 #include "chrome/browser/ui/gtk/browser_window_gtk.h"
14 #include "chrome/browser/ui/sync/one_click_signin_sync_starter.h" 14 #include "chrome/browser/ui/sync/one_click_signin_sync_starter.h"
15 #include "chrome/test/base/in_process_browser_test.h" 15 #include "chrome/test/base/in_process_browser_test.h"
16 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
17 17
18 class OneClickSigninBubbleGtkTest : public InProcessBrowserTest { 18 class OneClickSigninBubbleGtkTest : public InProcessBrowserTest {
19 public: 19 public:
20 OneClickSigninBubbleGtkTest() 20 OneClickSigninBubbleGtkTest()
21 : weak_ptr_factory_(this), 21 : weak_ptr_factory_(this),
22 start_sync_callback_( 22 start_sync_callback_(
23 base::Bind(&OneClickSigninBubbleGtkTest::OnStartSync, 23 base::Bind(&OneClickSigninBubbleGtkTest::OnStartSync,
24 weak_ptr_factory_.GetWeakPtr())), 24 weak_ptr_factory_.GetWeakPtr())),
25 bubble_(NULL) {} 25 bubble_(NULL) {}
26 26
27 virtual OneClickSigninBubbleGtk* MakeBubble() { 27 virtual OneClickSigninBubbleGtk* MakeBubble(
28 BrowserWindow::OneClickSigninBubbleType bubbleType) {
28 return new OneClickSigninBubbleGtk( 29 return new OneClickSigninBubbleGtk(
29 static_cast<BrowserWindowGtk*>(browser()->window()), 30 static_cast<BrowserWindowGtk*>(browser()->window()),
30 BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE, 31 bubbleType,
32 string16(),
31 string16(), 33 string16(),
32 start_sync_callback_); 34 start_sync_callback_);
33 } 35 }
34 36
35 MOCK_METHOD1(OnStartSync, void(OneClickSigninSyncStarter::StartSyncMode)); 37 MOCK_METHOD1(OnStartSync, void(OneClickSigninSyncStarter::StartSyncMode));
36 38
37 protected: 39 protected:
38 base::WeakPtrFactory<OneClickSigninBubbleGtkTest> weak_ptr_factory_; 40 base::WeakPtrFactory<OneClickSigninBubbleGtkTest> weak_ptr_factory_;
39 BrowserWindow::StartSyncCallback start_sync_callback_; 41 BrowserWindow::StartSyncCallback start_sync_callback_;
40 42
41 // Owns itself. 43 // Owns itself.
42 OneClickSigninBubbleGtk* bubble_; 44 OneClickSigninBubbleGtk* bubble_;
43 }; 45 };
44 46
45 // Test that the dialog calls the callback if the OK button is clicked. 47 // Test that the dialog calls the callback if the OK button is clicked.
46 // Callback should be called to setup sync with default settings. 48 // Callback should be called to setup sync with default settings.
47 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleGtkTest, ShowAndOK) { 49 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleGtkTest, DialogShowAndOK) {
48 EXPECT_CALL(*this, OnStartSync( 50 EXPECT_CALL(*this, OnStartSync(
49 OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS)).Times(1); 51 OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS)).Times(1);
50 52
51 MakeBubble()->OnClickOK(NULL); 53 MakeBubble(
54 BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_MODAL_DIALOG)->OnClickOK(NULL);
52 } 55 }
53 56
54 // Test that the dialog calls the callback if the Undo button is 57 // Test that the dialog calls the callback if the Undo button is
55 // clicked. Callback should be called to abort the sync process. 58 // clicked. Callback should be called to abort the sync process.
56 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleGtkTest, ShowAndUndo) { 59 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleGtkTest, DialogShowAndUndo) {
57 EXPECT_CALL(*this, OnStartSync( 60 EXPECT_CALL(*this, OnStartSync(
58 OneClickSigninSyncStarter::UNDO_SYNC)).Times(1); 61 OneClickSigninSyncStarter::UNDO_SYNC)).Times(1);
59 62
60 MakeBubble()->OnClickUndo(NULL); 63 MakeBubble(BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_MODAL_DIALOG)
64 ->OnClickUndo(NULL);
61 } 65 }
62 66
63 // Test that the dialog calls the callback if the advanced link is clicked. 67 // Test that the dialog calls the callback if the advanced link is clicked.
64 // Callback should be called to configure sync before starting. 68 // Callback should be called to configure sync before starting.
65 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleGtkTest, ShowAndClickAdvanced) { 69 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleGtkTest, DialogShowAndClickAdvanced){
66 EXPECT_CALL(*this, 70 EXPECT_CALL(*this,
67 OnStartSync(OneClickSigninSyncStarter::CONFIGURE_SYNC_FIRST)). 71 OnStartSync(OneClickSigninSyncStarter::CONFIGURE_SYNC_FIRST)).
68 Times(1); 72 Times(1);
69 73
70 MakeBubble()->OnClickAdvancedLink(NULL); 74 MakeBubble(BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_MODAL_DIALOG)
75 ->OnClickAdvancedLink(NULL);
71 } 76 }
72 77
73 // Test that the dialog calls the callback if the bubble is closed. 78 // Test that the dialog calls the callback if the bubble is closed.
74 // Callback should be called to setup sync with default settings. 79 // Callback should be called to setup sync with default settings.
75 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleGtkTest, ShowAndClose) { 80 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleGtkTest, DialogShowAndClose) {
76 EXPECT_CALL(*this, OnStartSync( 81 EXPECT_CALL(*this, OnStartSync(
77 OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS)).Times(1); 82 OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS)).Times(1);
78 83
79 MakeBubble()->bubble_->Close(); 84 MakeBubble(
85 BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_MODAL_DIALOG)->bubble_->Close();
80 } 86 }
87
88 // Test that the bubble does not call the callback if the OK button is clicked.
89 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleGtkTest, BubbleShowAndOK) {
90 EXPECT_CALL(*this, OnStartSync(
91 OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS)).Times(0);
92
93 MakeBubble(
94 BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE)->OnClickOK(NULL);
95 }
96
97 // Test that the bubble does not call the callback
98 // if the advanced link is clicked.
99 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleGtkTest, BubbleShowAndClickAdvanced){
100 EXPECT_CALL(*this, OnStartSync(
101 OneClickSigninSyncStarter::CONFIGURE_SYNC_FIRST)).Times(0);
102
103 MakeBubble(BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE)
104 ->OnClickAdvancedLink(NULL);
105 }
106
107 // Test that the bubble does not call the callback if the bubble is closed.
108 IN_PROC_BROWSER_TEST_F(OneClickSigninBubbleGtkTest, BubbleShowAndClose) {
109 EXPECT_CALL(*this, OnStartSync(
110 OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS)).Times(0);
111
112 MakeBubble(
113 BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE)->bubble_->Close();
114 }
115
116
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/one_click_signin_bubble_gtk.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698