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

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

Issue 2625813003: MacViews: Allow the toolkit-views Enterprise Signin Confirmation Dialog to be used (Closed)
Patch Set: Rebase (DID NOT LAND) Created 3 years, 10 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #import "chrome/browser/ui/cocoa/profiles/profile_signin_confirmation_view_contr oller.h" 5 #import "chrome/browser/ui/cocoa/profiles/profile_signin_confirmation_view_contr oller.h"
6 6
7 #import <Cocoa/Cocoa.h> 7 #import <Cocoa/Cocoa.h>
8 8
9 #include "base/mac/scoped_nsobject.h" 9 #include "base/mac/scoped_nsobject.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/strings/sys_string_conversions.h" 11 #include "base/strings/sys_string_conversions.h"
12 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
13 #include "chrome/browser/ui/browser.h" 13 #include "chrome/browser/ui/browser.h"
14 #include "chrome/browser/ui/sync/profile_signin_confirmation_helper.h" 14 #include "chrome/browser/ui/sync/profile_signin_confirmation_helper.h"
15 #include "chrome/grit/chromium_strings.h" 15 #include "chrome/grit/chromium_strings.h"
16 #include "chrome/grit/generated_resources.h" 16 #include "chrome/grit/generated_resources.h"
17 #include "chrome/test/base/in_process_browser_test.h" 17 #include "chrome/test/base/in_process_browser_test.h"
18 #import "testing/gtest_mac.h" 18 #import "testing/gtest_mac.h"
19 #include "ui/base/l10n/l10n_util.h" 19 #include "ui/base/l10n/l10n_util.h"
20 20
21 @interface ProfileSigninConfirmationViewController (TestingAPI)
22
23 @property(readonly, nonatomic) ui::ProfileSigninConfirmationDelegate* delegate;
24 @property(readonly, nonatomic) NSButton* createProfileButton;
25 @property(readonly, nonatomic) NSTextView* explanationField;
26
27 @end
28
29 @implementation ProfileSigninConfirmationViewController (TestingAPI)
30
31 - (ui::ProfileSigninConfirmationDelegate*)delegate {
32 return delegate_.get();
33 }
34
35 - (NSButton*)createProfileButton {
36 return createProfileButton_.get();
37 }
38
39 - (NSTextView*)explanationField {
40 return explanationField_.get();
41 }
42
43 @end
44
21 class ProfileSigninConfirmationViewControllerTest 45 class ProfileSigninConfirmationViewControllerTest
22 : public InProcessBrowserTest, 46 : public InProcessBrowserTest {
23 public ui::ProfileSigninConfirmationDelegate {
24
25 public: 47 public:
26 ProfileSigninConfirmationViewControllerTest() 48 ProfileSigninConfirmationViewControllerTest()
27 : window_(nil), 49 : window_(nil),
28 continued_(false), 50 continued_(false),
29 cancelled_(false), 51 cancelled_(false),
30 created_(false), 52 created_(false),
31 closed_(false) { 53 closed_(false) {
32 } 54 }
33 55
34 protected: 56 protected:
35 void SetUpOnMainThread() override {} 57 void SetUpOnMainThread() override {}
36 58
37 void SetupDialog(bool offerProfileCreation = true) { 59 void SetupDialog(bool offerProfileCreation = true) {
38 window_.reset( 60 window_.reset(
39 [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 400, 600) 61 [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 400, 600)
40 styleMask:NSBorderlessWindowMask 62 styleMask:NSBorderlessWindowMask
41 backing:NSBackingStoreBuffered 63 backing:NSBackingStoreBuffered
42 defer:NO]); 64 defer:NO]);
43 base::Closure close = base::Bind( 65 base::Closure close = base::Bind(
44 &ProfileSigninConfirmationViewControllerTest::OnClose, 66 &ProfileSigninConfirmationViewControllerTest::OnClose,
45 base::Unretained(this)); 67 base::Unretained(this));
46 controller_.reset([[ProfileSigninConfirmationViewController alloc] 68 controller_.reset([[ProfileSigninConfirmationViewController alloc]
47 initWithBrowser:browser() 69 initWithBrowser:browser()
48 username:username() 70 username:username()
49 delegate:this 71 delegate:base::MakeUnique<TestSigninDelegate>(this)
50 closeDialogCallback:close 72 closeDialogCallback:close
51 offerProfileCreation:offerProfileCreation]); 73 offerProfileCreation:offerProfileCreation]);
52 [[window_ contentView] addSubview:[controller_ view]]; 74 [[window_ contentView] addSubview:[controller_ view]];
53 [window_ makeKeyAndOrderFront:NSApp]; 75 [window_ makeKeyAndOrderFront:NSApp];
54 ASSERT_TRUE([window_ isVisible]); 76 ASSERT_TRUE([window_ isVisible]);
55 } 77 }
56 78
57 // Test helpers. 79 // Test helpers.
58 std::string username() { 80 std::string username() {
59 return "foo@bar.com"; 81 return "foo@bar.com";
60 } 82 }
61 base::string16 learn_more() { 83 base::string16 learn_more() {
62 return l10n_util::GetStringUTF16( 84 return l10n_util::GetStringUTF16(
63 IDS_ENTERPRISE_SIGNIN_PROFILE_LINK_LEARN_MORE); 85 IDS_ENTERPRISE_SIGNIN_PROFILE_LINK_LEARN_MORE);
64 } 86 }
65 87
66 // ui::ProfileSigninConfirmationDelegate:
67 void OnContinueSignin() override { continued_ = true; }
68 void OnCancelSignin() override { cancelled_ = true; }
69 void OnSigninWithNewProfile() override { created_ = true; }
70 void OnClose() { closed_ = true; } 88 void OnClose() { closed_ = true; }
71 89
72 // The window containing the dialog. 90 // The window containing the dialog.
73 base::scoped_nsobject<NSWindow> window_; 91 base::scoped_nsobject<NSWindow> window_;
74 92
75 // Dialog under test. 93 // Dialog under test.
76 base::scoped_nsobject<ProfileSigninConfirmationViewController> controller_; 94 base::scoped_nsobject<ProfileSigninConfirmationViewController> controller_;
77 95
78 // Visible for testing UI interactions. 96 // Visible for testing UI interactions.
79 bool continued_; 97 bool continued_;
80 bool cancelled_; 98 bool cancelled_;
81 bool created_; 99 bool created_;
82 bool closed_; 100 bool closed_;
83 101
84 private: 102 private:
103 class TestSigninDelegate : public ui::ProfileSigninConfirmationDelegate {
104 public:
105 explicit TestSigninDelegate(
106 ProfileSigninConfirmationViewControllerTest* client)
107 : client_(client) {}
108
109 // ui::ProfileSigninConfirmationDelegate:
110 void OnContinueSignin() override { client_->continued_ = true; }
111 void OnCancelSignin() override { client_->cancelled_ = true; }
112 void OnSigninWithNewProfile() override { client_->created_ = true; }
113
114 private:
115 ProfileSigninConfirmationViewControllerTest* client_;
116
117 DISALLOW_COPY_AND_ASSIGN(TestSigninDelegate);
118 };
119
85 DISALLOW_COPY_AND_ASSIGN(ProfileSigninConfirmationViewControllerTest); 120 DISALLOW_COPY_AND_ASSIGN(ProfileSigninConfirmationViewControllerTest);
86 }; 121 };
87 122
88 IN_PROC_BROWSER_TEST_F(ProfileSigninConfirmationViewControllerTest, 123 IN_PROC_BROWSER_TEST_F(ProfileSigninConfirmationViewControllerTest,
89 ContinueClicked) { 124 ContinueClicked) {
90 SetupDialog(); 125 SetupDialog();
91 126
92 // Click should invoke and clear delegate and close the dialog. 127 // Click should invoke and clear delegate and close the dialog.
93 [controller_ ok:nil]; 128 [controller_ ok:nil];
94 EXPECT_TRUE(continued_); 129 EXPECT_TRUE(continued_);
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 EXPECT_NSNE(nil, [controller_ createProfileButton]); 213 EXPECT_NSNE(nil, [controller_ createProfileButton]);
179 EXPECT_TRUE([[[controller_ view] subviews] 214 EXPECT_TRUE([[[controller_ view] subviews]
180 containsObject:[controller_ createProfileButton]]); 215 containsObject:[controller_ createProfileButton]]);
181 NSString* explanationWithCreateProfile = base::SysUTF16ToNSString( 216 NSString* explanationWithCreateProfile = base::SysUTF16ToNSString(
182 l10n_util::GetStringFUTF16( 217 l10n_util::GetStringFUTF16(
183 IDS_ENTERPRISE_SIGNIN_EXPLANATION_WITH_PROFILE_CREATION, 218 IDS_ENTERPRISE_SIGNIN_EXPLANATION_WITH_PROFILE_CREATION,
184 base::UTF8ToUTF16(username()), learn_more())); 219 base::UTF8ToUTF16(username()), learn_more()));
185 EXPECT_NSEQ(explanationWithCreateProfile, 220 EXPECT_NSEQ(explanationWithCreateProfile,
186 [[[controller_ explanationField] textStorage] string]); 221 [[[controller_ explanationField] textStorage] string]);
187 } 222 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698