| Index: chrome/browser/ui/cocoa/passwords/passwords_bubble_controller_unittest.mm
|
| diff --git a/chrome/browser/ui/cocoa/passwords/passwords_bubble_controller_unittest.mm b/chrome/browser/ui/cocoa/passwords/passwords_bubble_controller_unittest.mm
|
| index 68e0753b3ab2bcc31f7951e8bc50c03ae690056d..d28c4fb523233a983a7c7d56b51be9fb4c120cd1 100644
|
| --- a/chrome/browser/ui/cocoa/passwords/passwords_bubble_controller_unittest.mm
|
| +++ b/chrome/browser/ui/cocoa/passwords/passwords_bubble_controller_unittest.mm
|
| @@ -8,6 +8,7 @@
|
|
|
| #include "base/compiler_specific.h"
|
| #include "base/mac/foundation_util.h"
|
| +#include "base/metrics/field_trial.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_window.h"
|
| #include "chrome/browser/ui/cocoa/cocoa_test_helper.h"
|
| @@ -15,22 +16,26 @@
|
| #include "chrome/browser/ui/cocoa/passwords/base_passwords_controller_test.h"
|
| #import "chrome/browser/ui/cocoa/passwords/manage_passwords_view_controller.h"
|
| #import "chrome/browser/ui/cocoa/passwords/save_pending_password_view_controller.h"
|
| +#import "chrome/browser/ui/cocoa/passwords/signin_promo_view_controller.h"
|
| #import "chrome/browser/ui/cocoa/passwords/update_pending_password_view_controller.h"
|
| #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
|
| #include "chrome/browser/ui/passwords/manage_passwords_ui_controller_mock.h"
|
| +#include "components/password_manager/core/browser/password_bubble_experiment.h"
|
| +#include "components/variations/variations_associated_data.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "testing/gtest_mac.h"
|
| #include "testing/platform_test.h"
|
|
|
| namespace {
|
|
|
| +using password_bubble_experiment::kChromeSignInPasswordPromoExperimentName;
|
| +using password_bubble_experiment::kChromeSignInPasswordPromoThresholdParam;
|
| +
|
| class ManagePasswordsBubbleControllerTest
|
| : public ManagePasswordsControllerTest {
|
| public:
|
| ManagePasswordsBubbleControllerTest() : controller_(nil) {}
|
|
|
| - void SetUp() override { ManagePasswordsControllerTest::SetUp(); }
|
| -
|
| ManagePasswordsBubbleController* controller() {
|
| if (!controller_) {
|
| controller_ = [[ManagePasswordsBubbleController alloc]
|
| @@ -69,7 +74,7 @@ TEST_F(ManagePasswordsBubbleControllerTest, DismissingShouldCloseWindow) {
|
| }
|
|
|
| TEST_F(ManagePasswordsBubbleControllerTest, ManageStateShouldHaveManageView) {
|
| - SetUpManageState();
|
| + SetUpManageState(VectorConstFormPtr());
|
| EXPECT_EQ([ManagePasswordsViewController class],
|
| [[controller() currentController] class]);
|
| }
|
| @@ -88,4 +93,27 @@ TEST_F(ManagePasswordsBubbleControllerTest, ClearModelOnClose) {
|
| EXPECT_FALSE(controller().model);
|
| }
|
|
|
| +TEST_F(ManagePasswordsBubbleControllerTest, TransitionToSignInPromo) {
|
| + const char kFakeGroup[] = "FakeGroup";
|
| + base::FieldTrialList field_trial_list(nullptr);
|
| + ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial(
|
| + kChromeSignInPasswordPromoExperimentName, kFakeGroup));
|
| + variations::AssociateVariationParams(
|
| + kChromeSignInPasswordPromoExperimentName, kFakeGroup,
|
| + {{kChromeSignInPasswordPromoThresholdParam, "3"}});
|
| +
|
| + SetUpSavePendingState(false);
|
| + [controller() showWindow:nil];
|
| + SavePendingPasswordViewController* saveController =
|
| + base::mac::ObjCCastStrict<SavePendingPasswordViewController>(
|
| + [controller() currentController]);
|
| + EXPECT_TRUE(saveController.saveButton);
|
| + [saveController.saveButton performClick:nil];
|
| + EXPECT_EQ([SignInPromoViewController class],
|
| + [[controller() currentController] class]);
|
| + EXPECT_TRUE([[controller() window] isVisible]);
|
| +
|
| + variations::testing::ClearAllVariationParams();
|
| +}
|
| +
|
| } // namespace
|
|
|