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

Unified Diff: chrome/browser/download/download_request_limiter_unittest.cc

Issue 811163004: Update DownloadRequestLimiter tests for the permission bubble (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated DownloadPermissionRequest::HasUserGesture Created 5 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/download/download_permission_request.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/download/download_request_limiter_unittest.cc
diff --git a/chrome/browser/download/download_request_limiter_unittest.cc b/chrome/browser/download/download_request_limiter_unittest.cc
index 33c3c21403714d7f80680a9e5a6163e2acbfd7e8..c3901500835b2a3942f0e43963998132c60d1ccb 100644
--- a/chrome/browser/download/download_request_limiter_unittest.cc
+++ b/chrome/browser/download/download_request_limiter_unittest.cc
@@ -5,10 +5,13 @@
#include "chrome/browser/download/download_request_limiter.h"
#include "base/bind.h"
+#include "base/command_line.h"
#include "base/run_loop.h"
+#include "chrome/browser/download/download_permission_request.h"
#include "chrome/browser/download/download_request_infobar_delegate.h"
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/ui/website_settings/permission_bubble_manager.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"
#include "components/content_settings/core/browser/host_content_settings_map.h"
@@ -68,9 +71,8 @@ class DownloadRequestLimiterTest : public ChromeRenderViewHostTestHarness {
PermissionBubbleManager::CreateForWebContents(web_contents());
view_.reset(new FakePermissionBubbleView(this));
- PermissionBubbleManager* manager =
- PermissionBubbleManager::FromWebContents(web_contents());
- manager->SetView(view_.get());
+ PermissionBubbleManager::FromWebContents(web_contents())->
+ SetView(view_.get());
testing_action_ = ACCEPT;
ask_allow_count_ = cancel_count_ = continue_count_ = 0;
@@ -182,6 +184,11 @@ class DownloadRequestLimiterTest : public ChromeRenderViewHostTestHarness {
setting);
}
+ void BubbleManagerDocumentLoadCompleted() {
asanka 2015/02/05 19:44:08 Should this be a no-op if permission bubbles are d
felt 2015/02/06 09:31:28 Done.
+ PermissionBubbleManager::FromWebContents(web_contents())->
+ DocumentOnLoadCompletedInMainFrame();
+ }
+
scoped_refptr<DownloadRequestLimiter> download_request_limiter_;
// The action that FakeCreate() should take.
@@ -221,8 +228,34 @@ void FakePermissionBubbleView::Show(
}
}
-TEST_F(DownloadRequestLimiterTest,
+class DownloadRequestLimiterParamTests
+ : public DownloadRequestLimiterTest,
+ public ::testing::WithParamInterface<bool> {
+ protected:
+ DownloadRequestLimiterParamTests() {}
+ ~DownloadRequestLimiterParamTests() override {}
+
+ void SetUp() override {
+ DownloadRequestLimiterTest::SetUp();
+#if !defined(OS_ANDROID)
+ if (GetParam()) {
+ base::CommandLine::ForCurrentProcess()->AppendSwitch(
+ switches::kEnablePermissionsBubbles);
+ EXPECT_TRUE(PermissionBubbleManager::Enabled());
+ } else {
+ base::CommandLine::ForCurrentProcess()->AppendSwitch(
+ switches::kDisablePermissionsBubbles);
+ }
+#endif
+ }
+ private:
+ DISALLOW_COPY_AND_ASSIGN(DownloadRequestLimiterParamTests);
+};
+
+TEST_P(DownloadRequestLimiterParamTests,
DownloadRequestLimiter_Allow) {
+ BubbleManagerDocumentLoadCompleted();
+
// All tabs should initially start at ALLOW_ONE_DOWNLOAD.
ASSERT_EQ(DownloadRequestLimiter::ALLOW_ONE_DOWNLOAD,
download_request_limiter_->GetDownloadStatus(web_contents()));
@@ -252,9 +285,10 @@ TEST_F(DownloadRequestLimiterTest,
download_request_limiter_->GetDownloadStatus(web_contents()));
}
-TEST_F(DownloadRequestLimiterTest,
+TEST_P(DownloadRequestLimiterParamTests,
DownloadRequestLimiter_ResetOnNavigation) {
NavigateAndCommit(GURL("http://foo.com/bar"));
+ BubbleManagerDocumentLoadCompleted();
// Do two downloads, allowing the second so that we end up with allow all.
CanDownload();
@@ -271,6 +305,7 @@ TEST_F(DownloadRequestLimiterTest,
// Navigate to a new URL with the same host, which shouldn't reset the allow
// all state.
NavigateAndCommit(GURL("http://foo.com/bar2"));
+ BubbleManagerDocumentLoadCompleted();
CanDownload();
ExpectAndResetCounts(1, 0, 0, __LINE__);
ASSERT_EQ(DownloadRequestLimiter::ALLOW_ALL_DOWNLOADS,
@@ -284,6 +319,7 @@ TEST_F(DownloadRequestLimiterTest,
// Navigate to a completely different host, which should reset the state.
NavigateAndCommit(GURL("http://fooey.com"));
+ BubbleManagerDocumentLoadCompleted();
ASSERT_EQ(DownloadRequestLimiter::ALLOW_ONE_DOWNLOAD,
download_request_limiter_->GetDownloadStatus(web_contents()));
@@ -302,15 +338,17 @@ TEST_F(DownloadRequestLimiterTest,
// Navigate to a new URL with the same host, which shouldn't reset the allow
// all state.
NavigateAndCommit(GURL("http://fooey.com/bar2"));
+ BubbleManagerDocumentLoadCompleted();
CanDownload();
ExpectAndResetCounts(0, 1, 0, __LINE__);
ASSERT_EQ(DownloadRequestLimiter::DOWNLOADS_NOT_ALLOWED,
download_request_limiter_->GetDownloadStatus(web_contents()));
}
-TEST_F(DownloadRequestLimiterTest,
+TEST_P(DownloadRequestLimiterParamTests,
DownloadRequestLimiter_ResetOnUserGesture) {
NavigateAndCommit(GURL("http://foo.com/bar"));
+ BubbleManagerDocumentLoadCompleted();
// Do one download, which should change to prompt before download.
CanDownload();
@@ -348,9 +386,10 @@ TEST_F(DownloadRequestLimiterTest,
download_request_limiter_->GetDownloadStatus(web_contents()));
}
-TEST_F(DownloadRequestLimiterTest,
+TEST_P(DownloadRequestLimiterParamTests,
DownloadRequestLimiter_ResetOnReload) {
NavigateAndCommit(GURL("http://foo.com/bar"));
+ BubbleManagerDocumentLoadCompleted();
ASSERT_EQ(DownloadRequestLimiter::ALLOW_ONE_DOWNLOAD,
download_request_limiter_->GetDownloadStatus(web_contents()));
@@ -396,7 +435,7 @@ TEST_F(DownloadRequestLimiterTest,
download_request_limiter_->GetDownloadStatus(web_contents()));
}
-TEST_F(DownloadRequestLimiterTest,
+TEST_P(DownloadRequestLimiterParamTests,
DownloadRequestLimiter_RawWebContents) {
scoped_ptr<WebContents> web_contents(CreateTestWebContents());
@@ -435,9 +474,10 @@ TEST_F(DownloadRequestLimiterTest,
download_request_limiter_->GetDownloadStatus(web_contents.get()));
}
-TEST_F(DownloadRequestLimiterTest,
+TEST_P(DownloadRequestLimiterParamTests,
DownloadRequestLimiter_SetHostContentSetting) {
NavigateAndCommit(GURL("http://foo.com/bar"));
+ BubbleManagerDocumentLoadCompleted();
SetHostContentSetting(web_contents(), CONTENT_SETTING_ALLOW);
CanDownload();
@@ -462,3 +502,7 @@ TEST_F(DownloadRequestLimiterTest,
ASSERT_EQ(DownloadRequestLimiter::PROMPT_BEFORE_DOWNLOAD,
download_request_limiter_->GetDownloadStatus(web_contents()));
}
+
+INSTANTIATE_TEST_CASE_P(DownloadRequestLimiterTestsWithAndWithoutBubbles,
+ DownloadRequestLimiterParamTests,
+ ::testing::Values(false, true));
« no previous file with comments | « chrome/browser/download/download_permission_request.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698