 Chromium Code Reviews
 Chromium Code Reviews Issue 1701313002:
  Partial implementation of subscription restrictions.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 1701313002:
  Partial implementation of subscription restrictions.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| 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; |