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

Unified Diff: chrome/browser/previews/previews_infobar_delegate_unittest.cc

Issue 2949173002: UMA for the Stale Previews timestamp (Closed)
Patch Set: update tests Created 3 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: chrome/browser/previews/previews_infobar_delegate_unittest.cc
diff --git a/chrome/browser/previews/previews_infobar_delegate_unittest.cc b/chrome/browser/previews/previews_infobar_delegate_unittest.cc
index 107da1d9e9a50ab2046207a4a3e93e6cc09aefa6..faa5b1c4feec191fcf3cbb9e7a2050e0697bc49a 100644
--- a/chrome/browser/previews/previews_infobar_delegate_unittest.cc
+++ b/chrome/browser/previews/previews_infobar_delegate_unittest.cc
@@ -12,8 +12,10 @@
#include "base/feature_list.h"
#include "base/memory/ptr_util.h"
#include "base/metrics/field_trial.h"
+#include "base/metrics/field_trial_param_associator.h"
#include "base/metrics/field_trial_params.h"
#include "base/optional.h"
+#include "base/strings/string16.h"
#include "base/test/histogram_tester.h"
#include "base/test/scoped_feature_list.h"
#include "base/threading/thread_task_runner_handle.h"
@@ -71,6 +73,9 @@ const char kUMAPreviewsInfoBarActionOffline[] =
const char kUMAPreviewsInfoBarActionLitePage[] =
"Previews.InfoBarAction.LitePage";
+// Key of the UMA Previews.InfoBarTimestamp histogram.
+const char kUMAPreviewsInfoBarTimestamp[] = "Previews.InfoBarTimestamp";
+
class TestPreviewsWebContentsObserver
: public content::WebContentsObserver,
public content::WebContentsUserData<TestPreviewsWebContentsObserver> {
@@ -178,14 +183,15 @@ class PreviewsInfoBarDelegateUnitTest : public ChromeRenderViewHostTestHarness {
infobar_service->infobar_at(0)->delegate());
}
- void EnableStalePreviewsTimestamp() {
+ void EnableStalePreviewsTimestamp(
+ std::map<std::string, std::string> variation_params) {
tbansal1 2017/06/22 21:12:16 #inclide <map>
megjablon 2017/06/22 23:40:11 Done.
+ field_trial_list_.reset();
tbansal1 2017/06/22 21:12:16 Is this needed given the following line is also ca
megjablon 2017/06/22 23:40:11 It's needed because otherwise the constructor thro
+ field_trial_list_.reset(new base::FieldTrialList(nullptr));
+ base::FieldTrialParamAssociator::GetInstance()->ClearAllParamsForTesting();
+
const std::string kTrialName = "TrialName";
const std::string kGroupName = "GroupName";
- std::map<std::string, std::string> variation_params;
- variation_params["min_staleness_in_minutes"] = "2";
- variation_params["max_staleness_in_minutes"] = "1440";
-
base::AssociateFieldTrialParams(kTrialName, kGroupName, variation_params);
base::FieldTrial* field_trial =
base::FieldTrialList::CreateFieldTrial(kTrialName, kGroupName);
@@ -609,7 +615,10 @@ TEST_F(PreviewsInfoBarDelegateUnitTest, PingbackClientClearedTabClosed) {
}
TEST_F(PreviewsInfoBarDelegateUnitTest, PreviewInfobarTimestampMintuesTest) {
- EnableStalePreviewsTimestamp();
+ base::HistogramTester tester;
+ // Use default params.
+ std::map<std::string, std::string> variation_params;
+ EnableStalePreviewsTimestamp(variation_params);
int staleness_in_minutes = 5;
@@ -618,14 +627,19 @@ TEST_F(PreviewsInfoBarDelegateUnitTest, PreviewInfobarTimestampMintuesTest) {
base::Time::Now() - base::TimeDelta::FromMinutes(staleness_in_minutes),
true /* is_data_saver_user */);
- ASSERT_EQ(
+ EXPECT_EQ(
l10n_util::GetStringFUTF16(IDS_PREVIEWS_INFOBAR_TIMESTAMP_MINUTES,
base::IntToString16(staleness_in_minutes)),
infobar->GetTimestampText());
+ tester.ExpectUniqueSample(kUMAPreviewsInfoBarTimestamp,
+ PreviewsInfoBarDelegate::TIMESTAMP_SHOWN, 1);
}
TEST_F(PreviewsInfoBarDelegateUnitTest, PreviewInfobarTimestampHourTest) {
- EnableStalePreviewsTimestamp();
+ base::HistogramTester tester;
+ // Use default params.
+ std::map<std::string, std::string> variation_params;
+ EnableStalePreviewsTimestamp(variation_params);
int staleness_in_minutes = 65;
@@ -634,12 +648,17 @@ TEST_F(PreviewsInfoBarDelegateUnitTest, PreviewInfobarTimestampHourTest) {
base::Time::Now() - base::TimeDelta::FromMinutes(staleness_in_minutes),
true /* is_data_saver_user */);
- ASSERT_EQ(l10n_util::GetStringUTF16(IDS_PREVIEWS_INFOBAR_TIMESTAMP_ONE_HOUR),
+ EXPECT_EQ(l10n_util::GetStringUTF16(IDS_PREVIEWS_INFOBAR_TIMESTAMP_ONE_HOUR),
infobar->GetTimestampText());
+ tester.ExpectUniqueSample(kUMAPreviewsInfoBarTimestamp,
+ PreviewsInfoBarDelegate::TIMESTAMP_SHOWN, 1);
}
TEST_F(PreviewsInfoBarDelegateUnitTest, PreviewInfobarTimestampHoursTest) {
- EnableStalePreviewsTimestamp();
+ base::HistogramTester tester;
+ // Use default params.
+ std::map<std::string, std::string> variation_params;
+ EnableStalePreviewsTimestamp(variation_params);
int staleness_in_hours = 2;
@@ -648,7 +667,122 @@ TEST_F(PreviewsInfoBarDelegateUnitTest, PreviewInfobarTimestampHoursTest) {
base::Time::Now() - base::TimeDelta::FromHours(staleness_in_hours),
true /* is_data_saver_user */);
- ASSERT_EQ(l10n_util::GetStringFUTF16(IDS_PREVIEWS_INFOBAR_TIMESTAMP_HOURS,
+ EXPECT_EQ(l10n_util::GetStringFUTF16(IDS_PREVIEWS_INFOBAR_TIMESTAMP_HOURS,
base::IntToString16(staleness_in_hours)),
infobar->GetTimestampText());
+ tester.ExpectUniqueSample(kUMAPreviewsInfoBarTimestamp,
+ PreviewsInfoBarDelegate::TIMESTAMP_SHOWN, 1);
+}
+
+TEST_F(PreviewsInfoBarDelegateUnitTest, PreviewInfobarTimestampFinchParamsUMA) {
+ base::HistogramTester tester;
+ std::map<std::string, std::string> variation_params;
+ variation_params["min_staleness_in_minutes"] = "1";
+ variation_params["max_staleness_in_minutes"] = "5";
+ EnableStalePreviewsTimestamp(variation_params);
+
+ int staleness_in_minutes = 1;
+
+ PreviewsInfoBarDelegate* infobar = CreateInfoBar(
+ previews::PreviewsType::LITE_PAGE,
+ base::Time::Now() - base::TimeDelta::FromMinutes(staleness_in_minutes),
+ true /* is_data_saver_user */);
+
+ EXPECT_EQ(
+ l10n_util::GetStringFUTF16(IDS_PREVIEWS_INFOBAR_TIMESTAMP_MINUTES,
+ base::IntToString16(staleness_in_minutes)),
+ infobar->GetTimestampText());
+ tester.ExpectBucketCount(kUMAPreviewsInfoBarTimestamp,
+ PreviewsInfoBarDelegate::TIMESTAMP_SHOWN, 1);
+
+ // Navigate and show infobar again.
+ NavigateAndCommit(GURL(kTestUrl));
+
+ staleness_in_minutes = 6;
+
+ infobar = CreateInfoBar(
+ previews::PreviewsType::LITE_PAGE,
+ base::Time::Now() - base::TimeDelta::FromMinutes(staleness_in_minutes),
+ true /* is_data_saver_user */);
+
+ EXPECT_EQ(base::string16(), infobar->GetTimestampText());
+ tester.ExpectBucketCount(
+ kUMAPreviewsInfoBarTimestamp,
+ PreviewsInfoBarDelegate::TIMESTAMP_NOT_SHOWN_STALENESS_GREATER_THAN_MAX,
+ 1);
+}
+
+TEST_F(PreviewsInfoBarDelegateUnitTest, PreviewInfobarTimestampNoParamsUMA) {
+ base::HistogramTester tester;
+ std::map<std::string, std::string> variation_params;
+ variation_params["min_staleness_in_minutes"] = "-5";
+ variation_params["max_staleness_in_minutes"] = "1440";
+ EnableStalePreviewsTimestamp(variation_params);
+
+ int staleness_in_minutes = 5;
+
+ PreviewsInfoBarDelegate* infobar = CreateInfoBar(
+ previews::PreviewsType::LITE_PAGE,
+ base::Time::Now() - base::TimeDelta::FromMinutes(staleness_in_minutes),
+ true /* is_data_saver_user */);
+
+ EXPECT_EQ(base::string16(), infobar->GetTimestampText());
+ tester.ExpectUniqueSample(
+ kUMAPreviewsInfoBarTimestamp,
+ PreviewsInfoBarDelegate::TIMESTAMP_NOT_SHOWN_PARAMS_NOT_AVAILABLE, 1);
+}
+
+TEST_F(PreviewsInfoBarDelegateUnitTest, PreviewInfobarTimestampNotStaleUMA) {
+ base::HistogramTester tester;
+ // Use default params.
+ std::map<std::string, std::string> variation_params;
+ EnableStalePreviewsTimestamp(variation_params);
+
+ int staleness_in_minutes = 1;
+
+ PreviewsInfoBarDelegate* infobar = CreateInfoBar(
+ previews::PreviewsType::LITE_PAGE,
+ base::Time::Now() - base::TimeDelta::FromMinutes(staleness_in_minutes),
+ true /* is_data_saver_user */);
+ ASSERT_EQ(base::string16(), infobar->GetTimestampText());
+ tester.ExpectUniqueSample(
+ kUMAPreviewsInfoBarTimestamp,
+ PreviewsInfoBarDelegate::TIMESTAMP_NOT_SHOWN_PREVIEW_NOT_STALE, 1);
+}
+
+TEST_F(PreviewsInfoBarDelegateUnitTest, PreviewInfobarTimestampNegativeUMA) {
+ base::HistogramTester tester;
+ // Use default params.
+ std::map<std::string, std::string> variation_params;
+ EnableStalePreviewsTimestamp(variation_params);
+
+ int staleness_in_minutes = -1;
+
+ PreviewsInfoBarDelegate* infobar = CreateInfoBar(
+ previews::PreviewsType::LITE_PAGE,
+ base::Time::Now() - base::TimeDelta::FromMinutes(staleness_in_minutes),
+ true /* is_data_saver_user */);
+ EXPECT_EQ(base::string16(), infobar->GetTimestampText());
+ tester.ExpectUniqueSample(
+ kUMAPreviewsInfoBarTimestamp,
+ PreviewsInfoBarDelegate::TIMESTAMP_NOT_SHOWN_STALENESS_NEGATIVE, 1);
+}
+
+TEST_F(PreviewsInfoBarDelegateUnitTest, PreviewInfobarTimestampMaximumUMA) {
tbansal1 2017/06/22 21:12:16 Would it be useful to combine this test with the o
megjablon 2017/06/22 23:40:11 I refactored the tests. I didn't add a struct thou
tbansal1 2017/06/23 00:37:42 Thanks, this looks much cleaner.
+ base::HistogramTester tester;
+ // Use default params.
+ std::map<std::string, std::string> variation_params;
+ EnableStalePreviewsTimestamp(variation_params);
+
+ int staleness_in_minutes = 1500;
+
+ PreviewsInfoBarDelegate* infobar = CreateInfoBar(
+ previews::PreviewsType::LITE_PAGE,
+ base::Time::Now() - base::TimeDelta::FromMinutes(staleness_in_minutes),
+ true /* is_data_saver_user */);
+ EXPECT_EQ(base::string16(), infobar->GetTimestampText());
+ tester.ExpectUniqueSample(
+ kUMAPreviewsInfoBarTimestamp,
+ PreviewsInfoBarDelegate::TIMESTAMP_NOT_SHOWN_STALENESS_GREATER_THAN_MAX,
+ 1);
}

Powered by Google App Engine
This is Rietveld 408576698