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

Side by Side Diff: chrome/browser/ui/cocoa/profile_signin_confirmation_view_controller_browsertest.mm

Issue 229163004: [Mac] Move profile related UI from cocoa/browser to cocoa/profiles (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: oops forgot a comment Created 6 years, 8 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #import "chrome/browser/ui/cocoa/profile_signin_confirmation_view_controller.h"
6
7 #import <Cocoa/Cocoa.h>
8
9 #include "base/mac/scoped_nsobject.h"
10 #include "base/strings/sys_string_conversions.h"
11 #include "base/strings/utf_string_conversions.h"
12 #include "chrome/browser/ui/browser.h"
13 #include "chrome/browser/ui/sync/profile_signin_confirmation_helper.h"
14 #include "chrome/test/base/in_process_browser_test.h"
15 #include "grit/chromium_strings.h"
16 #include "grit/generated_resources.h"
17 #import "testing/gtest_mac.h"
18 #include "ui/base/l10n/l10n_util.h"
19
20 class ProfileSigninConfirmationViewControllerTest
21 : public InProcessBrowserTest,
22 public ui::ProfileSigninConfirmationDelegate {
23
24 public:
25 ProfileSigninConfirmationViewControllerTest()
26 : window_(nil),
27 continued_(false),
28 cancelled_(false),
29 created_(false),
30 closed_(false) {
31 }
32
33 protected:
34 virtual void SetUpOnMainThread() OVERRIDE {
35 }
36
37 void SetupDialog(bool offerProfileCreation = true) {
38 window_.reset(
39 [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 400, 600)
40 styleMask:NSBorderlessWindowMask
41 backing:NSBackingStoreBuffered
42 defer:NO]);
43 base::Closure close = base::Bind(
44 &ProfileSigninConfirmationViewControllerTest::OnClose, this);
45 controller_.reset([[ProfileSigninConfirmationViewController alloc]
46 initWithBrowser:browser()
47 username:username()
48 delegate:this
49 closeDialogCallback:close
50 offerProfileCreation:offerProfileCreation]);
51 [[window_ contentView] addSubview:[controller_ view]];
52 [window_ makeKeyAndOrderFront:NSApp];
53 ASSERT_TRUE([window_ isVisible]);
54 }
55
56 // Test helpers.
57 std::string username() {
58 return "foo@bar.com";
59 }
60 base::string16 learn_more() {
61 return l10n_util::GetStringUTF16(
62 IDS_ENTERPRISE_SIGNIN_PROFILE_LINK_LEARN_MORE);
63 }
64
65 // ui::ProfileSigninConfirmationDelegate:
66 virtual void OnContinueSignin() OVERRIDE { continued_ = true; }
67 virtual void OnCancelSignin() OVERRIDE { cancelled_ = true; }
68 virtual void OnSigninWithNewProfile() OVERRIDE { created_ = true; }
69 void OnClose() { closed_ = true; }
70
71 // The window containing the dialog.
72 base::scoped_nsobject<NSWindow> window_;
73
74 // Dialog under test.
75 base::scoped_nsobject<ProfileSigninConfirmationViewController> controller_;
76
77 // Visible for testing UI interactions.
78 bool continued_;
79 bool cancelled_;
80 bool created_;
81 bool closed_;
82
83 private:
84 DISALLOW_COPY_AND_ASSIGN(ProfileSigninConfirmationViewControllerTest);
85 };
86
87 IN_PROC_BROWSER_TEST_F(ProfileSigninConfirmationViewControllerTest,
88 ContinueClicked) {
89 SetupDialog();
90
91 // Click should invoke and clear delegate and close the dialog.
92 [controller_ ok:nil];
93 EXPECT_TRUE(continued_);
94 EXPECT_TRUE(closed_);
95 EXPECT_FALSE([controller_ delegate]);
96
97 // Another click should have no effect.
98 continued_ = false;
99 closed_ = false;
100 [controller_ ok:nil];
101 EXPECT_FALSE(continued_);
102 EXPECT_FALSE(closed_);
103 }
104
105 IN_PROC_BROWSER_TEST_F(ProfileSigninConfirmationViewControllerTest,
106 CancelClicked) {
107 SetupDialog();
108
109 // Click should invoke and clear delegate and close the dialog.
110 [controller_ cancel:nil];
111 EXPECT_TRUE(cancelled_);
112 EXPECT_TRUE(closed_);
113 EXPECT_FALSE([controller_ delegate]);
114
115 // Another click should have no effect.
116 cancelled_ = false;
117 closed_ = false;
118 [controller_ cancel:nil];
119 EXPECT_FALSE(cancelled_);
120 EXPECT_FALSE(closed_);
121 }
122
123 IN_PROC_BROWSER_TEST_F(ProfileSigninConfirmationViewControllerTest,
124 CreateClicked) {
125 SetupDialog();
126
127 // Click should invoke and clear delegate and close the dialog.
128 [controller_ createProfile:nil];
129 EXPECT_TRUE(created_);
130 EXPECT_TRUE(closed_);
131 EXPECT_FALSE([controller_ delegate]);
132
133 // Another click should have no effect.
134 created_ = false;
135 closed_ = false;
136 [controller_ createProfile:nil];
137 EXPECT_FALSE(created_);
138 EXPECT_FALSE(closed_);
139 }
140
141 IN_PROC_BROWSER_TEST_F(ProfileSigninConfirmationViewControllerTest,
142 CloseClicked) {
143 SetupDialog();
144
145 // Click should invoke and clear delegate and close the dialog.
146 [controller_ cancel:nil];
147 EXPECT_TRUE(cancelled_);
148 EXPECT_TRUE(closed_);
149 EXPECT_FALSE([controller_ delegate]);
150
151 // Another click should close the dialog but not invoke the delegate.
152 cancelled_ = false;
153 closed_ = false;
154 [controller_ close:nil];
155 EXPECT_FALSE(cancelled_);
156 EXPECT_TRUE(closed_);
157 }
158
159 IN_PROC_BROWSER_TEST_F(ProfileSigninConfirmationViewControllerTest,
160 DoNotOfferNewProfile) {
161 SetupDialog(/*offerProfileCreation = */ false);
162 // Create Profile button shouldn't exist.
163 EXPECT_NSEQ(nil, [controller_ createProfileButton]);
164 // Explanation shouldn't mention creating a new profile.
165 NSString* explanationWithoutCreateProfile = base::SysUTF16ToNSString(
166 l10n_util::GetStringFUTF16(
167 IDS_ENTERPRISE_SIGNIN_EXPLANATION_WITHOUT_PROFILE_CREATION_NEW_STYLE,
168 base::UTF8ToUTF16(username()), learn_more()));
169 EXPECT_NSEQ(explanationWithoutCreateProfile,
170 [[[controller_ explanationField] textStorage] string]);
171 }
172
173 IN_PROC_BROWSER_TEST_F(ProfileSigninConfirmationViewControllerTest,
174 OfferNewProfile) {
175 SetupDialog(/*offerProfileCreation = */ true);
176 // Create Profile button should exist and be visible.
177 EXPECT_NSNE(nil, [controller_ createProfileButton]);
178 EXPECT_TRUE([[[controller_ view] subviews]
179 containsObject:[controller_ createProfileButton]]);
180 NSString* explanationWithCreateProfile = base::SysUTF16ToNSString(
181 l10n_util::GetStringFUTF16(
182 IDS_ENTERPRISE_SIGNIN_EXPLANATION_WITH_PROFILE_CREATION_NEW_STYLE,
183 base::UTF8ToUTF16(username()), learn_more()));
184 EXPECT_NSEQ(explanationWithCreateProfile,
185 [[[controller_ explanationField] textStorage] string]);
186 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698