Chromium Code Reviews| Index: chrome/browser/push_messaging/push_messaging_browsertest.cc |
| diff --git a/chrome/browser/push_messaging/push_messaging_browsertest.cc b/chrome/browser/push_messaging/push_messaging_browsertest.cc |
| index 024accdb7bb1a361dfd5708353fbac0ca04492bf..8dc6def69a2f6061e174146ad111e6bc419cf01b 100644 |
| --- a/chrome/browser/push_messaging/push_messaging_browsertest.cc |
| +++ b/chrome/browser/push_messaging/push_messaging_browsertest.cc |
| @@ -23,6 +23,7 @@ |
| #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" |
| #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h" |
| #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
| +#include "chrome/browser/engagement/site_engagement_score.h" |
| #include "chrome/browser/engagement/site_engagement_service.h" |
| #include "chrome/browser/gcm/fake_gcm_profile_service.h" |
| #include "chrome/browser/gcm/gcm_profile_service_factory.h" |
| @@ -124,6 +125,7 @@ class PushMessagingBrowserTest : public InProcessBrowserTest { |
| notification_manager_.reset(new StubNotificationUIManager); |
| + SiteEngagementScore::SetParamValuesForTesting(); |
| InProcessBrowserTest::SetUp(); |
| } |
| void SetUpCommandLine(base::CommandLine* command_line) override { |
| @@ -272,10 +274,15 @@ class PushMessagingBrowserTest : public InProcessBrowserTest { |
| PushMessagingServiceImpl* push_service() const { return push_service_; } |
| - void SetSiteEngagementScore(const GURL& url, double score) { |
| + void SetSiteEngagementScore(const GURL& url, |
| + double score, |
| + double expected_score) { |
| + // There will be a bonus of 5.0 points for having notification permission |
| + // granted, so we assert that the final score is as expected. |
| SiteEngagementService* service = |
| SiteEngagementService::Get(GetBrowser()->profile()); |
| service->ResetScoreForURL(url, score); |
|
benwells
2017/03/08 04:19:33
This name is a bit confusing - should we make it R
dominickn
2017/03/08 04:44:52
Filed crbug.com/699381
|
| + EXPECT_EQ(expected_score, service->GetScore(url)); |
| } |
| protected: |
| @@ -1240,7 +1247,7 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
| // Set the site engagement score for the site. Setting it to 10 means it |
| // should have a budget of 4, enough for two non-shown notification, which |
| // cost 2 each. |
| - SetSiteEngagementScore(web_contents->GetURL(), 10.0); |
| + SetSiteEngagementScore(web_contents->GetURL(), 5.0, 10.0); |
| // If the site is visible in an active tab, we should not force a notification |
| // to be shown. Try it twice, since we allow one mistake per 10 push events. |
| @@ -1342,16 +1349,14 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
| content::WebContents* web_contents = |
| GetBrowser()->tab_strip_model()->GetActiveWebContents(); |
| + SetSiteEngagementScore(web_contents->GetURL(), 0.0, 5.0); |
| + |
| ui_test_utils::NavigateToURLWithDisposition( |
| GetBrowser(), GURL("about:blank"), |
| WindowOpenDisposition::NEW_FOREGROUND_TAB, |
| ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| - SetSiteEngagementScore(web_contents->GetURL(), 0.0); |
| - |
| - // If the Service Worker push event handler does not show a notification, we |
| - // should show a forced one providing there is no foreground tab and the |
| - // origin ran out of budget. |
| + // Send a missed notification to use up the budget. |
| gcm::IncomingMessage message; |
| message.sender_id = GetTestApplicationServerKey(); |
| message.raw_data = "testdata"; |
| @@ -1360,6 +1365,14 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
| SendMessageAndWaitUntilHandled(app_identifier, message); |
| ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents)); |
| EXPECT_EQ("testdata", script_result); |
| + EXPECT_EQ(0u, notification_manager()->GetNotificationCount()); |
| + |
| + // If the Service Worker push event handler does not show a notification, we |
| + // should show a forced one providing there is no foreground tab and the |
| + // origin ran out of budget. |
| + SendMessageAndWaitUntilHandled(app_identifier, message); |
| + ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents)); |
| + EXPECT_EQ("testdata", script_result); |
| // Because the --allow-silent-push command line flag has not been passed, |
| // this should have shown a default notification. |