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

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

Issue 1701313002: Partial implementation of subscription restrictions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Integrated code review comments 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
« no previous file with comments | « no previous file | chrome/browser/push_messaging/push_messaging_service_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/push_messaging/push_messaging_browsertest.cc
diff --git a/chrome/browser/push_messaging/push_messaging_browsertest.cc b/chrome/browser/push_messaging/push_messaging_browsertest.cc
index a5589069bab0c7dc326a308465a3f77e59419d8b..c602b4a650325be7b3e307f3f94dd075070d2987 100644
--- a/chrome/browser/push_messaging/push_messaging_browsertest.cc
+++ b/chrome/browser/push_messaging/push_messaging_browsertest.cc
@@ -43,6 +43,7 @@
#include "components/gcm_driver/common/gcm_messages.h"
#include "components/gcm_driver/gcm_client.h"
#include "content/public/browser/web_contents.h"
+#include "content/public/common/content_switches.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/test_utils.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
@@ -98,6 +99,13 @@ class PushMessagingBrowserTest : public InProcessBrowserTest {
InProcessBrowserTest::SetUp();
}
+ void SetUpCommandLine(base::CommandLine* command_line) override {
+ // Enable experiemntal features for subscription restrictions.
Avi (use Gerrit) 2016/03/01 20:02:58 typo: experimental
+ command_line->AppendSwitch(
+ switches::kEnableExperimentalWebPlatformFeatures);
+ InProcessBrowserTest::SetUpCommandLine(command_line);
+ }
+
// InProcessBrowserTest:
void SetUpOnMainThread() override {
gcm_service_ = static_cast<gcm::FakeGCMProfileService*>(
@@ -163,7 +171,8 @@ class PushMessagingBrowserTest : public InProcessBrowserTest {
void RequestAndDenyPermission();
void TryToSubscribeSuccessfully(
- const std::string& expected_push_subscription_id);
+ const std::string& expected_push_subscription_info,
+ bool use_key = true);
std::string GetEndpointForSubscriptionId(const std::string& subscription_id) {
return std::string(kPushMessagingEndpoint) + "/" + subscription_id;
@@ -245,7 +254,8 @@ void PushMessagingBrowserTest::RequestAndDenyPermission() {
}
void PushMessagingBrowserTest::TryToSubscribeSuccessfully(
- const std::string& expected_push_subscription_id) {
+ const std::string& expected_push_subscription_info,
+ bool use_key) {
std::string script_result;
EXPECT_TRUE(RunScript("registerServiceWorker()", &script_result));
@@ -253,8 +263,14 @@ void PushMessagingBrowserTest::TryToSubscribeSuccessfully(
RequestAndAcceptPermission();
- EXPECT_TRUE(RunScript("subscribePush()", &script_result));
- EXPECT_EQ(GetEndpointForSubscriptionId(expected_push_subscription_id),
+ if (use_key) {
+ EXPECT_TRUE(RunScript("subscribePush()", &script_result));
+ } else {
+ // Test backwards compatibility with old ID based subscriptions.
+ EXPECT_TRUE(RunScript("subscribePushWithoutKey()", &script_result));
+ }
+
+ EXPECT_EQ(GetEndpointForSubscriptionId(expected_push_subscription_info),
script_result);
}
@@ -279,6 +295,16 @@ void PushMessagingBrowserTest::SendMessageAndWaitUntilHandled(
}
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
+ SubscribeWithoutKeySuccessNotificationsGranted) {
+ TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */, false);
+
+ PushMessagingAppIdentifier app_identifier =
+ GetAppIdentifierForServiceWorkerRegistration(0LL);
+ EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
+ EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
+}
+
+IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
SubscribeSuccessNotificationsGranted) {
TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
@@ -306,6 +332,21 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
}
+IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, SubscribeFailureBadKey) {
+ std::string script_result;
+
+ ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
+ ASSERT_EQ("ok - service worker registered", script_result);
+
+ RequestAndAcceptPermission();
+
+ ASSERT_TRUE(RunScript("subscribePushBadKey()", &script_result));
+ EXPECT_EQ(
+ "InvalidAccessError - Failed to execute 'subscribe' on 'PushManager': "
+ "The provided applicationServerKey is not valid.",
+ script_result);
+}
+
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
SubscribeFailureNotificationsBlocked) {
std::string script_result;
« no previous file with comments | « no previous file | chrome/browser/push_messaging/push_messaging_service_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698