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

Side by Side Diff: chrome/browser/ui/cocoa/passwords/signin_promo_view_controller_unittest.mm

Issue 2040143006: Implement the Sync promo in the password bubble on Mac. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix tests Created 4 years, 6 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
(Empty)
1 // Copyright 2016 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/passwords/signin_promo_view_controller.h"
6
7 #include "base/metrics/field_trial.h"
8 #import "chrome/browser/ui/cocoa/passwords/base_passwords_controller_test.h"
9 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller_mock.h"
10 #include "components/password_manager/core/browser/password_bubble_experiment.h"
11 #include "components/variations/variations_associated_data.h"
12
13 namespace {
14
15 using password_bubble_experiment::kChromeSignInPasswordPromoExperimentName;
16 using password_bubble_experiment::kChromeSignInPasswordPromoThresholdParam;
17
18 class SignInPromoViewControllerTest : public ManagePasswordsControllerTest {
19 public:
20 SignInPromoViewControllerTest() : field_trial_list_(nullptr) {}
21
22 void SetUp() override;
23 void TearDown() override;
24
25 void SetUpSignInPromoState();
26
27 SignInPromoViewController* controller() { return controller_.get(); }
28
29 private:
30 base::FieldTrialList field_trial_list_;
31 base::scoped_nsobject<SignInPromoViewController> controller_;
32 };
33
34 void SignInPromoViewControllerTest::SetUp() {
35 ManagePasswordsControllerTest::SetUp();
36 SetUpSignInPromoState();
37 }
38
39 void SignInPromoViewControllerTest::TearDown() {
40 ManagePasswordsControllerTest::TearDown();
41 variations::testing::ClearAllVariationParams();
42 }
43
44 void SignInPromoViewControllerTest::SetUpSignInPromoState() {
45 const char kFakeGroup[] = "FakeGroup";
46 SetUpSavePendingState(false);
47 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial(
48 kChromeSignInPasswordPromoExperimentName, kFakeGroup));
49 variations::AssociateVariationParams(
50 kChromeSignInPasswordPromoExperimentName, kFakeGroup,
51 {{kChromeSignInPasswordPromoThresholdParam, "3"}});
52 GetModelAndCreateIfNull()->OnSaveClicked();
53
54 ASSERT_TRUE(GetModelAndCreateIfNull()->ReplaceToShowSignInPromoIfNeeded());
55
56 [delegate() setModel:GetModelAndCreateIfNull()];
57 controller_.reset([[SignInPromoViewController alloc]
58 initWithDelegate:delegate()]);
59 [controller_ view];
60 }
61
62
63 TEST_F(SignInPromoViewControllerTest, ClickSignIn) {
64 EXPECT_CALL(*ui_controller(), NavigateToChromeSignIn());
65 [controller().signInButton performClick:nil];
66
67 EXPECT_TRUE([delegate() dismissed]);
68 }
69
70 TEST_F(SignInPromoViewControllerTest, ClickNo) {
71 EXPECT_CALL(*ui_controller(), NavigateToChromeSignIn()).Times(0);
72 [controller().noButton performClick:nil];
73
74 EXPECT_TRUE([delegate() dismissed]);
75 }
76
77 TEST_F(SignInPromoViewControllerTest, CloseBubbleAndHandleClick) {
78 // A user may press mouse down, some navigation closes the bubble, mouse up
79 // still sends the action.
80 EXPECT_CALL(*ui_controller(), NavigateToChromeSignIn()).Times(0);
81 [delegate() setModel:nil];
82 [controller().signInButton performClick:nil];
83 [controller().noButton performClick:nil];
84 }
85
86 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698