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

Side by Side Diff: chrome/browser/services/gcm/push_messaging_browsertest.cc

Issue 931113003: [Push] Use proper accessors for PushMessagingApplicationId. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 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/bind.h" 8 #include "base/bind.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 browser()->profile(), origin, service_worker_registration_id); 261 browser()->profile(), origin, service_worker_registration_id);
262 EXPECT_TRUE(application_id.IsValid()); 262 EXPECT_TRUE(application_id.IsValid());
263 return application_id; 263 return application_id;
264 } 264 }
265 265
266 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 266 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
267 RegisterSuccessNotificationsGranted) { 267 RegisterSuccessNotificationsGranted) {
268 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */); 268 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
269 269
270 PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL); 270 PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL);
271 EXPECT_EQ(app_id.app_id_guid, gcm_service()->last_registered_app_id()); 271 EXPECT_EQ(app_id.app_id_guid(), gcm_service()->last_registered_app_id());
272 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 272 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
273 } 273 }
274 274
275 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 275 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
276 RegisterSuccessNotificationsPrompt) { 276 RegisterSuccessNotificationsPrompt) {
277 std::string script_result; 277 std::string script_result;
278 278
279 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 279 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
280 ASSERT_EQ("ok - service worker registered", script_result); 280 ASSERT_EQ("ok - service worker registered", script_result);
281 281
282 InfoBarResponder accepting_responder(browser(), true); 282 InfoBarResponder accepting_responder(browser(), true);
283 ASSERT_TRUE(RunScript("registerPush()", &script_result)); 283 ASSERT_TRUE(RunScript("registerPush()", &script_result));
284 EXPECT_EQ(std::string(kPushMessagingEndpoint) + " - 1-0", script_result); 284 EXPECT_EQ(std::string(kPushMessagingEndpoint) + " - 1-0", script_result);
285 285
286 PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL); 286 PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL);
287 EXPECT_EQ(app_id.app_id_guid, gcm_service()->last_registered_app_id()); 287 EXPECT_EQ(app_id.app_id_guid(), gcm_service()->last_registered_app_id());
288 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 288 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
289 } 289 }
290 290
291 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 291 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
292 RegisterFailureNotificationsBlocked) { 292 RegisterFailureNotificationsBlocked) {
293 std::string script_result; 293 std::string script_result;
294 294
295 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 295 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
296 ASSERT_EQ("ok - service worker registered", script_result); 296 ASSERT_EQ("ok - service worker registered", script_result);
297 297
(...skipping 29 matching lines...) Expand all
327 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, RegisterPersisted) { 327 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, RegisterPersisted) {
328 std::string script_result; 328 std::string script_result;
329 329
330 // First, test that Service Worker registration IDs are assigned in order of 330 // First, test that Service Worker registration IDs are assigned in order of
331 // registering the Service Workers, and the (fake) push registration ids are 331 // registering the Service Workers, and the (fake) push registration ids are
332 // assigned in order of push registration (even when these orders are 332 // assigned in order of push registration (even when these orders are
333 // different). 333 // different).
334 334
335 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */); 335 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
336 PushMessagingApplicationId app_id_sw0 = GetServiceWorkerAppId(0LL); 336 PushMessagingApplicationId app_id_sw0 = GetServiceWorkerAppId(0LL);
337 EXPECT_EQ(app_id_sw0.app_id_guid, gcm_service()->last_registered_app_id()); 337 EXPECT_EQ(app_id_sw0.app_id_guid(), gcm_service()->last_registered_app_id());
338 338
339 LoadTestPage("files/push_messaging/subscope1/test.html"); 339 LoadTestPage("files/push_messaging/subscope1/test.html");
340 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 340 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
341 ASSERT_EQ("ok - service worker registered", script_result); 341 ASSERT_EQ("ok - service worker registered", script_result);
342 342
343 LoadTestPage("files/push_messaging/subscope2/test.html"); 343 LoadTestPage("files/push_messaging/subscope2/test.html");
344 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 344 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
345 ASSERT_EQ("ok - service worker registered", script_result); 345 ASSERT_EQ("ok - service worker registered", script_result);
346 346
347 // Note that we need to reload the page after registering, otherwise 347 // Note that we need to reload the page after registering, otherwise
348 // navigator.serviceWorker.ready is going to be resolved with the parent 348 // navigator.serviceWorker.ready is going to be resolved with the parent
349 // Service Worker which still controls the page. 349 // Service Worker which still controls the page.
350 LoadTestPage("files/push_messaging/subscope2/test.html"); 350 LoadTestPage("files/push_messaging/subscope2/test.html");
351 TryToRegisterSuccessfully("1-1" /* expected_push_registration_id */); 351 TryToRegisterSuccessfully("1-1" /* expected_push_registration_id */);
352 PushMessagingApplicationId app_id_sw2 = GetServiceWorkerAppId(2LL); 352 PushMessagingApplicationId app_id_sw2 = GetServiceWorkerAppId(2LL);
353 EXPECT_EQ(app_id_sw2.app_id_guid, gcm_service()->last_registered_app_id()); 353 EXPECT_EQ(app_id_sw2.app_id_guid(), gcm_service()->last_registered_app_id());
354 354
355 LoadTestPage("files/push_messaging/subscope1/test.html"); 355 LoadTestPage("files/push_messaging/subscope1/test.html");
356 TryToRegisterSuccessfully("1-2" /* expected_push_registration_id */); 356 TryToRegisterSuccessfully("1-2" /* expected_push_registration_id */);
357 PushMessagingApplicationId app_id_sw1 = GetServiceWorkerAppId(1LL); 357 PushMessagingApplicationId app_id_sw1 = GetServiceWorkerAppId(1LL);
358 EXPECT_EQ(app_id_sw1.app_id_guid, gcm_service()->last_registered_app_id()); 358 EXPECT_EQ(app_id_sw1.app_id_guid(), gcm_service()->last_registered_app_id());
359 359
360 // Now test that the Service Worker registration IDs and push registration IDs 360 // Now test that the Service Worker registration IDs and push registration IDs
361 // generated above were persisted to SW storage, by checking that they are 361 // generated above were persisted to SW storage, by checking that they are
362 // unchanged despite requesting them in a different order. 362 // unchanged despite requesting them in a different order.
363 // TODO(johnme): Ideally we would restart the browser at this point to check 363 // TODO(johnme): Ideally we would restart the browser at this point to check
364 // they were persisted to disk, but that's not currently possible since the 364 // they were persisted to disk, but that's not currently possible since the
365 // test server uses random port numbers for each test (even PRE_Foo and Foo), 365 // test server uses random port numbers for each test (even PRE_Foo and Foo),
366 // so we wouldn't be able to load the test pages with the same origin. 366 // so we wouldn't be able to load the test pages with the same origin.
367 367
368 LoadTestPage("files/push_messaging/subscope1/test.html"); 368 LoadTestPage("files/push_messaging/subscope1/test.html");
369 TryToRegisterSuccessfully("1-2" /* expected_push_registration_id */); 369 TryToRegisterSuccessfully("1-2" /* expected_push_registration_id */);
370 EXPECT_EQ(app_id_sw1.app_id_guid, gcm_service()->last_registered_app_id()); 370 EXPECT_EQ(app_id_sw1.app_id_guid(), gcm_service()->last_registered_app_id());
371 371
372 LoadTestPage("files/push_messaging/subscope2/test.html"); 372 LoadTestPage("files/push_messaging/subscope2/test.html");
373 TryToRegisterSuccessfully("1-1" /* expected_push_registration_id */); 373 TryToRegisterSuccessfully("1-1" /* expected_push_registration_id */);
374 EXPECT_EQ(app_id_sw1.app_id_guid, gcm_service()->last_registered_app_id()); 374 EXPECT_EQ(app_id_sw1.app_id_guid(), gcm_service()->last_registered_app_id());
375 375
376 LoadTestPage(); 376 LoadTestPage();
377 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */); 377 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
378 EXPECT_EQ(app_id_sw1.app_id_guid, gcm_service()->last_registered_app_id()); 378 EXPECT_EQ(app_id_sw1.app_id_guid(), gcm_service()->last_registered_app_id());
379 } 379 }
380 380
381 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventSuccess) { 381 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventSuccess) {
382 std::string script_result; 382 std::string script_result;
383 383
384 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */); 384 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
385 385
386 PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL); 386 PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL);
387 EXPECT_EQ(app_id.app_id_guid, gcm_service()->last_registered_app_id()); 387 EXPECT_EQ(app_id.app_id_guid(), gcm_service()->last_registered_app_id());
388 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 388 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
389 389
390 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 390 ASSERT_TRUE(RunScript("isControlled()", &script_result));
391 ASSERT_EQ("false - is not controlled", script_result); 391 ASSERT_EQ("false - is not controlled", script_result);
392 392
393 LoadTestPage(); // Reload to become controlled. 393 LoadTestPage(); // Reload to become controlled.
394 394
395 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 395 ASSERT_TRUE(RunScript("isControlled()", &script_result));
396 ASSERT_EQ("true - is controlled", script_result); 396 ASSERT_EQ("true - is controlled", script_result);
397 397
398 GCMClient::IncomingMessage message; 398 GCMClient::IncomingMessage message;
399 message.data["data"] = "testdata"; 399 message.data["data"] = "testdata";
400 push_service()->OnMessage(app_id.app_id_guid, message); 400 push_service()->OnMessage(app_id.app_id_guid(), message);
401 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result)); 401 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result));
402 EXPECT_EQ("testdata", script_result); 402 EXPECT_EQ("testdata", script_result);
403 } 403 }
404 404
405 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoServiceWorker) { 405 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoServiceWorker) {
406 std::string script_result; 406 std::string script_result;
407 407
408 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */); 408 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
409 409
410 PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL); 410 PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL);
411 EXPECT_EQ(app_id.app_id_guid, gcm_service()->last_registered_app_id()); 411 EXPECT_EQ(app_id.app_id_guid(), gcm_service()->last_registered_app_id());
412 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 412 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
413 413
414 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 414 ASSERT_TRUE(RunScript("isControlled()", &script_result));
415 ASSERT_EQ("false - is not controlled", script_result); 415 ASSERT_EQ("false - is not controlled", script_result);
416 416
417 LoadTestPage(); // Reload to become controlled. 417 LoadTestPage(); // Reload to become controlled.
418 418
419 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 419 ASSERT_TRUE(RunScript("isControlled()", &script_result));
420 ASSERT_EQ("true - is controlled", script_result); 420 ASSERT_EQ("true - is controlled", script_result);
421 421
422 // Unregister service worker. Sending a message should now fail. 422 // Unregister service worker. Sending a message should now fail.
423 ASSERT_TRUE(RunScript("unregisterServiceWorker()", &script_result)); 423 ASSERT_TRUE(RunScript("unregisterServiceWorker()", &script_result));
424 ASSERT_EQ("service worker unregistration status: true", script_result); 424 ASSERT_EQ("service worker unregistration status: true", script_result);
425 425
426 // When the push service will receive it next message, given that there is no 426 // When the push service will receive it next message, given that there is no
427 // SW available, it should unregister |app_id|. 427 // SW available, it should unregister |app_id|.
428 UnregistrationCallback callback; 428 UnregistrationCallback callback;
429 gcm_service()->SetUnregisterCallback(base::Bind(&UnregistrationCallback::Run, 429 gcm_service()->SetUnregisterCallback(base::Bind(&UnregistrationCallback::Run,
430 base::Unretained(&callback))); 430 base::Unretained(&callback)));
431 431
432 GCMClient::IncomingMessage message; 432 GCMClient::IncomingMessage message;
433 message.data["data"] = "testdata"; 433 message.data["data"] = "testdata";
434 push_service()->OnMessage(app_id.app_id_guid, message); 434 push_service()->OnMessage(app_id.app_id_guid(), message);
435 435
436 callback.WaitUntilSatisfied(); 436 callback.WaitUntilSatisfied();
437 EXPECT_EQ(app_id.app_id_guid, callback.app_id()); 437 EXPECT_EQ(app_id.app_id_guid(), callback.app_id());
438 438
439 // No push data should have been received. 439 // No push data should have been received.
440 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result)); 440 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result));
441 EXPECT_EQ("null", script_result); 441 EXPECT_EQ("null", script_result);
442 } 442 }
443 443
444 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoPermission) { 444 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoPermission) {
445 std::string script_result; 445 std::string script_result;
446 446
447 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */); 447 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
448 448
449 PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL); 449 PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL);
450 EXPECT_EQ(app_id.app_id_guid, gcm_service()->last_registered_app_id()); 450 EXPECT_EQ(app_id.app_id_guid(), gcm_service()->last_registered_app_id());
451 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 451 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
452 452
453 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 453 ASSERT_TRUE(RunScript("isControlled()", &script_result));
454 ASSERT_EQ("false - is not controlled", script_result); 454 ASSERT_EQ("false - is not controlled", script_result);
455 455
456 LoadTestPage(); // Reload to become controlled. 456 LoadTestPage(); // Reload to become controlled.
457 457
458 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 458 ASSERT_TRUE(RunScript("isControlled()", &script_result));
459 ASSERT_EQ("true - is controlled", script_result); 459 ASSERT_EQ("true - is controlled", script_result);
460 460
461 // Revoke Push permission. 461 // Revoke Push permission.
462 browser()->profile()->GetHostContentSettingsMap()-> 462 browser()->profile()->GetHostContentSettingsMap()->
463 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); 463 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING);
464 464
465 // When the push service will receive its next message, given that there is no 465 // When the push service will receive its next message, given that there is no
466 // SW available, it should unregister |app_id|. 466 // SW available, it should unregister |app_id|.
467 UnregistrationCallback callback; 467 UnregistrationCallback callback;
468 gcm_service()->SetUnregisterCallback(base::Bind(&UnregistrationCallback::Run, 468 gcm_service()->SetUnregisterCallback(base::Bind(&UnregistrationCallback::Run,
469 base::Unretained(&callback))); 469 base::Unretained(&callback)));
470 470
471 GCMClient::IncomingMessage message; 471 GCMClient::IncomingMessage message;
472 message.data["data"] = "testdata"; 472 message.data["data"] = "testdata";
473 push_service()->OnMessage(app_id.app_id_guid, message); 473 push_service()->OnMessage(app_id.app_id_guid(), message);
474 474
475 callback.WaitUntilSatisfied(); 475 callback.WaitUntilSatisfied();
476 EXPECT_EQ(app_id.app_id_guid, callback.app_id()); 476 EXPECT_EQ(app_id.app_id_guid(), callback.app_id());
477 477
478 // No push data should have been received. 478 // No push data should have been received.
479 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result)); 479 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result));
480 EXPECT_EQ("null", script_result); 480 EXPECT_EQ("null", script_result);
481 } 481 }
482 482
483 #if defined(ENABLE_NOTIFICATIONS) 483 #if defined(ENABLE_NOTIFICATIONS)
484 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 484 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
485 PushEventEnforcesUserVisibleNotification) { 485 PushEventEnforcesUserVisibleNotification) {
486 std::string script_result; 486 std::string script_result;
487 487
488 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */); 488 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
489 489
490 PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL); 490 PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL);
491 EXPECT_EQ(app_id.app_id_guid, gcm_service()->last_registered_app_id()); 491 EXPECT_EQ(app_id.app_id_guid(), gcm_service()->last_registered_app_id());
492 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 492 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
493 493
494 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 494 ASSERT_TRUE(RunScript("isControlled()", &script_result));
495 ASSERT_EQ("false - is not controlled", script_result); 495 ASSERT_EQ("false - is not controlled", script_result);
496 496
497 LoadTestPage(); // Reload to become controlled. 497 LoadTestPage(); // Reload to become controlled.
498 498
499 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 499 ASSERT_TRUE(RunScript("isControlled()", &script_result));
500 ASSERT_EQ("true - is controlled", script_result); 500 ASSERT_EQ("true - is controlled", script_result);
501 501
502 notification_manager()->CancelAll(); 502 notification_manager()->CancelAll();
503 ASSERT_EQ(0u, notification_manager()->GetNotificationCount()); 503 ASSERT_EQ(0u, notification_manager()->GetNotificationCount());
504 504
505 // We'll need to specify the web_contents in which to eval script, since we're 505 // We'll need to specify the web_contents in which to eval script, since we're
506 // going to run script in a background tab. 506 // going to run script in a background tab.
507 content::WebContents* web_contents = 507 content::WebContents* web_contents =
508 browser()->tab_strip_model()->GetActiveWebContents(); 508 browser()->tab_strip_model()->GetActiveWebContents();
509 509
510 // If the site is visible in an active tab, we should not force a notification 510 // If the site is visible in an active tab, we should not force a notification
511 // to be shown. Try it twice, since we allow one mistake per 10 push events. 511 // to be shown. Try it twice, since we allow one mistake per 10 push events.
512 GCMClient::IncomingMessage message; 512 GCMClient::IncomingMessage message;
513 for (int n = 0; n < 2; n++) { 513 for (int n = 0; n < 2; n++) {
514 message.data["data"] = "testdata"; 514 message.data["data"] = "testdata";
515 push_service()->OnMessage(app_id.app_id_guid, message); 515 push_service()->OnMessage(app_id.app_id_guid(), message);
516 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result)); 516 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result));
517 EXPECT_EQ("testdata", script_result); 517 EXPECT_EQ("testdata", script_result);
518 EXPECT_EQ(0u, notification_manager()->GetNotificationCount()); 518 EXPECT_EQ(0u, notification_manager()->GetNotificationCount());
519 } 519 }
520 520
521 // Open a blank foreground tab so site is no longer visible. 521 // Open a blank foreground tab so site is no longer visible.
522 ui_test_utils::NavigateToURLWithDisposition( 522 ui_test_utils::NavigateToURLWithDisposition(
523 browser(), GURL("about:blank"), NEW_FOREGROUND_TAB, 523 browser(), GURL("about:blank"), NEW_FOREGROUND_TAB,
524 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); 524 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
525 525
526 // If the Service Worker push event handler does not show a notification, we 526 // If the Service Worker push event handler does not show a notification, we
527 // should show a forced one, but only on the 2nd occurrence since we allow one 527 // should show a forced one, but only on the 2nd occurrence since we allow one
528 // mistake per 10 push events. 528 // mistake per 10 push events.
529 message.data["data"] = "testdata"; 529 message.data["data"] = "testdata";
530 push_service()->OnMessage(app_id.app_id_guid, message); 530 push_service()->OnMessage(app_id.app_id_guid(), message);
531 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents)); 531 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents));
532 EXPECT_EQ("testdata", script_result); 532 EXPECT_EQ("testdata", script_result);
533 EXPECT_EQ(0u, notification_manager()->GetNotificationCount()); 533 EXPECT_EQ(0u, notification_manager()->GetNotificationCount());
534 message.data["data"] = "testdata"; 534 message.data["data"] = "testdata";
535 push_service()->OnMessage(app_id.app_id_guid, message); 535 push_service()->OnMessage(app_id.app_id_guid(), message);
536 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents)); 536 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents));
537 EXPECT_EQ("testdata", script_result); 537 EXPECT_EQ("testdata", script_result);
538 EXPECT_EQ(1u, notification_manager()->GetNotificationCount()); 538 EXPECT_EQ(1u, notification_manager()->GetNotificationCount());
539 EXPECT_EQ(base::ASCIIToUTF16(kPushMessagingForcedNotificationTag), 539 EXPECT_EQ(base::ASCIIToUTF16(kPushMessagingForcedNotificationTag),
540 notification_manager()->GetNotificationAt(0).replace_id()); 540 notification_manager()->GetNotificationAt(0).replace_id());
541 541
542 // Currently, this notification will stick around until the user or webapp 542 // Currently, this notification will stick around until the user or webapp
543 // explicitly dismisses it (though we may change this later). 543 // explicitly dismisses it (though we may change this later).
544 message.data["data"] = "shownotification"; 544 message.data["data"] = "shownotification";
545 push_service()->OnMessage(app_id.app_id_guid, message); 545 push_service()->OnMessage(app_id.app_id_guid(), message);
546 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents)); 546 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents));
547 EXPECT_EQ("shownotification", script_result); 547 EXPECT_EQ("shownotification", script_result);
548 EXPECT_EQ(2u, notification_manager()->GetNotificationCount()); 548 EXPECT_EQ(2u, notification_manager()->GetNotificationCount());
549 549
550 notification_manager()->CancelAll(); 550 notification_manager()->CancelAll();
551 EXPECT_EQ(0u, notification_manager()->GetNotificationCount()); 551 EXPECT_EQ(0u, notification_manager()->GetNotificationCount());
552 552
553 // However if the Service Worker push event handler shows a notification, we 553 // However if the Service Worker push event handler shows a notification, we
554 // should not show a forced one. 554 // should not show a forced one.
555 message.data["data"] = "shownotification"; 555 message.data["data"] = "shownotification";
556 for (int n = 0; n < 9; n++) { 556 for (int n = 0; n < 9; n++) {
557 push_service()->OnMessage(app_id.app_id_guid, message); 557 push_service()->OnMessage(app_id.app_id_guid(), message);
558 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents)); 558 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents));
559 EXPECT_EQ("shownotification", script_result); 559 EXPECT_EQ("shownotification", script_result);
560 EXPECT_EQ(1u, notification_manager()->GetNotificationCount()); 560 EXPECT_EQ(1u, notification_manager()->GetNotificationCount());
561 EXPECT_EQ(base::ASCIIToUTF16("push_test_tag"), 561 EXPECT_EQ(base::ASCIIToUTF16("push_test_tag"),
562 notification_manager()->GetNotificationAt(0).replace_id()); 562 notification_manager()->GetNotificationAt(0).replace_id());
563 notification_manager()->CancelAll(); 563 notification_manager()->CancelAll();
564 } 564 }
565 565
566 // Now that 10 push messages in a row have shown notifications, we should 566 // Now that 10 push messages in a row have shown notifications, we should
567 // allow the next one to mistakenly not show a notification. 567 // allow the next one to mistakenly not show a notification.
568 message.data["data"] = "testdata"; 568 message.data["data"] = "testdata";
569 push_service()->OnMessage(app_id.app_id_guid, message); 569 push_service()->OnMessage(app_id.app_id_guid(), message);
570 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents)); 570 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents));
571 EXPECT_EQ("testdata", script_result); 571 EXPECT_EQ("testdata", script_result);
572 EXPECT_EQ(0u, notification_manager()->GetNotificationCount()); 572 EXPECT_EQ(0u, notification_manager()->GetNotificationCount());
573 } 573 }
574 #endif 574 #endif
575 575
576 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, HasPermissionSaysDefault) { 576 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, HasPermissionSaysDefault) {
577 std::string script_result; 577 std::string script_result;
578 578
579 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 579 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 649
650 gcm_service()->AddExpectedUnregisterResponse(GCMClient::UNKNOWN_ERROR); 650 gcm_service()->AddExpectedUnregisterResponse(GCMClient::UNKNOWN_ERROR);
651 651
652 ASSERT_TRUE(RunScript("unregister()", &script_result)); 652 ASSERT_TRUE(RunScript("unregister()", &script_result));
653 EXPECT_EQ("unregister error: " 653 EXPECT_EQ("unregister error: "
654 "UnknownError: Unexpected error while trying to unregister from the" 654 "UnknownError: Unexpected error while trying to unregister from the"
655 " push server.", script_result); 655 " push server.", script_result);
656 } 656 }
657 657
658 } // namespace gcm 658 } // namespace gcm
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698