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

Side by Side Diff: chrome/browser/push_messaging/push_messaging_browsertest.cc

Issue 1153193013: Parameterize PushMessagingBrowserTest to work with bubbles & infobars (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Ready for review Created 5 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <map> 5 #include <map>
6 #include <string> 6 #include <string>
7 7
8 #include "base/barrier_closure.h" 8 #include "base/barrier_closure.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "base/run_loop.h" 12 #include "base/run_loop.h"
13 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
14 #include "base/test/test_timeouts.h"
15 #include "base/time/time.h"
14 #include "chrome/browser/browsing_data/browsing_data_helper.h" 16 #include "chrome/browser/browsing_data/browsing_data_helper.h"
15 #include "chrome/browser/browsing_data/browsing_data_remover.h" 17 #include "chrome/browser/browsing_data/browsing_data_remover.h"
16 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h" 18 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h"
17 #include "chrome/browser/infobars/infobar_responder.h" 19 #include "chrome/browser/infobars/infobar_responder.h"
18 #include "chrome/browser/infobars/infobar_service.h" 20 #include "chrome/browser/infobars/infobar_service.h"
19 #include "chrome/browser/notifications/notification_test_util.h" 21 #include "chrome/browser/notifications/notification_test_util.h"
20 #include "chrome/browser/notifications/platform_notification_service_impl.h" 22 #include "chrome/browser/notifications/platform_notification_service_impl.h"
21 #include "chrome/browser/profiles/profile.h" 23 #include "chrome/browser/profiles/profile.h"
22 #include "chrome/browser/push_messaging/push_messaging_app_identifier.h" 24 #include "chrome/browser/push_messaging/push_messaging_app_identifier.h"
23 #include "chrome/browser/push_messaging/push_messaging_constants.h" 25 #include "chrome/browser/push_messaging/push_messaging_constants.h"
24 #include "chrome/browser/push_messaging/push_messaging_service_factory.h" 26 #include "chrome/browser/push_messaging/push_messaging_service_factory.h"
25 #include "chrome/browser/push_messaging/push_messaging_service_impl.h" 27 #include "chrome/browser/push_messaging/push_messaging_service_impl.h"
26 #include "chrome/browser/services/gcm/fake_gcm_profile_service.h" 28 #include "chrome/browser/services/gcm/fake_gcm_profile_service.h"
27 #include "chrome/browser/services/gcm/gcm_profile_service_factory.h" 29 #include "chrome/browser/services/gcm/gcm_profile_service_factory.h"
28 #include "chrome/browser/ui/browser.h" 30 #include "chrome/browser/ui/browser.h"
29 #include "chrome/browser/ui/tabs/tab_strip_model.h" 31 #include "chrome/browser/ui/tabs/tab_strip_model.h"
32 #include "chrome/browser/ui/website_settings/mock_permission_bubble_view.h"
33 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h"
34 #include "chrome/common/chrome_switches.h"
30 #include "chrome/test/base/in_process_browser_test.h" 35 #include "chrome/test/base/in_process_browser_test.h"
31 #include "chrome/test/base/ui_test_utils.h" 36 #include "chrome/test/base/ui_test_utils.h"
32 #include "components/content_settings/core/browser/host_content_settings_map.h" 37 #include "components/content_settings/core/browser/host_content_settings_map.h"
33 #include "components/content_settings/core/common/content_settings.h" 38 #include "components/content_settings/core/common/content_settings.h"
34 #include "components/content_settings/core/common/content_settings_types.h" 39 #include "components/content_settings/core/common/content_settings_types.h"
35 #include "components/gcm_driver/gcm_client.h" 40 #include "components/gcm_driver/gcm_client.h"
36 #include "content/public/browser/web_contents.h" 41 #include "content/public/browser/web_contents.h"
37 #include "content/public/common/content_switches.h" 42 #include "content/public/common/content_switches.h"
38 #include "content/public/test/browser_test_utils.h" 43 #include "content/public/test/browser_test_utils.h"
39 #include "content/public/test/test_utils.h" 44 #include "content/public/test/test_utils.h"
(...skipping 22 matching lines...) Expand all
62 return app_id_; 67 return app_id_;
63 } 68 }
64 69
65 private: 70 private:
66 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; 71 scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
67 std::string app_id_; 72 std::string app_id_;
68 }; 73 };
69 74
70 } // namespace 75 } // namespace
71 76
72 class PushMessagingBrowserTest : public InProcessBrowserTest { 77 class PushMessagingBrowserTest : public InProcessBrowserTest,
78 public testing::WithParamInterface<bool> {
73 public: 79 public:
74 PushMessagingBrowserTest() : gcm_service_(nullptr) {} 80 PushMessagingBrowserTest()
81 : tiny_timeout_ms_(
82 std::to_string(TestTimeouts::tiny_timeout().InMillisecondsF())),
johnme 2015/06/02 14:12:38 Nit: base::IntToString seems more common.
83 gcm_service_(nullptr) {}
75 ~PushMessagingBrowserTest() override {} 84 ~PushMessagingBrowserTest() override {}
76 85
77 // InProcessBrowserTest: 86 // InProcessBrowserTest:
78 void SetUpCommandLine(base::CommandLine* command_line) override { 87 void SetUpCommandLine(base::CommandLine* command_line) override {
79 command_line->AppendSwitch(switches::kEnablePushMessagePayload); 88 command_line->AppendSwitch(switches::kEnablePushMessagePayload);
80 89
90 #if !defined(OS_ANDROID) && !defined(OS_IOS)
91 if (GetParam())
92 command_line->AppendSwitch(switches::kEnablePermissionsBubbles);
93 else
94 command_line->AppendSwitch(switches::kDisablePermissionsBubbles);
johnme 2015/06/02 14:12:38 Since these tests only run on desktop (unfortunate
95 #endif
96
81 InProcessBrowserTest::SetUpCommandLine(command_line); 97 InProcessBrowserTest::SetUpCommandLine(command_line);
82 } 98 }
83 99
84 // InProcessBrowserTest: 100 // InProcessBrowserTest:
85 void SetUp() override { 101 void SetUp() override {
86 https_server_.reset(new net::SpawnedTestServer( 102 https_server_.reset(new net::SpawnedTestServer(
87 net::SpawnedTestServer::TYPE_HTTPS, 103 net::SpawnedTestServer::TYPE_HTTPS,
88 net::BaseTestServer::SSLOptions( 104 net::BaseTestServer::SSLOptions(
89 net::BaseTestServer::SSLOptions::CERT_OK), 105 net::BaseTestServer::SSLOptions::CERT_OK),
90 base::FilePath(FILE_PATH_LITERAL("chrome/test/data/")))); 106 base::FilePath(FILE_PATH_LITERAL("chrome/test/data/"))));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 } 139 }
124 140
125 void LoadTestPage(const std::string& path) { 141 void LoadTestPage(const std::string& path) {
126 ui_test_utils::NavigateToURL(GetBrowser(), https_server_->GetURL(path)); 142 ui_test_utils::NavigateToURL(GetBrowser(), https_server_->GetURL(path));
127 } 143 }
128 144
129 void LoadTestPage() { 145 void LoadTestPage() {
130 LoadTestPage(GetTestURL()); 146 LoadTestPage(GetTestURL());
131 } 147 }
132 148
149 bool RunScript(const std::string& script) {
150 return content::ExecuteScript(
151 GetBrowser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame(),
152 script);
153 }
154
133 bool RunScript(const std::string& script, std::string* result) { 155 bool RunScript(const std::string& script, std::string* result) {
134 return RunScript(script, result, nullptr); 156 return RunScript(script, result, nullptr);
135 } 157 }
136 158
137 bool RunScript(const std::string& script, std::string* result, 159 bool RunScript(const std::string& script, std::string* result,
138 content::WebContents* web_contents) { 160 content::WebContents* web_contents) {
139 if (!web_contents) 161 if (!web_contents)
140 web_contents = GetBrowser()->tab_strip_model()->GetActiveWebContents(); 162 web_contents = GetBrowser()->tab_strip_model()->GetActiveWebContents();
141 return content::ExecuteScriptAndExtractString(web_contents->GetMainFrame(), 163 return content::ExecuteScriptAndExtractString(web_contents->GetMainFrame(),
142 script, 164 script,
143 result); 165 result);
144 } 166 }
145 167
168 void RequestAndAcceptPermission();
169 void RequestAndDenyPermission();
170
146 void TryToSubscribeSuccessfully( 171 void TryToSubscribeSuccessfully(
147 const std::string& expected_push_subscription_id); 172 const std::string& expected_push_subscription_id);
148 173
149 std::string GetEndpointForSubscriptionId(const std::string& subscription_id) { 174 std::string GetEndpointForSubscriptionId(const std::string& subscription_id) {
150 return std::string(kPushMessagingEndpoint) + "/" + subscription_id; 175 return std::string(kPushMessagingEndpoint) + "/" + subscription_id;
151 } 176 }
152 177
153 PushMessagingAppIdentifier GetAppIdentifierForServiceWorkerRegistration( 178 PushMessagingAppIdentifier GetAppIdentifierForServiceWorkerRegistration(
154 int64 service_worker_registration_id); 179 int64 service_worker_registration_id);
155 180
(...skipping 10 matching lines...) Expand all
166 return notification_manager_.get(); 191 return notification_manager_.get();
167 } 192 }
168 193
169 PlatformNotificationServiceImpl* notification_service() const { 194 PlatformNotificationServiceImpl* notification_service() const {
170 return PlatformNotificationServiceImpl::GetInstance(); 195 return PlatformNotificationServiceImpl::GetInstance();
171 } 196 }
172 #endif 197 #endif
173 198
174 PushMessagingServiceImpl* push_service() const { return push_service_; } 199 PushMessagingServiceImpl* push_service() const { return push_service_; }
175 200
201 std::string tiny_timeout_ms_;
202
176 protected: 203 protected:
177 virtual std::string GetTestURL() { 204 virtual std::string GetTestURL() {
178 return "files/push_messaging/test.html"; 205 return "files/push_messaging/test.html";
179 } 206 }
180 207
181 virtual Browser* GetBrowser() const { return browser(); } 208 virtual Browser* GetBrowser() const { return browser(); }
182 209
183 InfoBarService* GetInfoBarService() { 210 InfoBarService* GetInfoBarService() {
184 return InfoBarService::FromWebContents( 211 return InfoBarService::FromWebContents(
185 GetBrowser()->tab_strip_model()->GetActiveWebContents()); 212 GetBrowser()->tab_strip_model()->GetActiveWebContents());
(...skipping 21 matching lines...) Expand all
207 } 234 }
208 }; 235 };
209 236
210 class PushMessagingBrowserTestEmptySubscriptionOptions 237 class PushMessagingBrowserTestEmptySubscriptionOptions
211 : public PushMessagingBrowserTest { 238 : public PushMessagingBrowserTest {
212 std::string GetTestURL() override { 239 std::string GetTestURL() override {
213 return "files/push_messaging/test_no_subscription_options.html"; 240 return "files/push_messaging/test_no_subscription_options.html";
214 } 241 }
215 }; 242 };
216 243
217 IN_PROC_BROWSER_TEST_F(PushMessagingBadManifestBrowserTest, 244 IN_PROC_BROWSER_TEST_P(PushMessagingBadManifestBrowserTest,
218 SubscribeFailsNotVisibleMessages) { 245 SubscribeFailsNotVisibleMessages) {
219 std::string script_result; 246 std::string script_result;
220 247
221 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 248 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
222 ASSERT_EQ("ok - service worker registered", script_result); 249 ASSERT_EQ("ok - service worker registered", script_result);
223 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 250 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
224 EXPECT_EQ("AbortError - Registration failed - permission denied", 251 EXPECT_EQ("AbortError - Registration failed - permission denied",
225 script_result); 252 script_result);
226 } 253 }
227 254
255 void PushMessagingBrowserTest::RequestAndAcceptPermission() {
256 std::string script_result;
257
258 if (PermissionBubbleManager::Enabled()) {
259 PermissionBubbleManager* bubble_manager =
260 PermissionBubbleManager::FromWebContents(
261 GetBrowser()->tab_strip_model()->GetActiveWebContents());
262 scoped_ptr<MockPermissionBubbleView> mock_bubble_view(
263 new MockPermissionBubbleView());
264 bubble_manager->SetView(mock_bubble_view.get());
johnme 2015/06/02 14:12:38 This is super-complicated, compared to 2 lines for
265 mock_bubble_view->SetBrowserTest(true);
johnme 2015/06/02 14:12:38 It seems kinda hacky that MockPermissionBubbleView
266 ASSERT_TRUE(
267 RunScript("requestNotificationPermission(" + tiny_timeout_ms_ + ");"));
268 if (!mock_bubble_view->IsVisible())
269 content::RunMessageLoop();
johnme 2015/06/02 14:12:38 Why are you running a message loop here? Note that
270 mock_bubble_view->Accept();
271 bubble_manager->SetView(NULL);
272 } else {
273 InfoBarResponder accepting_responder(GetInfoBarService(), true);
274 ASSERT_TRUE(
275 RunScript("requestNotificationPermission(" + tiny_timeout_ms_ + ");"));
johnme 2015/06/02 14:12:38 requestNotificationPermission method doesn't take
276 }
277 EXPECT_TRUE(RunScript("getLastPermissionRequestResult();", &script_result));
johnme 2015/06/02 14:12:38 getLastPermissionRequestResult takes a timeout par
278 EXPECT_EQ("permission status - granted", script_result);
279 }
280
281 void PushMessagingBrowserTest::RequestAndDenyPermission() {
282 std::string script_result;
283
284 if (PermissionBubbleManager::Enabled()) {
285 PermissionBubbleManager* bubble_manager =
286 PermissionBubbleManager::FromWebContents(
287 GetBrowser()->tab_strip_model()->GetActiveWebContents());
288 scoped_ptr<MockPermissionBubbleView> mock_bubble_view(
289 new MockPermissionBubbleView());
290 bubble_manager->SetView(mock_bubble_view.get());
291 mock_bubble_view->SetBrowserTest(true);
292 ASSERT_TRUE(
johnme 2015/06/02 14:12:38 Last I checked, you couldn't use ASSERT_TRUE in he
293 RunScript("requestNotificationPermission(" + tiny_timeout_ms_ + ");"));
294 if (!mock_bubble_view->IsVisible())
295 content::RunMessageLoop();
296 mock_bubble_view->Deny();
297 bubble_manager->SetView(NULL);
298 } else {
299 InfoBarResponder cancelling_responder(GetInfoBarService(), false);
300 ASSERT_TRUE(
301 RunScript("requestNotificationPermission(" + tiny_timeout_ms_ + ");"));
302 }
303 ASSERT_TRUE(RunScript("getLastPermissionRequestResult();", &script_result));
304 EXPECT_EQ("permission status - denied", script_result);
305 }
306
228 void PushMessagingBrowserTest::TryToSubscribeSuccessfully( 307 void PushMessagingBrowserTest::TryToSubscribeSuccessfully(
229 const std::string& expected_push_subscription_id) { 308 const std::string& expected_push_subscription_id) {
230 std::string script_result; 309 std::string script_result;
231 310
232 EXPECT_TRUE(RunScript("registerServiceWorker()", &script_result)); 311 EXPECT_TRUE(RunScript("registerServiceWorker()", &script_result));
233 EXPECT_EQ("ok - service worker registered", script_result); 312 EXPECT_EQ("ok - service worker registered", script_result);
234 313
235 InfoBarResponder accepting_responder(GetInfoBarService(), true); 314 // Request permission if it hasn't already been requested.
236 EXPECT_TRUE(RunScript("requestNotificationPermission()", &script_result)); 315 ASSERT_TRUE(RunScript("permissionState();", &script_result));
237 EXPECT_EQ("permission status - granted", script_result); 316 if (script_result == "permission status - prompt")
317 RequestAndAcceptPermission();
238 318
239 EXPECT_TRUE(RunScript("subscribePush()", &script_result)); 319 EXPECT_TRUE(RunScript("subscribePush()", &script_result));
240 EXPECT_EQ(GetEndpointForSubscriptionId(expected_push_subscription_id), 320 EXPECT_EQ(GetEndpointForSubscriptionId(expected_push_subscription_id),
241 script_result); 321 script_result);
242 } 322 }
243 323
244 PushMessagingAppIdentifier 324 PushMessagingAppIdentifier
245 PushMessagingBrowserTest::GetAppIdentifierForServiceWorkerRegistration( 325 PushMessagingBrowserTest::GetAppIdentifierForServiceWorkerRegistration(
246 int64 service_worker_registration_id) { 326 int64 service_worker_registration_id) {
247 GURL origin = https_server()->GetURL(std::string()).GetOrigin(); 327 GURL origin = https_server()->GetURL(std::string()).GetOrigin();
248 PushMessagingAppIdentifier app_identifier = 328 PushMessagingAppIdentifier app_identifier =
249 PushMessagingAppIdentifier::FindByServiceWorker( 329 PushMessagingAppIdentifier::FindByServiceWorker(
250 GetBrowser()->profile(), origin, service_worker_registration_id); 330 GetBrowser()->profile(), origin, service_worker_registration_id);
251 EXPECT_FALSE(app_identifier.is_null()); 331 EXPECT_FALSE(app_identifier.is_null());
252 return app_identifier; 332 return app_identifier;
253 } 333 }
254 334
255 void PushMessagingBrowserTest::SendMessageAndWaitUntilHandled( 335 void PushMessagingBrowserTest::SendMessageAndWaitUntilHandled(
256 const PushMessagingAppIdentifier& app_identifier, 336 const PushMessagingAppIdentifier& app_identifier,
257 const gcm::GCMClient::IncomingMessage& message) { 337 const gcm::GCMClient::IncomingMessage& message) {
258 base::RunLoop run_loop; 338 base::RunLoop run_loop;
259 push_service()->SetMessageCallbackForTesting(run_loop.QuitClosure()); 339 push_service()->SetMessageCallbackForTesting(run_loop.QuitClosure());
260 push_service()->OnMessage(app_identifier.app_id(), message); 340 push_service()->OnMessage(app_identifier.app_id(), message);
261 run_loop.Run(); 341 run_loop.Run();
262 } 342 }
263 343
264 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 344 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
265 SubscribeSuccessNotificationsGranted) { 345 SubscribeSuccessNotificationsGranted) {
266 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 346 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
267 347
268 PushMessagingAppIdentifier app_identifier = 348 PushMessagingAppIdentifier app_identifier =
269 GetAppIdentifierForServiceWorkerRegistration(0LL); 349 GetAppIdentifierForServiceWorkerRegistration(0LL);
270 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 350 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
271 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 351 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
272 } 352 }
273 353
274 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 354 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
275 SubscribeSuccessNotificationsPrompt) { 355 SubscribeSuccessNotificationsPrompt) {
276 std::string script_result; 356 std::string script_result;
277 357
278 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 358 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
279 ASSERT_EQ("ok - service worker registered", script_result); 359 ASSERT_EQ("ok - service worker registered", script_result);
280 360
281 InfoBarResponder accepting_responder(GetInfoBarService(), true); 361 RequestAndAcceptPermission();
362
282 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 363 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
283 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"), 364 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"), script_result);
284 script_result);
285 365
286 PushMessagingAppIdentifier app_identifier = 366 PushMessagingAppIdentifier app_identifier =
287 GetAppIdentifierForServiceWorkerRegistration(0LL); 367 GetAppIdentifierForServiceWorkerRegistration(0LL);
288 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 368 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
289 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 369 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
290 } 370 }
291 371
292 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 372 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
293 SubscribeFailureNotificationsBlocked) { 373 SubscribeFailureNotificationsBlocked) {
294 std::string script_result; 374 std::string script_result;
295 375
296 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 376 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
297 ASSERT_EQ("ok - service worker registered", script_result); 377 ASSERT_EQ("ok - service worker registered", script_result);
298 378
299 InfoBarResponder cancelling_responder(GetInfoBarService(), false); 379 RequestAndDenyPermission();
300 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
301 ASSERT_EQ("permission status - denied", script_result);
302 380
303 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 381 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
304 EXPECT_EQ("AbortError - Registration failed - permission denied", 382 EXPECT_EQ("AbortError - Registration failed - permission denied",
305 script_result); 383 script_result);
306 } 384 }
307 385
308 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, SubscribeFailureNoManifest) { 386 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, SubscribeFailureNoManifest) {
309 std::string script_result; 387 std::string script_result;
310 388
311 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 389 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
312 ASSERT_EQ("ok - service worker registered", script_result); 390 ASSERT_EQ("ok - service worker registered", script_result);
313 391
314 InfoBarResponder accepting_responder(GetInfoBarService(), true); 392 RequestAndAcceptPermission();
315 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
316 ASSERT_EQ("permission status - granted", script_result);
317 393
318 ASSERT_TRUE(RunScript("removeManifest()", &script_result)); 394 ASSERT_TRUE(RunScript("removeManifest()", &script_result));
319 ASSERT_EQ("manifest removed", script_result); 395 ASSERT_EQ("manifest removed", script_result);
320 396
321 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 397 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
322 EXPECT_EQ("AbortError - Registration failed - no sender id provided", 398 EXPECT_EQ("AbortError - Registration failed - no sender id provided",
323 script_result); 399 script_result);
324 } 400 }
325 401
326 // TODO(johnme): Test subscribing from a worker - see https://crbug.com/437298. 402 // TODO(johnme): Test subscribing from a worker - see https://crbug.com/437298.
327 403
328 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTestEmptySubscriptionOptions, 404 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTestEmptySubscriptionOptions,
329 RegisterFailureEmptyPushSubscriptionOptions) { 405 RegisterFailureEmptyPushSubscriptionOptions) {
330 std::string script_result; 406 std::string script_result;
331 407
332 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 408 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
333 ASSERT_EQ("ok - service worker registered", script_result); 409 ASSERT_EQ("ok - service worker registered", script_result);
334 410
335 InfoBarResponder accepting_responder(GetInfoBarService(), true); 411 RequestAndAcceptPermission();
336 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
337 ASSERT_EQ("permission status - granted", script_result);
338 412
339 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 413 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
340 EXPECT_EQ("AbortError - Registration failed - permission denied", 414 EXPECT_EQ("AbortError - Registration failed - permission denied",
341 script_result); 415 script_result);
342 } 416 }
343 417
344 IN_PROC_BROWSER_TEST_F(PushMessagingBadManifestBrowserTest, 418 IN_PROC_BROWSER_TEST_P(PushMessagingBadManifestBrowserTest,
345 RegisterFailsNotVisibleMessages) { 419 RegisterFailsNotVisibleMessages) {
346 std::string script_result; 420 std::string script_result;
347 421
348 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 422 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
349 ASSERT_EQ("ok - service worker registered", script_result); 423 ASSERT_EQ("ok - service worker registered", script_result);
350 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 424 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
351 EXPECT_EQ("AbortError - Registration failed - permission denied", 425 EXPECT_EQ("AbortError - Registration failed - permission denied",
352 script_result); 426 script_result);
353 } 427 }
354 428
355 IN_PROC_BROWSER_TEST_F(PushMessagingManifestUserVisibleOnlyTrueTest, 429 IN_PROC_BROWSER_TEST_P(PushMessagingManifestUserVisibleOnlyTrueTest,
356 ManifestKeyConsidered) { 430 ManifestKeyConsidered) {
357 // Chrome 42 introduced the "gcm_user_visible_only" manifest key, but Chrome 431 // Chrome 42 introduced the "gcm_user_visible_only" manifest key, but Chrome
358 // 43 supersedes this by the standardized PushSubscriptionOptions.userVisible 432 // 43 supersedes this by the standardized PushSubscriptionOptions.userVisible
359 // option. We maintain support for the manifest key without specifying the 433 // option. We maintain support for the manifest key without specifying the
360 // subscription option, so verify that it is still being considered. 434 // subscription option, so verify that it is still being considered.
361 std::string script_result; 435 std::string script_result;
362 436
363 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 437 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
364 ASSERT_EQ("ok - service worker registered", script_result); 438 ASSERT_EQ("ok - service worker registered", script_result);
365 439
366 InfoBarResponder accepting_responder(GetInfoBarService(), true); 440 RequestAndAcceptPermission();
367 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
368 EXPECT_EQ("permission status - granted", script_result);
369 441
370 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 442 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
371 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"), script_result); 443 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"), script_result);
372 444
373 // permissionState has been introduced later so it does not 445 // permissionState has been introduced later so it does not
374 // respect the manifest key. 446 // respect the manifest key.
375 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 447 ASSERT_TRUE(RunScript("permissionState()", &script_result));
376 EXPECT_EQ( 448 EXPECT_EQ(
377 "NotSupportedError - Push subscriptions that don't enable" 449 "NotSupportedError - Push subscriptions that don't enable"
378 " userVisibleOnly are not supported.", 450 " userVisibleOnly are not supported.",
379 script_result); 451 script_result);
380 } 452 }
381 453
382 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, SubscribePersisted) { 454 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, SubscribePersisted) {
383 std::string script_result; 455 std::string script_result;
384 456
385 // First, test that Service Worker registration IDs are assigned in order of 457 // First, test that Service Worker registration IDs are assigned in order of
386 // registering the Service Workers, and the (fake) push subscription ids are 458 // registering the Service Workers, and the (fake) push subscription ids are
387 // assigned in order of push subscription (even when these orders are 459 // assigned in order of push subscription (even when these orders are
388 // different). 460 // different).
389 461
390 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 462 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
391 PushMessagingAppIdentifier sw0_identifier = 463 PushMessagingAppIdentifier sw0_identifier =
392 GetAppIdentifierForServiceWorkerRegistration(0LL); 464 GetAppIdentifierForServiceWorkerRegistration(0LL);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 501
430 LoadTestPage("files/push_messaging/subscope2/test.html"); 502 LoadTestPage("files/push_messaging/subscope2/test.html");
431 TryToSubscribeSuccessfully("1-1" /* expected_push_subscription_id */); 503 TryToSubscribeSuccessfully("1-1" /* expected_push_subscription_id */);
432 EXPECT_EQ(sw1_identifier.app_id(), gcm_service()->last_registered_app_id()); 504 EXPECT_EQ(sw1_identifier.app_id(), gcm_service()->last_registered_app_id());
433 505
434 LoadTestPage(); 506 LoadTestPage();
435 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 507 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
436 EXPECT_EQ(sw1_identifier.app_id(), gcm_service()->last_registered_app_id()); 508 EXPECT_EQ(sw1_identifier.app_id(), gcm_service()->last_registered_app_id());
437 } 509 }
438 510
439 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventSuccess) { 511 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PushEventSuccess) {
440 std::string script_result; 512 std::string script_result;
441 513
442 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 514 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
443 515
444 PushMessagingAppIdentifier app_identifier = 516 PushMessagingAppIdentifier app_identifier =
445 GetAppIdentifierForServiceWorkerRegistration(0LL); 517 GetAppIdentifierForServiceWorkerRegistration(0LL);
446 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 518 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
447 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 519 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
448 520
449 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 521 ASSERT_TRUE(RunScript("isControlled()", &script_result));
450 ASSERT_EQ("false - is not controlled", script_result); 522 ASSERT_EQ("false - is not controlled", script_result);
451 523
452 LoadTestPage(); // Reload to become controlled. 524 LoadTestPage(); // Reload to become controlled.
453 525
454 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 526 ASSERT_TRUE(RunScript("isControlled()", &script_result));
455 ASSERT_EQ("true - is controlled", script_result); 527 ASSERT_EQ("true - is controlled", script_result);
456 528
457 gcm::GCMClient::IncomingMessage message; 529 gcm::GCMClient::IncomingMessage message;
458 message.sender_id = "1234567890"; 530 message.sender_id = "1234567890";
459 message.data["data"] = "testdata"; 531 message.data["data"] = "testdata";
460 push_service()->OnMessage(app_identifier.app_id(), message); 532 push_service()->OnMessage(app_identifier.app_id(), message);
461 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result)); 533 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result));
462 EXPECT_EQ("testdata", script_result); 534 EXPECT_EQ("testdata", script_result);
463 } 535 }
464 536
465 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoServiceWorker) { 537 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PushEventNoServiceWorker) {
466 std::string script_result; 538 std::string script_result;
467 539
468 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 540 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
469 541
470 PushMessagingAppIdentifier app_identifier = 542 PushMessagingAppIdentifier app_identifier =
471 GetAppIdentifierForServiceWorkerRegistration(0LL); 543 GetAppIdentifierForServiceWorkerRegistration(0LL);
472 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 544 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
473 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 545 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
474 546
475 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 547 ASSERT_TRUE(RunScript("isControlled()", &script_result));
(...skipping 21 matching lines...) Expand all
497 569
498 callback.WaitUntilSatisfied(); 570 callback.WaitUntilSatisfied();
499 EXPECT_EQ(app_identifier.app_id(), callback.app_id()); 571 EXPECT_EQ(app_identifier.app_id(), callback.app_id());
500 572
501 // No push data should have been received. 573 // No push data should have been received.
502 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result)); 574 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result));
503 EXPECT_EQ("null", script_result); 575 EXPECT_EQ("null", script_result);
504 } 576 }
505 577
506 #if defined(ENABLE_NOTIFICATIONS) 578 #if defined(ENABLE_NOTIFICATIONS)
507 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 579 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
508 PushEventEnforcesUserVisibleNotification) { 580 PushEventEnforcesUserVisibleNotification) {
509 std::string script_result; 581 std::string script_result;
510 582
511 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 583 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
512 584
513 PushMessagingAppIdentifier app_identifier = 585 PushMessagingAppIdentifier app_identifier =
514 GetAppIdentifierForServiceWorkerRegistration(0LL); 586 GetAppIdentifierForServiceWorkerRegistration(0LL);
515 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 587 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
516 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 588 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
517 589
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 666
595 // Now that 10 push messages in a row have shown notifications, we should 667 // Now that 10 push messages in a row have shown notifications, we should
596 // allow the next one to mistakenly not show a notification. 668 // allow the next one to mistakenly not show a notification.
597 message.data["data"] = "testdata"; 669 message.data["data"] = "testdata";
598 SendMessageAndWaitUntilHandled(app_identifier, message); 670 SendMessageAndWaitUntilHandled(app_identifier, message);
599 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents)); 671 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents));
600 EXPECT_EQ("testdata", script_result); 672 EXPECT_EQ("testdata", script_result);
601 EXPECT_EQ(0u, notification_manager()->GetNotificationCount()); 673 EXPECT_EQ(0u, notification_manager()->GetNotificationCount());
602 } 674 }
603 675
604 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 676 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
605 PushEventNotificationWithoutEventWaitUntil) { 677 PushEventNotificationWithoutEventWaitUntil) {
606 std::string script_result; 678 std::string script_result;
607 content::WebContents* web_contents = 679 content::WebContents* web_contents =
608 GetBrowser()->tab_strip_model()->GetActiveWebContents(); 680 GetBrowser()->tab_strip_model()->GetActiveWebContents();
609 681
610 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 682 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
611 683
612 PushMessagingAppIdentifier app_identifier = 684 PushMessagingAppIdentifier app_identifier =
613 GetAppIdentifierForServiceWorkerRegistration(0LL); 685 GetAppIdentifierForServiceWorkerRegistration(0LL);
614 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 686 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
(...skipping 24 matching lines...) Expand all
639 ASSERT_EQ(1u, notification_manager()->GetNotificationCount()); 711 ASSERT_EQ(1u, notification_manager()->GetNotificationCount());
640 EXPECT_EQ("push_test_tag", 712 EXPECT_EQ("push_test_tag",
641 notification_manager()->GetNotificationAt(0).tag()); 713 notification_manager()->GetNotificationAt(0).tag());
642 714
643 // Verify that the renderer process hasn't crashed. 715 // Verify that the renderer process hasn't crashed.
644 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 716 ASSERT_TRUE(RunScript("permissionState()", &script_result));
645 EXPECT_EQ("permission status - granted", script_result); 717 EXPECT_EQ("permission status - granted", script_result);
646 } 718 }
647 #endif 719 #endif
648 720
649 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PermissionStateSaysPrompt) { 721 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PermissionStateSaysPrompt) {
650 std::string script_result; 722 std::string script_result;
651 723
652 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 724 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
653 ASSERT_EQ("ok - service worker registered", script_result); 725 ASSERT_EQ("ok - service worker registered", script_result);
654 726
655 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 727 ASSERT_TRUE(RunScript("permissionState()", &script_result));
656 ASSERT_EQ("permission status - prompt", script_result); 728 ASSERT_EQ("permission status - prompt", script_result);
657 } 729 }
658 730
659 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PermissionStateSaysGranted) { 731 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PermissionStateSaysGranted) {
660 std::string script_result; 732 std::string script_result;
661 733
662 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 734 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
663 ASSERT_EQ("ok - service worker registered", script_result); 735 ASSERT_EQ("ok - service worker registered", script_result);
664 736
665 InfoBarResponder accepting_responder(GetInfoBarService(), true); 737 RequestAndAcceptPermission();
666 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
667 EXPECT_EQ("permission status - granted", script_result);
668 738
669 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 739 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
670 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"), 740 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"),
671 script_result); 741 script_result);
672 742
673 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 743 ASSERT_TRUE(RunScript("permissionState()", &script_result));
674 EXPECT_EQ("permission status - granted", script_result); 744 EXPECT_EQ("permission status - granted", script_result);
675 } 745 }
676 746
677 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PermissionStateSaysDenied) { 747 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PermissionStateSaysDenied) {
678 std::string script_result; 748 std::string script_result;
679 749
680 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 750 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
681 ASSERT_EQ("ok - service worker registered", script_result); 751 ASSERT_EQ("ok - service worker registered", script_result);
682 752
683 InfoBarResponder cancelling_responder(GetInfoBarService(), false); 753 RequestAndDenyPermission();
684 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
685 EXPECT_EQ("permission status - denied", script_result);
686 754
687 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 755 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
688 EXPECT_EQ("AbortError - Registration failed - permission denied", 756 EXPECT_EQ("AbortError - Registration failed - permission denied",
689 script_result); 757 script_result);
690 758
691 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 759 ASSERT_TRUE(RunScript("permissionState()", &script_result));
692 EXPECT_EQ("permission status - denied", script_result); 760 EXPECT_EQ("permission status - denied", script_result);
693 } 761 }
694 762
695 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, UnsubscribeSuccess) { 763 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, UnsubscribeSuccess) {
696 std::string script_result; 764 std::string script_result;
697 765
698 EXPECT_TRUE(RunScript("registerServiceWorker()", &script_result)); 766 EXPECT_TRUE(RunScript("registerServiceWorker()", &script_result));
699 EXPECT_EQ("ok - service worker registered", script_result); 767 EXPECT_EQ("ok - service worker registered", script_result);
700 768
701 // Resolves true if there was a subscription. 769 // Resolves true if there was a subscription.
702 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 770 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
703 gcm_service()->AddExpectedUnregisterResponse(gcm::GCMClient::SUCCESS); 771 gcm_service()->AddExpectedUnregisterResponse(gcm::GCMClient::SUCCESS);
704 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result)); 772 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result));
705 EXPECT_EQ("unsubscribe result: true", script_result); 773 EXPECT_EQ("unsubscribe result: true", script_result);
(...skipping 21 matching lines...) Expand all
727 795
728 // Unsubscribing (with an existing reference to a PushSubscription), after 796 // Unsubscribing (with an existing reference to a PushSubscription), after
729 // unregistering the Service Worker, just means push subscription isn't found. 797 // unregistering the Service Worker, just means push subscription isn't found.
730 TryToSubscribeSuccessfully("1-3" /* expected_push_subscription_id */); 798 TryToSubscribeSuccessfully("1-3" /* expected_push_subscription_id */);
731 ASSERT_TRUE(RunScript("unregisterServiceWorker()", &script_result)); 799 ASSERT_TRUE(RunScript("unregisterServiceWorker()", &script_result));
732 ASSERT_EQ("service worker unregistration status: true", script_result); 800 ASSERT_EQ("service worker unregistration status: true", script_result);
733 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result)); 801 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result));
734 EXPECT_EQ("unsubscribe result: false", script_result); 802 EXPECT_EQ("unsubscribe result: false", script_result);
735 } 803 }
736 804
737 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 805 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
738 GlobalResetPushPermissionUnsubscribes) { 806 GlobalResetPushPermissionUnsubscribes) {
739 std::string script_result; 807 std::string script_result;
740 808
741 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 809 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
742 810
743 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 811 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
744 EXPECT_EQ("true - subscribed", script_result); 812 EXPECT_EQ("true - subscribed", script_result);
745 813
746 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 814 ASSERT_TRUE(RunScript("permissionState()", &script_result));
747 EXPECT_EQ("permission status - granted", script_result); 815 EXPECT_EQ("permission status - granted", script_result);
748 816
749 scoped_refptr<content::MessageLoopRunner> message_loop_runner = 817 scoped_refptr<content::MessageLoopRunner> message_loop_runner =
750 new content::MessageLoopRunner; 818 new content::MessageLoopRunner;
751 push_service()->SetContentSettingChangedCallbackForTesting( 819 push_service()->SetContentSettingChangedCallbackForTesting(
752 message_loop_runner->QuitClosure()); 820 message_loop_runner->QuitClosure());
753 821
754 GetBrowser()->profile()->GetHostContentSettingsMap()-> 822 GetBrowser()->profile()->GetHostContentSettingsMap()->
755 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); 823 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING);
756 824
757 message_loop_runner->Run(); 825 message_loop_runner->Run();
758 826
759 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 827 ASSERT_TRUE(RunScript("permissionState()", &script_result));
760 EXPECT_EQ("permission status - prompt", script_result); 828 EXPECT_EQ("permission status - prompt", script_result);
761 829
762 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 830 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
763 EXPECT_EQ("false - not subscribed", script_result); 831 EXPECT_EQ("false - not subscribed", script_result);
764 } 832 }
765 833
766 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 834 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
767 LocalResetPushPermissionUnsubscribes) { 835 LocalResetPushPermissionUnsubscribes) {
768 std::string script_result; 836 std::string script_result;
769 837
770 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 838 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
771 839
772 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 840 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
773 EXPECT_EQ("true - subscribed", script_result); 841 EXPECT_EQ("true - subscribed", script_result);
774 842
775 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 843 ASSERT_TRUE(RunScript("permissionState()", &script_result));
776 EXPECT_EQ("permission status - granted", script_result); 844 EXPECT_EQ("permission status - granted", script_result);
(...skipping 13 matching lines...) Expand all
790 858
791 message_loop_runner->Run(); 859 message_loop_runner->Run();
792 860
793 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 861 ASSERT_TRUE(RunScript("permissionState()", &script_result));
794 EXPECT_EQ("permission status - prompt", script_result); 862 EXPECT_EQ("permission status - prompt", script_result);
795 863
796 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 864 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
797 EXPECT_EQ("false - not subscribed", script_result); 865 EXPECT_EQ("false - not subscribed", script_result);
798 } 866 }
799 867
800 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 868 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
801 DenyPushPermissionUnsubscribes) { 869 DenyPushPermissionUnsubscribes) {
802 std::string script_result; 870 std::string script_result;
803 871
804 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 872 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
805 873
806 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 874 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
807 EXPECT_EQ("true - subscribed", script_result); 875 EXPECT_EQ("true - subscribed", script_result);
808 876
809 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 877 ASSERT_TRUE(RunScript("permissionState()", &script_result));
810 EXPECT_EQ("permission status - granted", script_result); 878 EXPECT_EQ("permission status - granted", script_result);
(...skipping 13 matching lines...) Expand all
824 892
825 message_loop_runner->Run(); 893 message_loop_runner->Run();
826 894
827 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 895 ASSERT_TRUE(RunScript("permissionState()", &script_result));
828 EXPECT_EQ("permission status - denied", script_result); 896 EXPECT_EQ("permission status - denied", script_result);
829 897
830 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 898 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
831 EXPECT_EQ("false - not subscribed", script_result); 899 EXPECT_EQ("false - not subscribed", script_result);
832 } 900 }
833 901
834 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 902 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
835 GlobalResetNotificationsPermissionUnsubscribes) { 903 GlobalResetNotificationsPermissionUnsubscribes) {
836 std::string script_result; 904 std::string script_result;
837 905
838 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 906 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
839 907
840 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 908 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
841 EXPECT_EQ("true - subscribed", script_result); 909 EXPECT_EQ("true - subscribed", script_result);
842 910
843 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 911 ASSERT_TRUE(RunScript("permissionState()", &script_result));
844 EXPECT_EQ("permission status - granted", script_result); 912 EXPECT_EQ("permission status - granted", script_result);
845 913
846 scoped_refptr<content::MessageLoopRunner> message_loop_runner = 914 scoped_refptr<content::MessageLoopRunner> message_loop_runner =
847 new content::MessageLoopRunner; 915 new content::MessageLoopRunner;
848 push_service()->SetContentSettingChangedCallbackForTesting( 916 push_service()->SetContentSettingChangedCallbackForTesting(
849 message_loop_runner->QuitClosure()); 917 message_loop_runner->QuitClosure());
850 918
851 GetBrowser()->profile()->GetHostContentSettingsMap()-> 919 GetBrowser()->profile()->GetHostContentSettingsMap()->
852 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 920 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
853 921
854 message_loop_runner->Run(); 922 message_loop_runner->Run();
855 923
856 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 924 ASSERT_TRUE(RunScript("permissionState()", &script_result));
857 EXPECT_EQ("permission status - prompt", script_result); 925 EXPECT_EQ("permission status - prompt", script_result);
858 926
859 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 927 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
860 EXPECT_EQ("false - not subscribed", script_result); 928 EXPECT_EQ("false - not subscribed", script_result);
861 } 929 }
862 930
863 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 931 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
864 LocalResetNotificationsPermissionUnsubscribes) { 932 LocalResetNotificationsPermissionUnsubscribes) {
865 std::string script_result; 933 std::string script_result;
866 934
867 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 935 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
868 936
869 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 937 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
870 EXPECT_EQ("true - subscribed", script_result); 938 EXPECT_EQ("true - subscribed", script_result);
871 939
872 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 940 ASSERT_TRUE(RunScript("permissionState()", &script_result));
873 EXPECT_EQ("permission status - granted", script_result); 941 EXPECT_EQ("permission status - granted", script_result);
(...skipping 13 matching lines...) Expand all
887 955
888 message_loop_runner->Run(); 956 message_loop_runner->Run();
889 957
890 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 958 ASSERT_TRUE(RunScript("permissionState()", &script_result));
891 EXPECT_EQ("permission status - prompt", script_result); 959 EXPECT_EQ("permission status - prompt", script_result);
892 960
893 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 961 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
894 EXPECT_EQ("false - not subscribed", script_result); 962 EXPECT_EQ("false - not subscribed", script_result);
895 } 963 }
896 964
897 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 965 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
898 DenyNotificationsPermissionUnsubscribes) { 966 DenyNotificationsPermissionUnsubscribes) {
899 std::string script_result; 967 std::string script_result;
900 968
901 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 969 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
902 970
903 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 971 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
904 EXPECT_EQ("true - subscribed", script_result); 972 EXPECT_EQ("true - subscribed", script_result);
905 973
906 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 974 ASSERT_TRUE(RunScript("permissionState()", &script_result));
907 EXPECT_EQ("permission status - granted", script_result); 975 EXPECT_EQ("permission status - granted", script_result);
(...skipping 13 matching lines...) Expand all
921 989
922 message_loop_runner->Run(); 990 message_loop_runner->Run();
923 991
924 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 992 ASSERT_TRUE(RunScript("permissionState()", &script_result));
925 EXPECT_EQ("permission status - denied", script_result); 993 EXPECT_EQ("permission status - denied", script_result);
926 994
927 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 995 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
928 EXPECT_EQ("false - not subscribed", script_result); 996 EXPECT_EQ("false - not subscribed", script_result);
929 } 997 }
930 998
931 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 999 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
932 GrantAlreadyGrantedPermissionDoesNotUnsubscribe) { 1000 GrantAlreadyGrantedPermissionDoesNotUnsubscribe) {
933 std::string script_result; 1001 std::string script_result;
934 1002
935 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 1003 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
936 1004
937 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1005 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
938 EXPECT_EQ("true - subscribed", script_result); 1006 EXPECT_EQ("true - subscribed", script_result);
939 1007
940 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1008 ASSERT_TRUE(RunScript("permissionState()", &script_result));
941 EXPECT_EQ("permission status - granted", script_result); 1009 EXPECT_EQ("permission status - granted", script_result);
(...skipping 23 matching lines...) Expand all
965 EXPECT_EQ("permission status - granted", script_result); 1033 EXPECT_EQ("permission status - granted", script_result);
966 1034
967 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1035 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
968 EXPECT_EQ("true - subscribed", script_result); 1036 EXPECT_EQ("true - subscribed", script_result);
969 } 1037 }
970 1038
971 // This test is testing some non-trivial content settings rules and make sure 1039 // This test is testing some non-trivial content settings rules and make sure
972 // that they are respected with regards to automatic unsubscription. In other 1040 // that they are respected with regards to automatic unsubscription. In other
973 // words, it checks that the push service does not end up unsubscribing origins 1041 // words, it checks that the push service does not end up unsubscribing origins
974 // that have push permission with some non-common rules. 1042 // that have push permission with some non-common rules.
975 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 1043 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
976 AutomaticUnsubscriptionFollowsContentSettingRules) { 1044 AutomaticUnsubscriptionFollowsContentSettingRules) {
977 std::string script_result; 1045 std::string script_result;
978 1046
979 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 1047 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
980 1048
981 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1049 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
982 EXPECT_EQ("true - subscribed", script_result); 1050 EXPECT_EQ("true - subscribed", script_result);
983 1051
984 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1052 ASSERT_TRUE(RunScript("permissionState()", &script_result));
985 EXPECT_EQ("permission status - granted", script_result); 1053 EXPECT_EQ("permission status - granted", script_result);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1024 1092
1025 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1093 ASSERT_TRUE(RunScript("permissionState()", &script_result));
1026 EXPECT_EQ("permission status - granted", script_result); 1094 EXPECT_EQ("permission status - granted", script_result);
1027 1095
1028 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1096 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
1029 EXPECT_EQ("true - subscribed", script_result); 1097 EXPECT_EQ("true - subscribed", script_result);
1030 } 1098 }
1031 1099
1032 // Checks that automatically unsubscribing due to a revoked permission is 1100 // Checks that automatically unsubscribing due to a revoked permission is
1033 // handled well if the sender ID needed to unsubscribe was already deleted. 1101 // handled well if the sender ID needed to unsubscribe was already deleted.
1034 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 1102 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
1035 ResetPushPermissionAfterClearingSiteData) { 1103 ResetPushPermissionAfterClearingSiteData) {
1036 std::string script_result; 1104 std::string script_result;
1037 1105
1038 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 1106 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
1039 1107
1040 PushMessagingAppIdentifier app_identifier = 1108 PushMessagingAppIdentifier app_identifier =
1041 GetAppIdentifierForServiceWorkerRegistration(0LL); 1109 GetAppIdentifierForServiceWorkerRegistration(0LL);
1042 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 1110 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
1043 PushMessagingAppIdentifier stored_app_identifier = 1111 PushMessagingAppIdentifier stored_app_identifier =
1044 PushMessagingAppIdentifier::FindByAppId(GetBrowser()->profile(), 1112 PushMessagingAppIdentifier::FindByAppId(GetBrowser()->profile(),
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1097 std::string script_result; 1165 std::string script_result;
1098 1166
1099 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 1167 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
1100 ASSERT_EQ("ok - service worker registered", script_result); 1168 ASSERT_EQ("ok - service worker registered", script_result);
1101 1169
1102 // In Incognito mode the promise returned by getSubscription should not hang, 1170 // In Incognito mode the promise returned by getSubscription should not hang,
1103 // it should just fulfill with null. 1171 // it should just fulfill with null.
1104 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1172 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
1105 ASSERT_EQ("false - not subscribed", script_result); 1173 ASSERT_EQ("false - not subscribed", script_result);
1106 } 1174 }
1175
1176 INSTANTIATE_TEST_CASE_P(PushMessagingBrowserTestWithParams,
johnme 2015/06/02 14:12:38 Does this mean all the tests will run twice, even
1177 PushMessagingBrowserTest,
1178 testing::Values(false, true));
1179 INSTANTIATE_TEST_CASE_P(PushMessagingBadManifestBrowserTestWithParams,
1180 PushMessagingBadManifestBrowserTest,
1181 testing::Values(false, true));
1182 INSTANTIATE_TEST_CASE_P(PushMessagingManifestUserVisibleOnlyTrueTestWithParams,
1183 PushMessagingManifestUserVisibleOnlyTrueTest,
1184 testing::Values(false, true));
1185 INSTANTIATE_TEST_CASE_P(PushMessagingBrowserTestEmptySubscriptionOptsWithParams,
1186 PushMessagingBrowserTestEmptySubscriptionOptions,
1187 testing::Values(false, true));
OLDNEW
« no previous file with comments | « no previous file | chrome/test/data/push_messaging/push_test.js » ('j') | chrome/test/data/push_messaging/push_test.js » ('J')

Powered by Google App Engine
This is Rietveld 408576698