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

Unified Diff: chrome/browser/permissions/permission_context_base_unittest.cc

Issue 2853803002: Make PermissionRequestManager::requests_ correspond to the active prompt (Closed)
Patch Set: SetUpUrl Created 3 years, 7 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 | « no previous file | chrome/browser/permissions/permission_prompt_android.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..f12026a3b1d5a74bd02008bd03d030a5a993e050 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;
+ prompt_factory_->set_response_type(decision);
#endif
}
@@ -268,7 +263,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
bool persist) {
TestPermissionContext permission_context(profile(), content_settings_type);
GURL url("https://www.google.com");
- NavigateAndCommit(url);
+ SetUpUrl(url);
base::HistogramTester histograms;
const PermissionRequestID id(
@@ -420,7 +415,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
void TestBlockOnSeveralDismissals_TestContent() {
GURL url("https://www.google.com");
- NavigateAndCommit(url);
+ SetUpUrl(url);
base::HistogramTester histograms;
// First, ensure that > 3 dismissals behaves correctly.
@@ -488,7 +483,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
void TestVariationBlockOnSeveralDismissals_TestContent() {
GURL url("https://www.google.com");
- NavigateAndCommit(url);
+ SetUpUrl(url);
base::HistogramTester histograms;
// Set up the custom parameter and custom value.
@@ -595,7 +590,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
TestPermissionContext permission_context(profile(), content_settings_type);
GURL url;
ASSERT_FALSE(url.is_valid());
- NavigateAndCommit(url);
+ SetUpUrl(url);
const PermissionRequestID id(
web_contents()->GetRenderProcessHost()->GetID(),
@@ -618,7 +613,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
ContentSetting expected_default) {
TestPermissionContext permission_context(profile(), content_settings_type);
GURL url("https://www.google.com");
- NavigateAndCommit(url);
+ SetUpUrl(url);
const PermissionRequestID id(
web_contents()->GetRenderProcessHost()->GetID(),
@@ -673,7 +668,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
TestPermissionContext permission_context(
profile(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
GURL url("http://www.google.com");
- NavigateAndCommit(url);
+ SetUpUrl(url);
const PermissionRequestID id0(
web_contents()->GetRenderProcessHost()->GetID(),
@@ -718,7 +713,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
int timeout,
ContentSetting expected_permission_status,
PermissionEmbargoStatus expected_embargo_reason) {
- NavigateAndCommit(url);
+ SetUpUrl(url);
base::HistogramTester histograms;
base::test::ScopedFeatureList scoped_feature_list;
scoped_feature_list.InitAndEnableFeature(features::kPermissionsBlacklist);
@@ -761,6 +756,13 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
static_cast<int>(expected_embargo_reason), 1);
}
+ void SetUpUrl(const GURL& url) {
+ NavigateAndCommit(url);
+#if !defined(OS_ANDROID)
+ prompt_factory_->DocumentOnLoadCompletedInMainFrame();
+#endif
+ }
+
private:
// ChromeRenderViewHostTestHarness:
void SetUp() override {
@@ -769,9 +771,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();
+ }
+
+ std::unique_ptr<MockPermissionPromptFactory> prompt_factory_;
+
DISALLOW_COPY_AND_ASSIGN(PermissionContextBaseTests);
};
« no previous file with comments | « no previous file | chrome/browser/permissions/permission_prompt_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698