Chromium Code Reviews| Index: chrome/browser/permissions/permission_context_base_unittest.cc |
| diff --git a/chrome/browser/permissions/permission_context_base_unittest.cc b/chrome/browser/permissions/permission_context_base_unittest.cc |
| index 4bd7650387c98c5181c9bcb487b7a8e2d16dd6fd..f177f562f801a67ee3716892a27ae920e51ba4ff 100644 |
| --- a/chrome/browser/permissions/permission_context_base_unittest.cc |
| +++ b/chrome/browser/permissions/permission_context_base_unittest.cc |
| @@ -27,6 +27,7 @@ |
| #include "chrome/browser/permissions/permission_request_id.h" |
| #include "chrome/browser/permissions/permission_uma_util.h" |
| #include "chrome/browser/permissions/permission_util.h" |
| +#include "chrome/browser/ui/permission_bubble/mock_permission_prompt_factory.h" |
| #include "chrome/common/chrome_features.h" |
| #include "chrome/common/chrome_switches.h" |
| #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
| @@ -247,19 +248,13 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
| PermissionRequestManager* manager = |
| PermissionRequestManager::FromWebContents(web_contents()); |
| manager->TogglePersist(persist); |
| - switch (response) { |
| - case CONTENT_SETTING_ALLOW: |
| - manager->Accept(); |
| - break; |
| - case CONTENT_SETTING_BLOCK: |
| - manager->Deny(); |
| - break; |
| - case CONTENT_SETTING_ASK: |
| - manager->Closing(); |
| - break; |
| - default: |
| - NOTREACHED(); |
| - } |
| + using AutoResponseType = PermissionRequestManager::AutoResponseType; |
| + AutoResponseType decision = AutoResponseType::DISMISS; |
| + if (response == CONTENT_SETTING_ALLOW) |
| + decision = AutoResponseType::ACCEPT_ALL; |
| + else if (response == CONTENT_SETTING_BLOCK) |
| + decision = AutoResponseType::DENY_ALL; |
|
raymes
2017/05/04 05:00:04
perhaps add
else
NOTREACHED();
to maintain the
Timothy Loh
2017/05/04 08:22:30
The value of response is DCHECK'd above.
|
| + prompt_factory_->set_response_type(decision); |
| #endif |
| } |
| @@ -269,6 +264,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
| TestPermissionContext permission_context(profile(), content_settings_type); |
| GURL url("https://www.google.com"); |
| NavigateAndCommit(url); |
| + LoadCompleted(); |
|
raymes
2017/05/04 05:00:04
Can this just go in NavigateAndCommit?
Timothy Loh
2017/05/04 08:22:30
It's defined in RenderViewHostTestHarness so no, b
raymes
2017/05/08 03:14:26
That sounds good. Or maybe NavigateToUrl
Timothy Loh
2017/05/08 04:06:51
Done (called it SetUpUrl)
|
| base::HistogramTester histograms; |
| const PermissionRequestID id( |
| @@ -421,6 +417,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
| void TestBlockOnSeveralDismissals_TestContent() { |
| GURL url("https://www.google.com"); |
| NavigateAndCommit(url); |
| + LoadCompleted(); |
| base::HistogramTester histograms; |
| // First, ensure that > 3 dismissals behaves correctly. |
| @@ -489,6 +486,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
| void TestVariationBlockOnSeveralDismissals_TestContent() { |
| GURL url("https://www.google.com"); |
| NavigateAndCommit(url); |
| + LoadCompleted(); |
| base::HistogramTester histograms; |
| // Set up the custom parameter and custom value. |
| @@ -596,6 +594,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
| GURL url; |
| ASSERT_FALSE(url.is_valid()); |
| NavigateAndCommit(url); |
| + LoadCompleted(); |
| const PermissionRequestID id( |
| web_contents()->GetRenderProcessHost()->GetID(), |
| @@ -619,6 +618,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
| TestPermissionContext permission_context(profile(), content_settings_type); |
| GURL url("https://www.google.com"); |
| NavigateAndCommit(url); |
| + LoadCompleted(); |
| const PermissionRequestID id( |
| web_contents()->GetRenderProcessHost()->GetID(), |
| @@ -674,6 +674,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
| profile(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
| GURL url("http://www.google.com"); |
| NavigateAndCommit(url); |
| + LoadCompleted(); |
| const PermissionRequestID id0( |
| web_contents()->GetRenderProcessHost()->GetID(), |
| @@ -719,6 +720,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
| ContentSetting expected_permission_status, |
| PermissionEmbargoStatus expected_embargo_reason) { |
| NavigateAndCommit(url); |
| + LoadCompleted(); |
| base::HistogramTester histograms; |
| base::test::ScopedFeatureList scoped_feature_list; |
| scoped_feature_list.InitAndEnableFeature(features::kPermissionsBlacklist); |
| @@ -761,6 +763,12 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
| static_cast<int>(expected_embargo_reason), 1); |
| } |
| + void LoadCompleted() { |
| +#if !defined(OS_ANDROID) |
| + prompt_factory_->DocumentOnLoadCompletedInMainFrame(); |
| +#endif |
| + } |
| + |
| private: |
| // ChromeRenderViewHostTestHarness: |
| void SetUp() override { |
| @@ -769,10 +777,20 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
| InfoBarService::CreateForWebContents(web_contents()); |
| #else |
| PermissionRequestManager::CreateForWebContents(web_contents()); |
| + PermissionRequestManager* manager = |
| + PermissionRequestManager::FromWebContents(web_contents()); |
| + prompt_factory_.reset(new MockPermissionPromptFactory(manager)); |
| + manager->DisplayPendingRequests(); |
| #endif |
| } |
| + void TearDown() override { |
| + prompt_factory_.reset(); |
| + ChromeRenderViewHostTestHarness::TearDown(); |
| + } |
| + |
| DISALLOW_COPY_AND_ASSIGN(PermissionContextBaseTests); |
|
raymes
2017/05/04 05:00:04
This usually goes after all member variables.
Timothy Loh
2017/05/04 08:22:30
Fixed
|
| + std::unique_ptr<MockPermissionPromptFactory> prompt_factory_; |
| }; |
| // Simulates clicking Accept. The permission should be granted and |