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

Side by Side Diff: chrome/browser/banners/app_banner_manager_browsertest.cc

Issue 2944283002: Replace --add-to-shelf flag with kAppBanners feature. (Closed)
Patch Set: Self nit 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <vector> 5 #include <vector>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 106
107 DISALLOW_COPY_AND_ASSIGN(AppBannerManagerTest); 107 DISALLOW_COPY_AND_ASSIGN(AppBannerManagerTest);
108 }; 108 };
109 109
110 class AppBannerManagerBrowserTest : public InProcessBrowserTest { 110 class AppBannerManagerBrowserTest : public InProcessBrowserTest {
111 public: 111 public:
112 void SetUpOnMainThread() override { 112 void SetUpOnMainThread() override {
113 AppBannerSettingsHelper::SetTotalEngagementToTrigger(10); 113 AppBannerSettingsHelper::SetTotalEngagementToTrigger(10);
114 SiteEngagementScore::SetParamValuesForTesting(); 114 SiteEngagementScore::SetParamValuesForTesting();
115 ASSERT_TRUE(embedded_test_server()->Start()); 115 ASSERT_TRUE(embedded_test_server()->Start());
116
117 // Make sure app banners are disabled in the browser, otherwise they will
118 // interfere with the test.
119 feature_list_.InitAndDisableFeature(features::kAppBanners);
116 InProcessBrowserTest::SetUpOnMainThread(); 120 InProcessBrowserTest::SetUpOnMainThread();
117 } 121 }
118 122
119 void SetUpCommandLine(base::CommandLine* command_line) override {
120 // Make sure app banners are disabled in the browser, otherwise they will
121 // interfere with the test.
122 command_line->AppendSwitch(switches::kDisableAddToShelf);
123 }
124
125 protected: 123 protected:
126 // Returns a test server URL to page |page_url| with |manifest_url| injected 124 // Returns a test server URL to page |page_url| with |manifest_url| injected
127 // as the manifest tag. 125 // as the manifest tag.
128 std::string GetURLOfPageWithManifest(const std::string& page_url, 126 std::string GetURLOfPageWithManifest(const std::string& page_url,
129 const std::string& manifest_url) { 127 const std::string& manifest_url) {
130 return page_url + embedded_test_server()->GetURL(manifest_url).spec(); 128 return page_url + embedded_test_server()->GetURL(manifest_url).spec();
131 } 129 }
132 130
133 // Returns a test server URL to a page controlled by a service worker with 131 // Returns a test server URL to a page controlled by a service worker with
134 // |manifest_url| injected as the manifest tag. 132 // |manifest_url| injected as the manifest tag.
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 histograms.ExpectTotalCount(banners::kMinutesHistogram, 0); 213 histograms.ExpectTotalCount(banners::kMinutesHistogram, 0);
216 histograms.ExpectTotalCount(banners::kInstallableStatusCodeHistogram, 0); 214 histograms.ExpectTotalCount(banners::kInstallableStatusCodeHistogram, 0);
217 } else { 215 } else {
218 histograms.ExpectTotalCount(banners::kMinutesHistogram, 216 histograms.ExpectTotalCount(banners::kMinutesHistogram,
219 (manager->will_show() ? 1 : 0)); 217 (manager->will_show() ? 1 : 0));
220 histograms.ExpectUniqueSample(banners::kInstallableStatusCodeHistogram, 218 histograms.ExpectUniqueSample(banners::kInstallableStatusCodeHistogram,
221 expected_code_for_histogram, 1); 219 expected_code_for_histogram, 1);
222 EXPECT_FALSE(manager->need_to_log_status()); 220 EXPECT_FALSE(manager->need_to_log_status());
223 } 221 }
224 } 222 }
223
224 base::test::ScopedFeatureList feature_list_;
225 }; 225 };
226 226
227 IN_PROC_BROWSER_TEST_F(AppBannerManagerBrowserTest, WebAppBannerCreated) { 227 IN_PROC_BROWSER_TEST_F(AppBannerManagerBrowserTest, WebAppBannerCreated) {
228 std::unique_ptr<AppBannerManagerTest> manager( 228 std::unique_ptr<AppBannerManagerTest> manager(
229 CreateAppBannerManager(browser())); 229 CreateAppBannerManager(browser()));
230 std::vector<double> engagement_scores{0, 10}; 230 std::vector<double> engagement_scores{0, 10};
231 RunBannerTest(browser(), manager.get(), "/banners/manifest_test_page.html", 231 RunBannerTest(browser(), manager.get(), "/banners/manifest_test_page.html",
232 engagement_scores, SHOWING_WEB_APP_BANNER, true); 232 engagement_scores, SHOWING_WEB_APP_BANNER, true);
233 } 233 }
234 234
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 CreateAppBannerManager(incognito_browser)); 386 CreateAppBannerManager(incognito_browser));
387 std::vector<double> engagement_scores{10}; 387 std::vector<double> engagement_scores{10};
388 RunBannerTest(incognito_browser, manager.get(), 388 RunBannerTest(incognito_browser, manager.get(),
389 "/banners/manifest_test_page.html", engagement_scores, 389 "/banners/manifest_test_page.html", engagement_scores,
390 IN_INCOGNITO, false); 390 IN_INCOGNITO, false);
391 } 391 }
392 392
393 IN_PROC_BROWSER_TEST_F(AppBannerManagerBrowserTest, 393 IN_PROC_BROWSER_TEST_F(AppBannerManagerBrowserTest,
394 CheckOnLoadWithSufficientEngagement) { 394 CheckOnLoadWithSufficientEngagement) {
395 base::test::ScopedFeatureList feature_list; 395 base::test::ScopedFeatureList feature_list;
396 feature_list.InitAndEnableFeature( 396 feature_list.InitWithFeatures({features::kCheckInstallabilityForBannerOnLoad},
397 features::kCheckInstallabilityForBannerOnLoad); 397 {features::kAppBanners});
398 std::unique_ptr<AppBannerManagerTest> manager( 398 std::unique_ptr<AppBannerManagerTest> manager(
399 CreateAppBannerManager(browser())); 399 CreateAppBannerManager(browser()));
400 std::vector<double> engagement_scores{10}; 400 std::vector<double> engagement_scores{10};
401 RunBannerTest(browser(), manager.get(), "/banners/manifest_test_page.html", 401 RunBannerTest(browser(), manager.get(), "/banners/manifest_test_page.html",
402 engagement_scores, SHOWING_WEB_APP_BANNER, true); 402 engagement_scores, SHOWING_WEB_APP_BANNER, true);
403 } 403 }
404 404
405 IN_PROC_BROWSER_TEST_F(AppBannerManagerBrowserTest, 405 IN_PROC_BROWSER_TEST_F(AppBannerManagerBrowserTest,
406 CheckOnLoadWithSufficientEngagementCancelDirect) { 406 CheckOnLoadWithSufficientEngagementCancelDirect) {
407 base::test::ScopedFeatureList feature_list; 407 base::test::ScopedFeatureList feature_list;
408 feature_list.InitAndEnableFeature( 408 feature_list.InitWithFeatures({features::kCheckInstallabilityForBannerOnLoad},
409 features::kCheckInstallabilityForBannerOnLoad); 409 {features::kAppBanners});
410 std::unique_ptr<AppBannerManagerTest> manager( 410 std::unique_ptr<AppBannerManagerTest> manager(
411 CreateAppBannerManager(browser())); 411 CreateAppBannerManager(browser()));
412 std::vector<double> engagement_scores{10}; 412 std::vector<double> engagement_scores{10};
413 RunBannerTest(browser(), manager.get(), "/banners/cancel_test_page.html", 413 RunBannerTest(browser(), manager.get(), "/banners/cancel_test_page.html",
414 engagement_scores, RENDERER_CANCELLED, false); 414 engagement_scores, RENDERER_CANCELLED, false);
415 } 415 }
416 416
417 IN_PROC_BROWSER_TEST_F( 417 IN_PROC_BROWSER_TEST_F(
418 AppBannerManagerBrowserTest, 418 AppBannerManagerBrowserTest,
419 CheckOnLoadWithSufficientEngagementCancelBannerAfterPromptInHandler) { 419 CheckOnLoadWithSufficientEngagementCancelBannerAfterPromptInHandler) {
420 base::test::ScopedFeatureList feature_list; 420 base::test::ScopedFeatureList feature_list;
421 feature_list.InitAndEnableFeature( 421 feature_list.InitWithFeatures({features::kCheckInstallabilityForBannerOnLoad},
422 features::kCheckInstallabilityForBannerOnLoad); 422 {features::kAppBanners});
423 std::unique_ptr<AppBannerManagerTest> manager( 423 std::unique_ptr<AppBannerManagerTest> manager(
424 CreateAppBannerManager(browser())); 424 CreateAppBannerManager(browser()));
425 std::vector<double> engagement_scores{10}; 425 std::vector<double> engagement_scores{10};
426 RunBannerTest(browser(), manager.get(), 426 RunBannerTest(browser(), manager.get(),
427 "/banners/prompt_in_handler_test_page.html", engagement_scores, 427 "/banners/prompt_in_handler_test_page.html", engagement_scores,
428 SHOWING_WEB_APP_BANNER, true); 428 SHOWING_WEB_APP_BANNER, true);
429 std::string cancel_test_page_url = 429 std::string cancel_test_page_url =
430 GetURLOfPageWithManifest("/banners/cancel_test_page.html?manifest=", 430 GetURLOfPageWithManifest("/banners/cancel_test_page.html?manifest=",
431 "/banners/manifest_different_start_url.json"); 431 "/banners/manifest_different_start_url.json");
432 RunBannerTest(browser(), manager.get(), cancel_test_page_url, 432 RunBannerTest(browser(), manager.get(), cancel_test_page_url,
433 engagement_scores, RENDERER_CANCELLED, false); 433 engagement_scores, RENDERER_CANCELLED, false);
434 } 434 }
435 435
436 IN_PROC_BROWSER_TEST_F(AppBannerManagerBrowserTest, 436 IN_PROC_BROWSER_TEST_F(AppBannerManagerBrowserTest,
437 CheckOnLoadWithoutSufficientEngagement) { 437 CheckOnLoadWithoutSufficientEngagement) {
438 AppBannerSettingsHelper::SetTotalEngagementToTrigger(1); 438 AppBannerSettingsHelper::SetTotalEngagementToTrigger(1);
439 SiteEngagementService* service = 439 SiteEngagementService* service =
440 SiteEngagementService::Get(browser()->profile()); 440 SiteEngagementService::Get(browser()->profile());
441 base::test::ScopedFeatureList feature_list; 441 base::test::ScopedFeatureList feature_list;
442 feature_list.InitAndEnableFeature( 442 feature_list.InitWithFeatures({features::kCheckInstallabilityForBannerOnLoad},
443 features::kCheckInstallabilityForBannerOnLoad); 443 {features::kAppBanners});
444 std::unique_ptr<AppBannerManagerTest> manager( 444 std::unique_ptr<AppBannerManagerTest> manager(
445 CreateAppBannerManager(browser())); 445 CreateAppBannerManager(browser()));
446 446
447 base::HistogramTester histograms; 447 base::HistogramTester histograms;
448 GURL test_url = 448 GURL test_url =
449 embedded_test_server()->GetURL("/banners/manifest_test_page.html"); 449 embedded_test_server()->GetURL("/banners/manifest_test_page.html");
450 service->ResetBaseScoreForURL(test_url, 0); 450 service->ResetBaseScoreForURL(test_url, 0);
451 451
452 // First run through: expect the manager to end up stopped in the pending 452 // First run through: expect the manager to end up stopped in the pending
453 // state, without showing a banner. 453 // state, without showing a banner.
(...skipping 27 matching lines...) Expand all
481 EXPECT_FALSE(manager->need_to_log_status()); 481 EXPECT_FALSE(manager->need_to_log_status());
482 EXPECT_TRUE(manager->is_complete()); 482 EXPECT_TRUE(manager->is_complete());
483 483
484 histograms.ExpectTotalCount(banners::kMinutesHistogram, 1); 484 histograms.ExpectTotalCount(banners::kMinutesHistogram, 1);
485 histograms.ExpectUniqueSample(banners::kInstallableStatusCodeHistogram, 485 histograms.ExpectUniqueSample(banners::kInstallableStatusCodeHistogram,
486 SHOWING_WEB_APP_BANNER, 1); 486 SHOWING_WEB_APP_BANNER, 1);
487 } 487 }
488 488
489 IN_PROC_BROWSER_TEST_F(AppBannerManagerBrowserTest, CheckOnLoadThenNavigate) { 489 IN_PROC_BROWSER_TEST_F(AppBannerManagerBrowserTest, CheckOnLoadThenNavigate) {
490 base::test::ScopedFeatureList feature_list; 490 base::test::ScopedFeatureList feature_list;
491 feature_list.InitAndEnableFeature( 491 feature_list.InitWithFeatures({features::kCheckInstallabilityForBannerOnLoad},
492 features::kCheckInstallabilityForBannerOnLoad); 492 {features::kAppBanners});
493 std::unique_ptr<AppBannerManagerTest> manager( 493 std::unique_ptr<AppBannerManagerTest> manager(
494 CreateAppBannerManager(browser())); 494 CreateAppBannerManager(browser()));
495 495
496 base::HistogramTester histograms; 496 base::HistogramTester histograms;
497 GURL test_url = 497 GURL test_url =
498 embedded_test_server()->GetURL("/banners/manifest_test_page.html"); 498 embedded_test_server()->GetURL("/banners/manifest_test_page.html");
499 499
500 // First run through: expect the manager to end up stopped in the pending 500 // First run through: expect the manager to end up stopped in the pending
501 // state, without showing a banner. 501 // state, without showing a banner.
502 { 502 {
(...skipping 21 matching lines...) Expand all
524 EXPECT_FALSE(manager->will_show()); 524 EXPECT_FALSE(manager->will_show());
525 EXPECT_FALSE(manager->is_active()); 525 EXPECT_FALSE(manager->is_active());
526 EXPECT_FALSE(manager->need_to_log_status()); 526 EXPECT_FALSE(manager->need_to_log_status());
527 527
528 histograms.ExpectTotalCount(banners::kMinutesHistogram, 0); 528 histograms.ExpectTotalCount(banners::kMinutesHistogram, 0);
529 histograms.ExpectUniqueSample(banners::kInstallableStatusCodeHistogram, 529 histograms.ExpectUniqueSample(banners::kInstallableStatusCodeHistogram,
530 INSUFFICIENT_ENGAGEMENT, 1); 530 INSUFFICIENT_ENGAGEMENT, 1);
531 } 531 }
532 532
533 } // namespace banners 533 } // namespace banners
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698