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 f153cf426e2ced0683bcf8cc8a7f216c8418e7a7..fae7e0a7d12d564c7010aaae11b99521d5a649e2 100644 |
--- a/chrome/browser/download/download_request_limiter_unittest.cc |
+++ b/chrome/browser/download/download_request_limiter_unittest.cc |
@@ -175,16 +175,17 @@ class DownloadRequestLimiterTest : public ChromeRenderViewHostTestHarness { |
base::RunLoop().RunUntilIdle(); |
} |
- void OnUserGesture() { |
- OnUserGestureFor(web_contents()); |
+ void OnUserInteraction(blink::WebInputEvent::Type type) { |
+ OnUserInteractionFor(web_contents(), type); |
} |
- void OnUserGestureFor(WebContents* web_contents) { |
+ void OnUserInteractionFor(WebContents* web_contents, |
+ blink::WebInputEvent::Type type) { |
DownloadRequestLimiter::TabDownloadState* state = |
download_request_limiter_->GetDownloadState(web_contents, nullptr, |
false); |
if (state) |
- state->DidGetUserGesture(); |
+ state->DidGetUserInteraction(type); |
} |
void ExpectAndResetCounts( |
@@ -313,7 +314,7 @@ TEST_F(DownloadRequestLimiterTest, DownloadRequestLimiter_ResetOnNavigation) { |
// Do a user gesture, because we're at allow all, this shouldn't change the |
// state. |
- OnUserGesture(); |
+ OnUserInteraction(blink::WebInputEvent::RawKeyDown); |
ASSERT_EQ(DownloadRequestLimiter::ALLOW_ALL_DOWNLOADS, |
download_request_limiter_->GetDownloadStatus(web_contents())); |
@@ -355,8 +356,34 @@ TEST_F(DownloadRequestLimiterTest, DownloadRequestLimiter_ResetOnUserGesture) { |
ASSERT_EQ(DownloadRequestLimiter::PROMPT_BEFORE_DOWNLOAD, |
download_request_limiter_->GetDownloadStatus(web_contents())); |
- // Do a user gesture, which should reset back to allow one. |
- OnUserGesture(); |
+ // Do a user gesture with mouse scroll, which should be ignored. |
+ OnUserInteraction(blink::WebInputEvent::MouseWheel); |
+ ASSERT_EQ(DownloadRequestLimiter::PROMPT_BEFORE_DOWNLOAD, |
+ download_request_limiter_->GetDownloadStatus(web_contents())); |
+ // Do a user gesture with mouse click, which should reset back to allow one. |
+ OnUserInteraction(blink::WebInputEvent::MouseDown); |
+ ASSERT_EQ(DownloadRequestLimiter::ALLOW_ONE_DOWNLOAD, |
+ download_request_limiter_->GetDownloadStatus(web_contents())); |
+ |
+ // Do one download, which should change to prompt before download. |
+ CanDownload(); |
+ ExpectAndResetCounts(1, 0, 0, __LINE__); |
+ ASSERT_EQ(DownloadRequestLimiter::PROMPT_BEFORE_DOWNLOAD, |
+ download_request_limiter_->GetDownloadStatus(web_contents())); |
+ |
+ // Do a user gesture with gesture tap, which should reset back to allow one. |
+ OnUserInteraction(blink::WebInputEvent::GestureTapDown); |
+ ASSERT_EQ(DownloadRequestLimiter::ALLOW_ONE_DOWNLOAD, |
+ download_request_limiter_->GetDownloadStatus(web_contents())); |
+ |
+ // Do one download, which should change to prompt before download. |
+ CanDownload(); |
+ ExpectAndResetCounts(1, 0, 0, __LINE__); |
+ ASSERT_EQ(DownloadRequestLimiter::PROMPT_BEFORE_DOWNLOAD, |
+ download_request_limiter_->GetDownloadStatus(web_contents())); |
+ |
+ // Do a user gesture with keyboard down, which should reset back to allow one. |
+ OnUserInteraction(blink::WebInputEvent::RawKeyDown); |
ASSERT_EQ(DownloadRequestLimiter::ALLOW_ONE_DOWNLOAD, |
download_request_limiter_->GetDownloadStatus(web_contents())); |
@@ -374,7 +401,7 @@ TEST_F(DownloadRequestLimiterTest, DownloadRequestLimiter_ResetOnUserGesture) { |
ExpectAndResetCounts(0, 1, 1, __LINE__); |
// A user gesture now should NOT change the state. |
- OnUserGesture(); |
+ OnUserInteraction(blink::WebInputEvent::MouseDown); |
ASSERT_EQ(DownloadRequestLimiter::DOWNLOADS_NOT_ALLOWED, |
download_request_limiter_->GetDownloadStatus(web_contents())); |
// And make sure we really can't download. |
@@ -454,7 +481,8 @@ TEST_F(DownloadRequestLimiterTest, DownloadRequestLimiter_RawWebContents) { |
ExpectAndResetCounts(1, 0, 0, __LINE__); |
EXPECT_EQ(DownloadRequestLimiter::PROMPT_BEFORE_DOWNLOAD, |
download_request_limiter_->GetDownloadStatus(web_contents.get())); |
- OnUserGestureFor(web_contents.get()); |
+ OnUserInteractionFor(web_contents.get(), |
+ blink::WebInputEvent::GestureTapDown); |
EXPECT_EQ(DownloadRequestLimiter::ALLOW_ONE_DOWNLOAD, |
download_request_limiter_->GetDownloadStatus(web_contents.get())); |
CanDownloadFor(web_contents.get()); |
@@ -465,7 +493,7 @@ TEST_F(DownloadRequestLimiterTest, DownloadRequestLimiter_RawWebContents) { |
ExpectAndResetCounts(0, 1, 0, __LINE__); |
EXPECT_EQ(DownloadRequestLimiter::DOWNLOADS_NOT_ALLOWED, |
download_request_limiter_->GetDownloadStatus(web_contents.get())); |
- OnUserGestureFor(web_contents.get()); |
+ OnUserInteractionFor(web_contents.get(), blink::WebInputEvent::RawKeyDown); |
EXPECT_EQ(DownloadRequestLimiter::ALLOW_ONE_DOWNLOAD, |
download_request_limiter_->GetDownloadStatus(web_contents.get())); |
CanDownloadFor(web_contents.get()); |