OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/download/download_request_limiter.h" | 5 #include "chrome/browser/download/download_request_limiter.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
10 #include "chrome/browser/download/download_permission_request.h" | 10 #include "chrome/browser/download/download_permission_request.h" |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 class DownloadRequestLimiterTest : public ChromeRenderViewHostTestHarness { | 59 class DownloadRequestLimiterTest : public ChromeRenderViewHostTestHarness { |
60 public: | 60 public: |
61 enum TestingAction { | 61 enum TestingAction { |
62 ACCEPT, | 62 ACCEPT, |
63 CANCEL, | 63 CANCEL, |
64 WAIT | 64 WAIT |
65 }; | 65 }; |
66 | 66 |
67 void SetUp() override { | 67 void SetUp() override { |
68 ChromeRenderViewHostTestHarness::SetUp(); | 68 ChromeRenderViewHostTestHarness::SetUp(); |
| 69 profile_.reset(new TestingProfile()); |
69 InfoBarService::CreateForWebContents(web_contents()); | 70 InfoBarService::CreateForWebContents(web_contents()); |
70 | 71 |
71 PermissionBubbleManager::CreateForWebContents(web_contents()); | 72 PermissionBubbleManager::CreateForWebContents(web_contents()); |
72 view_.reset(new FakePermissionBubbleView(this)); | 73 view_.reset(new FakePermissionBubbleView(this)); |
73 PermissionBubbleManager::FromWebContents(web_contents())-> | 74 PermissionBubbleManager::FromWebContents(web_contents())-> |
74 SetView(view_.get()); | 75 SetView(view_.get()); |
75 | 76 |
76 testing_action_ = ACCEPT; | 77 testing_action_ = ACCEPT; |
77 ask_allow_count_ = cancel_count_ = continue_count_ = 0; | 78 ask_allow_count_ = cancel_count_ = continue_count_ = 0; |
78 download_request_limiter_ = new DownloadRequestLimiter(); | 79 download_request_limiter_ = new DownloadRequestLimiter(); |
79 fake_create_callback_ = base::Bind( | 80 fake_create_callback_ = base::Bind( |
80 &DownloadRequestLimiterTest::FakeCreate, base::Unretained(this)); | 81 &DownloadRequestLimiterTest::FakeCreate, base::Unretained(this)); |
81 DownloadRequestInfoBarDelegate::SetCallbackForTesting( | 82 DownloadRequestInfoBarDelegate::SetCallbackForTesting( |
82 &fake_create_callback_); | 83 &fake_create_callback_); |
83 content_settings_ = new HostContentSettingsMap(profile_.GetPrefs(), false); | 84 content_settings_ = new HostContentSettingsMap(profile_->GetPrefs(), false); |
84 DownloadRequestLimiter::SetContentSettingsForTesting( | 85 DownloadRequestLimiter::SetContentSettingsForTesting( |
85 content_settings_.get()); | 86 content_settings_.get()); |
86 } | 87 } |
87 | 88 |
88 int GetAction() { | 89 int GetAction() { |
89 return testing_action_; | 90 return testing_action_; |
90 } | 91 } |
91 | 92 |
92 void AskAllow() { | 93 void AskAllow() { |
93 ask_allow_count_++; | 94 ask_allow_count_++; |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 // Number of times CancelDownload was invoked. | 192 // Number of times CancelDownload was invoked. |
192 int cancel_count_; | 193 int cancel_count_; |
193 | 194 |
194 // Number of times ShouldAllowDownload was invoked. | 195 // Number of times ShouldAllowDownload was invoked. |
195 int ask_allow_count_; | 196 int ask_allow_count_; |
196 | 197 |
197 scoped_refptr<HostContentSettingsMap> content_settings_; | 198 scoped_refptr<HostContentSettingsMap> content_settings_; |
198 | 199 |
199 private: | 200 private: |
200 DownloadRequestInfoBarDelegate::FakeCreateCallback fake_create_callback_; | 201 DownloadRequestInfoBarDelegate::FakeCreateCallback fake_create_callback_; |
201 TestingProfile profile_; | 202 scoped_ptr<TestingProfile> profile_; |
202 scoped_ptr<FakePermissionBubbleView> view_; | 203 scoped_ptr<FakePermissionBubbleView> view_; |
203 }; | 204 }; |
204 | 205 |
205 void FakePermissionBubbleView::Show( | 206 void FakePermissionBubbleView::Show( |
206 const std::vector<PermissionBubbleRequest*>& requests, | 207 const std::vector<PermissionBubbleRequest*>& requests, |
207 const std::vector<bool>& accept_state) { | 208 const std::vector<bool>& accept_state) { |
208 test_->AskAllow(); | 209 test_->AskAllow(); |
209 int action = test_->GetAction(); | 210 int action = test_->GetAction(); |
210 if (action == DownloadRequestLimiterTest::ACCEPT) { | 211 if (action == DownloadRequestLimiterTest::ACCEPT) { |
211 delegate_->Accept(); | 212 delegate_->Accept(); |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 | 500 |
500 CanDownload(); | 501 CanDownload(); |
501 ExpectAndResetCounts(0, 1, 0, __LINE__); | 502 ExpectAndResetCounts(0, 1, 0, __LINE__); |
502 ASSERT_EQ(DownloadRequestLimiter::PROMPT_BEFORE_DOWNLOAD, | 503 ASSERT_EQ(DownloadRequestLimiter::PROMPT_BEFORE_DOWNLOAD, |
503 download_request_limiter_->GetDownloadStatus(web_contents())); | 504 download_request_limiter_->GetDownloadStatus(web_contents())); |
504 } | 505 } |
505 | 506 |
506 INSTANTIATE_TEST_CASE_P(DownloadRequestLimiterTestsWithAndWithoutBubbles, | 507 INSTANTIATE_TEST_CASE_P(DownloadRequestLimiterTestsWithAndWithoutBubbles, |
507 DownloadRequestLimiterParamTests, | 508 DownloadRequestLimiterParamTests, |
508 ::testing::Values(false, true)); | 509 ::testing::Values(false, true)); |
OLD | NEW |