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

Unified Diff: components/password_manager/core/browser/password_bubble_experiment_unittest.cc

Issue 2036323002: Implement the UI logic behind the Sign In promo in the password bubble (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more 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 side-by-side diff with in-line comments
Download patch
Index: components/password_manager/core/browser/password_bubble_experiment_unittest.cc
diff --git a/components/password_manager/core/browser/password_bubble_experiment_unittest.cc b/components/password_manager/core/browser/password_bubble_experiment_unittest.cc
index fd13060e111d4ac273ab79f6491a7b8bd2732cf3..e3591d047d40026da2a490f40a29a6fbed970080 100644
--- a/components/password_manager/core/browser/password_bubble_experiment_unittest.cc
+++ b/components/password_manager/core/browser/password_bubble_experiment_unittest.cc
@@ -7,11 +7,13 @@
#include <ostream>
#include "base/metrics/field_trial.h"
+#include "base/strings/string_number_conversions.h"
#include "components/password_manager/core/common/password_manager_pref_names.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
#include "components/prefs/testing_pref_service.h"
#include "components/sync_driver/fake_sync_service.h"
+#include "components/variations/variations_associated_data.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -111,6 +113,11 @@ class PasswordManagerPasswordBubbleExperimentTest : public testing::Test {
void SetUp() override { RegisterPrefs(pref_service_.registry()); }
+ void TearDown() override {
+ variations::testing::ClearAllVariationIDs();
vabr (Chromium) 2016/06/06 15:23:14 Would this work in a destructor instead? (See htt
vasilii 2016/06/06 15:45:14 Done.
+ variations::testing::ClearAllVariationParams();
+ }
+
PrefService* prefs() { return &pref_service_; }
void EnforceExperimentGroup(const char* group_name) {
@@ -309,4 +316,38 @@ TEST_F(PasswordManagerPasswordBubbleExperimentTest,
}
}
+TEST_F(PasswordManagerPasswordBubbleExperimentTest,
+ ShouldShowChromeSignInPasswordPromo) {
+ // By default the promo is off.
+ EXPECT_FALSE(ShouldShowChromeSignInPasswordPromo(prefs()));
+ const struct {
+ bool was_already_clicked;
+ int current_shown_count;
+ int experiment_threshold;
+ bool result;
+ } kTestData[] = {
+ {false, 0, 5, true},
+ {false, 5, 5, false},
+ {true, 0, 5, false},
+ {true, 10, 5, false},
+ };
+ const char kFakeGroup[] = "FakeGroup";
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial(
+ kChromeSignInPasswordPromoExperimentName, kFakeGroup));
+ for (const auto& test_case : kTestData) {
+ SCOPED_TRACE(testing::Message("#test_case = ") << (&test_case - kTestData));
+ prefs()->SetBoolean(password_manager::prefs::kWasSignInPasswordPromoClicked,
+ test_case.was_already_clicked);
+ prefs()->SetInteger(
+ password_manager::prefs::kNumberSignInPasswordPromoShown,
+ test_case.current_shown_count);
+ variations::AssociateVariationParams(
+ kChromeSignInPasswordPromoExperimentName, kFakeGroup,
+ {{kChromeSignInPasswordPromoThresholdParam,
+ base::IntToString(test_case.experiment_threshold)}});
+
+ EXPECT_EQ(test_case.result, ShouldShowChromeSignInPasswordPromo(prefs()));
+ }
+}
+
} // namespace password_bubble_experiment

Powered by Google App Engine
This is Rietveld 408576698