Index: chrome/browser/banners/app_banner_settings_helper_unittest.cc |
diff --git a/chrome/browser/banners/app_banner_settings_helper_unittest.cc b/chrome/browser/banners/app_banner_settings_helper_unittest.cc |
index 46ed446c7e24c13b1e27b5ae44705140605db931..12bef9b0e11aed806a7523a005b11a1549b186ef 100644 |
--- a/chrome/browser/banners/app_banner_settings_helper_unittest.cc |
+++ b/chrome/browser/banners/app_banner_settings_helper_unittest.cc |
@@ -8,6 +8,7 @@ |
#include "chrome/browser/banners/app_banner_metrics.h" |
#include "chrome/browser/banners/app_banner_settings_helper.h" |
#include "chrome/browser/engagement/site_engagement_service.h" |
+#include "chrome/browser/installable/installable_logging.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/test/base/chrome_render_view_host_test_harness.h" |
#include "chrome/test/base/testing_profile.h" |
@@ -513,35 +514,40 @@ TEST_F(AppBannerSettingsHelperTest, IndirectEngagementWithLowerWeight) { |
base::Time fourth_day = reference_time + base::TimeDelta::FromDays(3); |
// By default the banner should not be shown. |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// It should take four indirect visits with a weight of 0.5 to trigger the |
// banner. |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, reference_time, |
ui::PAGE_TRANSITION_LINK); |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, second_day, |
ui::PAGE_TRANSITION_LINK); |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, second_day)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, second_day)); |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, third_day, |
ui::PAGE_TRANSITION_FORM_SUBMIT); |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, third_day)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, third_day)); |
// Visit the site again; now it should be shown. |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, fourth_day, |
ui::PAGE_TRANSITION_MANUAL_SUBFRAME); |
- EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, fourth_day)); |
+ EXPECT_EQ(NO_ERROR_DETECTED, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, fourth_day)); |
} |
TEST_F(AppBannerSettingsHelperTest, DirectEngagementWithHigherWeight) { |
@@ -552,15 +558,17 @@ TEST_F(AppBannerSettingsHelperTest, DirectEngagementWithHigherWeight) { |
base::Time reference_time = GetReferenceTime(); |
// By default the banner should not be shown. |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// It should take one direct visit with a weight of 2 to trigger the banner. |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, reference_time, |
ui::PAGE_TRANSITION_TYPED); |
- EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(NO_ERROR_DETECTED, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
} |
TEST_F(AppBannerSettingsHelperTest, ShouldShowFromEngagement) { |
@@ -572,29 +580,33 @@ TEST_F(AppBannerSettingsHelperTest, ShouldShowFromEngagement) { |
base::Time one_year_ago = reference_time - base::TimeDelta::FromDays(366); |
// By default the banner should not be shown. |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// Visit the site once, it still should not be shown. |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, one_year_ago, |
ui::PAGE_TRANSITION_TYPED); |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// Visit the site again after a long delay, it still should not be shown. |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, one_day_ago, |
ui::PAGE_TRANSITION_TYPED); |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// Visit the site again; now it should be shown. |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, reference_time, |
ui::PAGE_TRANSITION_TYPED); |
- EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(NO_ERROR_DETECTED, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
} |
TEST_F(AppBannerSettingsHelperTest, ShouldNotShowAfterBlocking) { |
@@ -607,8 +619,9 @@ TEST_F(AppBannerSettingsHelperTest, ShouldNotShowAfterBlocking) { |
base::Time one_year_ago = reference_time - base::TimeDelta::FromDays(366); |
// By default the banner should not be shown. |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// Record events such that the banner should show. |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
@@ -617,22 +630,25 @@ TEST_F(AppBannerSettingsHelperTest, ShouldNotShowAfterBlocking) { |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, reference_time, |
ui::PAGE_TRANSITION_TYPED); |
- EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(NO_ERROR_DETECTED, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// Block the site a long time ago. It should still be shown. |
AppBannerSettingsHelper::RecordBannerEvent( |
web_contents(), url, kTestPackageName, |
AppBannerSettingsHelper::APP_BANNER_EVENT_DID_BLOCK, one_year_ago); |
- EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(NO_ERROR_DETECTED, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// Block the site more recently. Now it should not be shown. |
AppBannerSettingsHelper::RecordBannerEvent( |
web_contents(), url, kTestPackageName, |
AppBannerSettingsHelper::APP_BANNER_EVENT_DID_BLOCK, two_months_ago); |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(PREVIOUSLY_BLOCKED, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
} |
TEST_F(AppBannerSettingsHelperTest, ShouldNotShowAfterShowing) { |
@@ -645,8 +661,9 @@ TEST_F(AppBannerSettingsHelperTest, ShouldNotShowAfterShowing) { |
base::Time one_year_ago = reference_time - base::TimeDelta::FromDays(366); |
// By default the banner should not be shown. |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// Record events such that the banner should show. |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
@@ -655,22 +672,25 @@ TEST_F(AppBannerSettingsHelperTest, ShouldNotShowAfterShowing) { |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, reference_time, |
ui::PAGE_TRANSITION_TYPED); |
- EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(NO_ERROR_DETECTED, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// Show the banner a long time ago. It should still be shown. |
AppBannerSettingsHelper::RecordBannerEvent( |
web_contents(), url, kTestPackageName, |
AppBannerSettingsHelper::APP_BANNER_EVENT_DID_SHOW, one_year_ago); |
- EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(NO_ERROR_DETECTED, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// Show the site more recently. Now it should not be shown. |
AppBannerSettingsHelper::RecordBannerEvent( |
web_contents(), url, kTestPackageName, |
AppBannerSettingsHelper::APP_BANNER_EVENT_DID_SHOW, three_weeks_ago); |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(PREVIOUSLY_IGNORED, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
} |
TEST_F(AppBannerSettingsHelperTest, ShouldNotShowAfterAdding) { |
@@ -682,8 +702,9 @@ TEST_F(AppBannerSettingsHelperTest, ShouldNotShowAfterAdding) { |
base::Time one_year_ago = reference_time - base::TimeDelta::FromDays(366); |
// By default the banner should not be shown. |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// Record events such that the banner should show. |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
@@ -692,16 +713,18 @@ TEST_F(AppBannerSettingsHelperTest, ShouldNotShowAfterAdding) { |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, reference_time, |
ui::PAGE_TRANSITION_TYPED); |
- EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(NO_ERROR_DETECTED, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// Add the site a long time ago. It should not be shown. |
AppBannerSettingsHelper::RecordBannerEvent( |
web_contents(), url, kTestPackageName, |
AppBannerSettingsHelper::APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN, |
one_year_ago); |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(ALREADY_INSTALLED, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
} |
TEST_F(AppBannerSettingsHelperTest, OperatesOnOrigins) { |
@@ -712,8 +735,9 @@ TEST_F(AppBannerSettingsHelperTest, OperatesOnOrigins) { |
base::Time one_day_ago = reference_time - base::TimeDelta::FromDays(1); |
// By default the banner should not be shown. |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// Record events such that the banner should show. |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
@@ -728,8 +752,9 @@ TEST_F(AppBannerSettingsHelperTest, OperatesOnOrigins) { |
NavigateAndCommit(url); |
// The banner should show as settings are per-origin. |
- EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(NO_ERROR_DETECTED, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
} |
TEST_F(AppBannerSettingsHelperTest, ShouldShowWithHigherTotal) { |
@@ -743,40 +768,46 @@ TEST_F(AppBannerSettingsHelperTest, ShouldShowWithHigherTotal) { |
base::Time fourth_day = reference_time + base::TimeDelta::FromDays(3); |
base::Time fifth_day = reference_time + base::TimeDelta::FromDays(4); |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// It should take five visits to trigger the banner. |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, reference_time, |
ui::PAGE_TRANSITION_LINK); |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, reference_time)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, second_day, |
ui::PAGE_TRANSITION_TYPED); |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, second_day)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, third_day, |
ui::PAGE_TRANSITION_GENERATED); |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, third_day)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, fourth_day, |
ui::PAGE_TRANSITION_LINK); |
- EXPECT_FALSE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, fourth_day)); |
+ EXPECT_EQ(INSUFFICIENT_ENGAGEMENT, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
// Visit the site again; now it should be shown. |
AppBannerSettingsHelper::RecordBannerCouldShowEvent( |
web_contents(), url, kTestPackageName, fifth_day, |
ui::PAGE_TRANSITION_TYPED); |
- EXPECT_TRUE(AppBannerSettingsHelper::ShouldShowBanner( |
- web_contents(), url, kTestPackageName, fifth_day)); |
+ EXPECT_EQ(NO_ERROR_DETECTED, |
+ AppBannerSettingsHelper::ShouldShowBanner( |
+ web_contents(), url, kTestPackageName, reference_time)); |
} |
TEST_F(AppBannerSettingsHelperTest, WasLaunchedRecently) { |