| Index: chrome/browser/banners/app_banner_data_fetcher_browsertest.cc
|
| diff --git a/chrome/browser/banners/app_banner_data_fetcher_browsertest.cc b/chrome/browser/banners/app_banner_data_fetcher_browsertest.cc
|
| index 0d119c6fb33c9d56caf54a29658ae69ca94f36e9..c72e861bca8742e26b8e82fb3a0afc2dc7a250be 100644
|
| --- a/chrome/browser/banners/app_banner_data_fetcher_browsertest.cc
|
| +++ b/chrome/browser/banners/app_banner_data_fetcher_browsertest.cc
|
| @@ -54,8 +54,7 @@ class TestObserver : public AppBannerDataFetcher::Observer {
|
| class AppBannerDataFetcherBrowserTest : public InProcessBrowserTest,
|
| public AppBannerDataFetcher::Delegate {
|
| public:
|
| - AppBannerDataFetcherBrowserTest() : manifest_was_invalid_(false),
|
| - weak_factory_(this) {
|
| + AppBannerDataFetcherBrowserTest() : weak_factory_(this) {
|
| }
|
|
|
| void SetUpOnMainThread() override {
|
| @@ -63,9 +62,11 @@ class AppBannerDataFetcherBrowserTest : public InProcessBrowserTest,
|
| InProcessBrowserTest::SetUpOnMainThread();
|
| }
|
|
|
| - bool OnInvalidManifest(AppBannerDataFetcher* fetcher) override {
|
| + bool HandleNonWebApp(const std::string& platform,
|
| + const GURL& url,
|
| + const std::string& id) override {
|
| base::MessageLoop::current()->PostTask(FROM_HERE, quit_closure_);
|
| - manifest_was_invalid_ = true;
|
| + non_web_platform_ = platform;
|
| return false;
|
| }
|
|
|
| @@ -76,7 +77,7 @@ class AppBannerDataFetcherBrowserTest : public InProcessBrowserTest,
|
|
|
| protected:
|
| void RunFetcher(const GURL& url,
|
| - bool expected_manifest_valid,
|
| + const std::string& expected_non_web_platform,
|
| bool expected_to_show) {
|
| content::WebContents* web_contents =
|
| browser()->tab_strip_model()->GetActiveWebContents();
|
| @@ -91,7 +92,7 @@ class AppBannerDataFetcherBrowserTest : public InProcessBrowserTest,
|
| fetcher->Start(url);
|
| run_loop.Run();
|
|
|
| - EXPECT_EQ(expected_manifest_valid, !manifest_was_invalid_);
|
| + EXPECT_EQ(expected_non_web_platform, non_web_platform_);
|
| EXPECT_EQ(expected_to_show, observer->will_show());
|
| ASSERT_FALSE(fetcher->is_active());
|
| }
|
| @@ -106,54 +107,69 @@ class AppBannerDataFetcherBrowserTest : public InProcessBrowserTest,
|
| }
|
|
|
| private:
|
| - bool manifest_was_invalid_;
|
| + std::string non_web_platform_;
|
| base::Closure quit_closure_;
|
| base::WeakPtrFactory<AppBannerDataFetcherBrowserTest> weak_factory_;
|
| };
|
|
|
| IN_PROC_BROWSER_TEST_F(AppBannerDataFetcherBrowserTest, WebAppBannerCreated) {
|
| - std::string valid_page = "/banners/manifest_test_page.html";
|
| + std::string valid_page("/banners/manifest_test_page.html");
|
| GURL test_url = embedded_test_server()->GetURL(valid_page);
|
| content::WebContents* web_contents =
|
| browser()->tab_strip_model()->GetActiveWebContents();
|
|
|
| LoadURLAndWaitForServiceWorker(test_url);
|
| - RunFetcher(web_contents->GetURL(), true, false);
|
| + RunFetcher(web_contents->GetURL(), std::string(), false);
|
|
|
| // Advance by a day, then visit the page again to trigger the banner.
|
| AppBannerDataFetcher::SetTimeDeltaForTesting(1);
|
| LoadURLAndWaitForServiceWorker(test_url);
|
| - RunFetcher(web_contents->GetURL(), true, true);
|
| + RunFetcher(web_contents->GetURL(), std::string(), true);
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(AppBannerDataFetcherBrowserTest, PlayAppManifest) {
|
| + std::string valid_page("/banners/play_app_test_page.html");
|
| + GURL test_url = embedded_test_server()->GetURL(valid_page);
|
| + content::WebContents* web_contents =
|
| + browser()->tab_strip_model()->GetActiveWebContents();
|
| +
|
| + // Native banners do not require the SW, so we can just load the URL.
|
| + ui_test_utils::NavigateToURL(browser(), test_url);
|
| + std::string play_platform("play");
|
| + RunFetcher(web_contents->GetURL(), play_platform, false);
|
| +
|
| + // The logic to get the details for a play app banner are only on android
|
| + // builds, so this test does not check that the banner is shown.
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(AppBannerDataFetcherBrowserTest, NoManifest) {
|
| - std::string valid_page = "/banners/no_manifest_test_page.html";
|
| + std::string valid_page("/banners/no_manifest_test_page.html");
|
| GURL test_url = embedded_test_server()->GetURL(valid_page);
|
| content::WebContents* web_contents =
|
| browser()->tab_strip_model()->GetActiveWebContents();
|
|
|
| LoadURLAndWaitForServiceWorker(test_url);
|
| - RunFetcher(web_contents->GetURL(), false, false);
|
| + RunFetcher(web_contents->GetURL(), std::string(), false);
|
|
|
| // Advance by a day, then visit the page again. Still shouldn't see a banner.
|
| AppBannerDataFetcher::SetTimeDeltaForTesting(1);
|
| LoadURLAndWaitForServiceWorker(test_url);
|
| - RunFetcher(web_contents->GetURL(), false, false);
|
| + RunFetcher(web_contents->GetURL(), std::string(), false);
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(AppBannerDataFetcherBrowserTest, CancelBanner) {
|
| - std::string valid_page = "/banners/cancel_test_page.html";
|
| + std::string valid_page("/banners/cancel_test_page.html");
|
| GURL test_url = embedded_test_server()->GetURL(valid_page);
|
| content::WebContents* web_contents =
|
| browser()->tab_strip_model()->GetActiveWebContents();
|
|
|
| LoadURLAndWaitForServiceWorker(test_url);
|
| - RunFetcher(web_contents->GetURL(), true, false);
|
| + RunFetcher(web_contents->GetURL(), std::string(), false);
|
|
|
| // Advance by a day, then visit the page again. Still shouldn't see a banner.
|
| AppBannerDataFetcher::SetTimeDeltaForTesting(1);
|
| LoadURLAndWaitForServiceWorker(test_url);
|
| - RunFetcher(web_contents->GetURL(), true, false);
|
| + RunFetcher(web_contents->GetURL(), std::string(), false);
|
| }
|
|
|
| } // namespace banners
|
|
|