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

Unified Diff: chrome/browser/push_messaging/push_messaging_permission_context_unittest.cc

Issue 1726323002: Have Permission{Manager,Service} use Origin. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Clarify and test Origin.empty_. Created 4 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
Index: chrome/browser/push_messaging/push_messaging_permission_context_unittest.cc
diff --git a/chrome/browser/push_messaging/push_messaging_permission_context_unittest.cc b/chrome/browser/push_messaging/push_messaging_permission_context_unittest.cc
index 68477c0db3ba7b22f632b17581d1dbcbed71fe50..3c93fd4ea0fa1c563d5d33cea8fb2ba1eaf4bbba 100644
--- a/chrome/browser/push_messaging/push_messaging_permission_context_unittest.cc
+++ b/chrome/browser/push_messaging/push_messaging_permission_context_unittest.cc
@@ -13,6 +13,8 @@
#include "components/content_settings/core/common/content_settings_types.h"
#include "content/public/browser/web_contents.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+#include "url/origin.h"
namespace {
@@ -36,8 +38,8 @@ class TestPushMessagingPermissionContext
private:
// PushMessagingPermissionContext:
void NotifyPermissionSet(const PermissionRequestID& id,
- const GURL& requesting_origin,
- const GURL& embedder_origin,
+ const url::Origin& requesting_origin,
+ const url::Origin& embedder_origin,
const BrowserPermissionCallback& callback,
bool persist,
ContentSetting content_setting) override {
@@ -83,15 +85,17 @@ class PushMessagingPermissionContextTest
TEST_F(PushMessagingPermissionContextTest, HasPermissionPrompt) {
TestingProfile profile;
PushMessagingPermissionContext context(&profile);
+ const GURL url_a(kOriginA);
+ const url::Origin origin_a(url_a);
EXPECT_EQ(CONTENT_SETTING_ASK,
- context.GetPermissionStatus(GURL(kOriginA), GURL(kOriginA)));
+ context.GetPermissionStatus(origin_a, origin_a));
// Just granting notifications should still prompt
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
CONTENT_SETTING_ALLOW);
EXPECT_EQ(CONTENT_SETTING_ASK,
- context.GetPermissionStatus(GURL(kOriginA), GURL(kOriginA)));
+ context.GetPermissionStatus(origin_a, origin_a));
// Just granting push should still prompt
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
@@ -100,7 +104,7 @@ TEST_F(PushMessagingPermissionContextTest, HasPermissionPrompt) {
CONTENT_SETTING_ALLOW);
EXPECT_EQ(CONTENT_SETTING_ASK,
- context.GetPermissionStatus(GURL(kOriginA), GURL(kOriginA)));
+ context.GetPermissionStatus(origin_a, origin_a));
}
TEST_F(PushMessagingPermissionContextTest, HasPermissionDenySettingsMismatch) {
@@ -108,32 +112,36 @@ TEST_F(PushMessagingPermissionContextTest, HasPermissionDenySettingsMismatch) {
PushMessagingPermissionContext context(&profile);
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
CONTENT_SETTING_BLOCK);
+ const GURL url_a(kOriginA);
+ const url::Origin origin_a(url_a);
EXPECT_EQ(CONTENT_SETTING_BLOCK,
- context.GetPermissionStatus(GURL(kOriginA), GURL(kOriginA)));
+ context.GetPermissionStatus(origin_a, origin_a));
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
CONTENT_SETTING_ASK);
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
CONTENT_SETTING_BLOCK);
EXPECT_EQ(CONTENT_SETTING_BLOCK,
- context.GetPermissionStatus(GURL(kOriginA), GURL(kOriginA)));
+ context.GetPermissionStatus(origin_a, origin_a));
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
CONTENT_SETTING_ALLOW);
EXPECT_EQ(CONTENT_SETTING_BLOCK,
- context.GetPermissionStatus(GURL(kOriginA), GURL(kOriginA)));
+ context.GetPermissionStatus(origin_a, origin_a));
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
CONTENT_SETTING_ASK);
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
CONTENT_SETTING_BLOCK);
EXPECT_EQ(CONTENT_SETTING_BLOCK,
- context.GetPermissionStatus(GURL(kOriginA), GURL(kOriginA)));
+ context.GetPermissionStatus(origin_a, origin_a));
}
TEST_F(PushMessagingPermissionContextTest, HasPermissionDenyDifferentOrigins) {
TestingProfile profile;
PushMessagingPermissionContext context(&profile);
- EXPECT_EQ(CONTENT_SETTING_BLOCK,
- context.GetPermissionStatus(GURL(kOriginB), GURL(kOriginA)));
+ const GURL url_a(kOriginA);
+ const GURL url_b(kOriginB);
+ EXPECT_EQ(CONTENT_SETTING_BLOCK, context.GetPermissionStatus(
+ url::Origin(url_a), url::Origin(url_b)));
}
TEST_F(PushMessagingPermissionContextTest, HasPermissionAccept) {
@@ -144,8 +152,10 @@ TEST_F(PushMessagingPermissionContextTest, HasPermissionAccept) {
CONTENT_SETTING_ALLOW);
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
CONTENT_SETTING_ALLOW);
- EXPECT_EQ(CONTENT_SETTING_ALLOW,
- context.GetPermissionStatus(GURL(kOriginA), GURL(kOriginA)));
+ const GURL url_a(kOriginA);
+ const GURL url_b(kOriginB);
+ EXPECT_EQ(CONTENT_SETTING_ALLOW, context.GetPermissionStatus(
+ url::Origin(url_a), url::Origin(url_b)));
}
TEST_F(PushMessagingPermissionContextTest, DecidePushPermission) {
@@ -154,29 +164,31 @@ TEST_F(PushMessagingPermissionContextTest, DecidePushPermission) {
PermissionRequestID request_id(-1, -1, -1);
BrowserPermissionCallback callback = base::Bind(DoNothing);
- context.DecidePushPermission(request_id, GURL(kOriginA), GURL(kOriginA),
- callback, CONTENT_SETTING_DEFAULT);
+ const GURL url_a(kOriginA);
+ const url::Origin origin_a(url_a);
+ context.DecidePushPermission(request_id, origin_a, origin_a, callback,
+ CONTENT_SETTING_DEFAULT);
EXPECT_FALSE(context.was_persisted());
EXPECT_FALSE(context.was_granted());
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
CONTENT_SETTING_ALLOW);
- context.DecidePushPermission(request_id, GURL(kOriginA), GURL(kOriginA),
- callback, CONTENT_SETTING_ALLOW);
+ context.DecidePushPermission(request_id, origin_a, origin_a, callback,
+ CONTENT_SETTING_ALLOW);
EXPECT_TRUE(context.was_persisted());
EXPECT_TRUE(context.was_granted());
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
CONTENT_SETTING_BLOCK);
- context.DecidePushPermission(request_id, GURL(kOriginA), GURL(kOriginA),
- callback, CONTENT_SETTING_ALLOW);
+ context.DecidePushPermission(request_id, origin_a, origin_a, callback,
+ CONTENT_SETTING_ALLOW);
EXPECT_TRUE(context.was_persisted());
EXPECT_FALSE(context.was_granted());
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
CONTENT_SETTING_ASK);
- context.DecidePushPermission(request_id, GURL(kOriginA), GURL(kOriginA),
- callback, CONTENT_SETTING_ALLOW);
+ context.DecidePushPermission(request_id, origin_a, origin_a, callback,
+ CONTENT_SETTING_ALLOW);
EXPECT_TRUE(context.was_persisted());
EXPECT_TRUE(context.was_granted());
}
@@ -187,15 +199,21 @@ TEST_F(PushMessagingPermissionContextTest, DecidePermission) {
PermissionRequestID request_id(-1, -1, -1);
BrowserPermissionCallback callback = base::Bind(DoNothing);
+ const GURL url_a(kOriginA);
+ const GURL url_b(kOriginB);
+ const url::Origin origin_a(url_a);
+ const url::Origin origin_b(url_b);
+
// Requesting and embedding origin are different.
- context.DecidePermission(NULL, request_id, GURL(kOriginA), GURL(kOriginB),
- callback);
+ context.DecidePermission(NULL, request_id, origin_a, origin_b, callback);
EXPECT_FALSE(context.was_persisted());
EXPECT_FALSE(context.was_granted());
// Insecure origin
- NavigateAndCommit(GURL(kInsecureOrigin));
- context.RequestPermission(web_contents(), request_id, GURL(kInsecureOrigin),
+ const GURL insecure_url(kInsecureOrigin);
+ const url::Origin insecure_origin(insecure_url);
+ NavigateAndCommit(insecure_url);
+ context.RequestPermission(web_contents(), request_id, insecure_origin,
callback);
EXPECT_FALSE(context.was_persisted());
EXPECT_FALSE(context.was_granted());
@@ -210,29 +228,29 @@ TEST_F(PushMessagingPermissionContextTest, RequestPermission) {
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
CONTENT_SETTING_ALLOW);
+ const GURL url_a(kOriginA);
+ const url::Origin origin_a(url_a);
+
EXPECT_EQ(
CONTENT_SETTING_ASK,
HostContentSettingsMapFactory::GetForProfile(&profile)->GetContentSetting(
- GURL(kOriginA), GURL(kOriginA), CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
- std::string()));
+ url_a, url_a, CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, std::string()));
EXPECT_EQ(CONTENT_SETTING_ASK,
- context.GetPermissionStatus(GURL(kOriginA), GURL(kOriginA)));
+ context.GetPermissionStatus(origin_a, origin_a));
// If a website already has notifications permission, push permission is
// silently granted once the website requests it.
- NavigateAndCommit(GURL(kOriginA));
- context.RequestPermission(web_contents(), request_id, GURL(kOriginA),
- callback);
+ NavigateAndCommit(url_a);
+ context.RequestPermission(web_contents(), request_id, origin_a, callback);
EXPECT_TRUE(context.was_persisted());
EXPECT_TRUE(context.was_granted());
EXPECT_EQ(
CONTENT_SETTING_ALLOW,
HostContentSettingsMapFactory::GetForProfile(&profile)->GetContentSetting(
- GURL(kOriginA), GURL(kOriginA), CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
- std::string()));
+ url_a, url_a, CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, std::string()));
EXPECT_EQ(CONTENT_SETTING_ALLOW,
- context.GetPermissionStatus(GURL(kOriginA), GURL(kOriginA)));
+ context.GetPermissionStatus(origin_a, origin_a));
}
TEST_F(PushMessagingPermissionContextTest, RequestAfterRevokingNotifications) {
@@ -244,14 +262,15 @@ TEST_F(PushMessagingPermissionContextTest, RequestAfterRevokingNotifications) {
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
CONTENT_SETTING_ALLOW);
- NavigateAndCommit(GURL(kOriginA));
- context.RequestPermission(web_contents(), request_id, GURL(kOriginA),
- callback);
+ const GURL url_a(kOriginA);
+ NavigateAndCommit(url_a);
+ const url::Origin origin_a(url_a);
+ context.RequestPermission(web_contents(), request_id, origin_a, callback);
EXPECT_TRUE(context.was_persisted());
EXPECT_TRUE(context.was_granted());
EXPECT_EQ(CONTENT_SETTING_ALLOW,
- context.GetPermissionStatus(GURL(kOriginA), GURL(kOriginA)));
+ context.GetPermissionStatus(origin_a, origin_a));
// Revoke notifications permission. This should revoke push, and prevent
// future requests for push from succeeding.
@@ -259,43 +278,41 @@ TEST_F(PushMessagingPermissionContextTest, RequestAfterRevokingNotifications) {
CONTENT_SETTING_BLOCK);
EXPECT_EQ(CONTENT_SETTING_BLOCK,
- context.GetPermissionStatus(GURL(kOriginA), GURL(kOriginA)));
+ context.GetPermissionStatus(origin_a, origin_a));
- context.RequestPermission(web_contents(), request_id, GURL(kOriginA),
- callback);
+ context.RequestPermission(web_contents(), request_id, origin_a, callback);
EXPECT_FALSE(context.was_persisted());
EXPECT_FALSE(context.was_granted());
EXPECT_EQ(CONTENT_SETTING_BLOCK,
- context.GetPermissionStatus(GURL(kOriginA), GURL(kOriginA)));
+ context.GetPermissionStatus(origin_a, origin_a));
}
TEST_F(PushMessagingPermissionContextTest, GetPermissionStatusInsecureOrigin) {
TestingProfile profile;
TestPushMessagingPermissionContext context(&profile);
+ const GURL insecure_url(kInsecureOrigin);
+ const url::Origin insecure_origin(insecure_url);
+
// The status should be blocked for an insecure origin, regardless of the
// content setting value.
EXPECT_EQ(CONTENT_SETTING_BLOCK,
- context.GetPermissionStatus(GURL(kInsecureOrigin),
- GURL(kInsecureOrigin)));
+ context.GetPermissionStatus(insecure_origin, insecure_origin));
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
CONTENT_SETTING_ALLOW);
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
CONTENT_SETTING_ALLOW);
EXPECT_EQ(CONTENT_SETTING_BLOCK,
- context.GetPermissionStatus(GURL(kInsecureOrigin),
- GURL(kInsecureOrigin)));
+ context.GetPermissionStatus(insecure_origin, insecure_origin));
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
CONTENT_SETTING_BLOCK);
EXPECT_EQ(CONTENT_SETTING_BLOCK,
- context.GetPermissionStatus(GURL(kInsecureOrigin),
- GURL(kInsecureOrigin)));
+ context.GetPermissionStatus(insecure_origin, insecure_origin));
SetContentSetting(&profile, CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
CONTENT_SETTING_ASK);
EXPECT_EQ(CONTENT_SETTING_BLOCK,
- context.GetPermissionStatus(GURL(kInsecureOrigin),
- GURL(kInsecureOrigin)));
+ context.GetPermissionStatus(insecure_origin, insecure_origin));
}

Powered by Google App Engine
This is Rietveld 408576698