Chromium Code Reviews| 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; |