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 8ad661b1abd0d4779af256e60abe93ffbcbe4253..0d119c6fb33c9d56caf54a29658ae69ca94f36e9 100644 |
--- a/chrome/browser/banners/app_banner_data_fetcher_browsertest.cc |
+++ b/chrome/browser/banners/app_banner_data_fetcher_browsertest.cc |
@@ -4,6 +4,7 @@ |
#include "chrome/browser/banners/app_banner_data_fetcher.h" |
+#include "base/command_line.h" |
#include "base/message_loop/message_loop.h" |
#include "base/run_loop.h" |
#include "base/task_runner.h" |
@@ -11,6 +12,7 @@ |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
#include "chrome/test/base/in_process_browser_test.h" |
#include "chrome/test/base/ui_test_utils.h" |
+#include "content/public/common/content_switches.h" |
#include "content/public/test/test_navigation_observer.h" |
#include "net/test/embedded_test_server/embedded_test_server.h" |
@@ -67,10 +69,15 @@ class AppBannerDataFetcherBrowserTest : public InProcessBrowserTest, |
return false; |
} |
+ void SetUpCommandLine(base::CommandLine* command_line) override { |
+ command_line->AppendSwitch( |
+ switches::kEnableExperimentalWebPlatformFeatures); |
+ } |
+ |
protected: |
void RunFetcher(const GURL& url, |
bool expected_manifest_valid, |
- bool expected_outcome) { |
+ bool expected_to_show) { |
content::WebContents* web_contents = |
browser()->tab_strip_model()->GetActiveWebContents(); |
scoped_refptr<AppBannerDataFetcher> fetcher( |
@@ -85,7 +92,7 @@ class AppBannerDataFetcherBrowserTest : public InProcessBrowserTest, |
run_loop.Run(); |
EXPECT_EQ(expected_manifest_valid, !manifest_was_invalid_); |
- EXPECT_EQ(expected_outcome, observer->will_show()); |
+ EXPECT_EQ(expected_to_show, observer->will_show()); |
ASSERT_FALSE(fetcher->is_active()); |
} |
@@ -134,4 +141,19 @@ IN_PROC_BROWSER_TEST_F(AppBannerDataFetcherBrowserTest, NoManifest) { |
RunFetcher(web_contents->GetURL(), false, false); |
} |
+IN_PROC_BROWSER_TEST_F(AppBannerDataFetcherBrowserTest, CancelBanner) { |
+ 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); |
+ |
+ // 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); |
+} |
+ |
} // namespace banners |