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

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

Issue 914693002: Push API: Fix unsubscribing from GCM on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Tweak comment per jianli 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 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 416
417 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 417 ASSERT_TRUE(RunScript("isControlled()", &script_result));
418 ASSERT_EQ("false - is not controlled", script_result); 418 ASSERT_EQ("false - is not controlled", script_result);
419 419
420 LoadTestPage(); // Reload to become controlled. 420 LoadTestPage(); // Reload to become controlled.
421 421
422 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 422 ASSERT_TRUE(RunScript("isControlled()", &script_result));
423 ASSERT_EQ("true - is controlled", script_result); 423 ASSERT_EQ("true - is controlled", script_result);
424 424
425 GCMClient::IncomingMessage message; 425 GCMClient::IncomingMessage message;
426 message.sender_id = "1234567890";
426 message.data["data"] = "testdata"; 427 message.data["data"] = "testdata";
427 push_service()->OnMessage(app_id.app_id_guid(), message); 428 push_service()->OnMessage(app_id.app_id_guid(), message);
428 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result)); 429 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result));
429 EXPECT_EQ("testdata", script_result); 430 EXPECT_EQ("testdata", script_result);
430 } 431 }
431 432
432 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoServiceWorker) { 433 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoServiceWorker) {
433 std::string script_result; 434 std::string script_result;
434 435
435 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */); 436 TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
(...skipping 14 matching lines...) Expand all
450 ASSERT_TRUE(RunScript("unregisterServiceWorker()", &script_result)); 451 ASSERT_TRUE(RunScript("unregisterServiceWorker()", &script_result));
451 ASSERT_EQ("service worker unregistration status: true", script_result); 452 ASSERT_EQ("service worker unregistration status: true", script_result);
452 453
453 // When the push service will receive it next message, given that there is no 454 // When the push service will receive it next message, given that there is no
454 // SW available, it should unregister |app_id|. 455 // SW available, it should unregister |app_id|.
455 UnregistrationCallback callback; 456 UnregistrationCallback callback;
456 gcm_service()->SetUnregisterCallback(base::Bind(&UnregistrationCallback::Run, 457 gcm_service()->SetUnregisterCallback(base::Bind(&UnregistrationCallback::Run,
457 base::Unretained(&callback))); 458 base::Unretained(&callback)));
458 459
459 GCMClient::IncomingMessage message; 460 GCMClient::IncomingMessage message;
461 message.sender_id = "1234567890";
460 message.data["data"] = "testdata"; 462 message.data["data"] = "testdata";
461 push_service()->OnMessage(app_id.app_id_guid(), message); 463 push_service()->OnMessage(app_id.app_id_guid(), message);
462 464
463 callback.WaitUntilSatisfied(); 465 callback.WaitUntilSatisfied();
464 EXPECT_EQ(app_id.app_id_guid(), callback.app_id()); 466 EXPECT_EQ(app_id.app_id_guid(), callback.app_id());
465 467
466 // No push data should have been received. 468 // No push data should have been received.
467 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result)); 469 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result));
468 EXPECT_EQ("null", script_result); 470 EXPECT_EQ("null", script_result);
469 } 471 }
(...skipping 19 matching lines...) Expand all
489 browser()->profile()->GetHostContentSettingsMap()-> 491 browser()->profile()->GetHostContentSettingsMap()->
490 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); 492 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING);
491 493
492 // When the push service will receive its next message, given that there is no 494 // When the push service will receive its next message, given that there is no
493 // SW available, it should unregister |app_id|. 495 // SW available, it should unregister |app_id|.
494 UnregistrationCallback callback; 496 UnregistrationCallback callback;
495 gcm_service()->SetUnregisterCallback(base::Bind(&UnregistrationCallback::Run, 497 gcm_service()->SetUnregisterCallback(base::Bind(&UnregistrationCallback::Run,
496 base::Unretained(&callback))); 498 base::Unretained(&callback)));
497 499
498 GCMClient::IncomingMessage message; 500 GCMClient::IncomingMessage message;
501 message.sender_id = "1234567890";
499 message.data["data"] = "testdata"; 502 message.data["data"] = "testdata";
500 push_service()->OnMessage(app_id.app_id_guid(), message); 503 push_service()->OnMessage(app_id.app_id_guid(), message);
501 504
502 callback.WaitUntilSatisfied(); 505 callback.WaitUntilSatisfied();
503 EXPECT_EQ(app_id.app_id_guid(), callback.app_id()); 506 EXPECT_EQ(app_id.app_id_guid(), callback.app_id());
504 507
505 // No push data should have been received. 508 // No push data should have been received.
506 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result)); 509 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result));
507 EXPECT_EQ("null", script_result); 510 EXPECT_EQ("null", script_result);
508 } 511 }
(...skipping 21 matching lines...) Expand all
530 ASSERT_EQ(0u, notification_manager()->GetNotificationCount()); 533 ASSERT_EQ(0u, notification_manager()->GetNotificationCount());
531 534
532 // We'll need to specify the web_contents in which to eval script, since we're 535 // We'll need to specify the web_contents in which to eval script, since we're
533 // going to run script in a background tab. 536 // going to run script in a background tab.
534 content::WebContents* web_contents = 537 content::WebContents* web_contents =
535 browser()->tab_strip_model()->GetActiveWebContents(); 538 browser()->tab_strip_model()->GetActiveWebContents();
536 539
537 // If the site is visible in an active tab, we should not force a notification 540 // If the site is visible in an active tab, we should not force a notification
538 // to be shown. Try it twice, since we allow one mistake per 10 push events. 541 // to be shown. Try it twice, since we allow one mistake per 10 push events.
539 GCMClient::IncomingMessage message; 542 GCMClient::IncomingMessage message;
543 message.sender_id = "1234567890";
540 for (int n = 0; n < 2; n++) { 544 for (int n = 0; n < 2; n++) {
541 message.data["data"] = "testdata"; 545 message.data["data"] = "testdata";
542 push_service()->OnMessage(app_id.app_id_guid(), message); 546 push_service()->OnMessage(app_id.app_id_guid(), message);
543 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result)); 547 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result));
544 EXPECT_EQ("testdata", script_result); 548 EXPECT_EQ("testdata", script_result);
545 EXPECT_EQ(0u, notification_manager()->GetNotificationCount()); 549 EXPECT_EQ(0u, notification_manager()->GetNotificationCount());
546 } 550 }
547 551
548 // Open a blank foreground tab so site is no longer visible. 552 // Open a blank foreground tab so site is no longer visible.
549 ui_test_utils::NavigateToURLWithDisposition( 553 ui_test_utils::NavigateToURLWithDisposition(
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
617 LoadTestPage(); // Reload to become controlled. 621 LoadTestPage(); // Reload to become controlled.
618 622
619 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 623 ASSERT_TRUE(RunScript("isControlled()", &script_result));
620 ASSERT_EQ("true - is controlled", script_result); 624 ASSERT_EQ("true - is controlled", script_result);
621 625
622 NotificationAddedCallback callback; 626 NotificationAddedCallback callback;
623 notification_manager()->SetNotificationAddedCallback( 627 notification_manager()->SetNotificationAddedCallback(
624 base::Bind(&NotificationAddedCallback::Run, base::Unretained(&callback))); 628 base::Bind(&NotificationAddedCallback::Run, base::Unretained(&callback)));
625 629
626 GCMClient::IncomingMessage message; 630 GCMClient::IncomingMessage message;
631 message.sender_id = "1234567890";
627 message.data["data"] = "shownotification-without-waituntil"; 632 message.data["data"] = "shownotification-without-waituntil";
628 push_service()->OnMessage(app_id.app_id_guid(), message); 633 push_service()->OnMessage(app_id.app_id_guid(), message);
629 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents)); 634 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents));
630 EXPECT_EQ("immediate:shownotification-without-waituntil", script_result); 635 EXPECT_EQ("immediate:shownotification-without-waituntil", script_result);
631 636
632 callback.WaitUntilSatisfied(); 637 callback.WaitUntilSatisfied();
633 638
634 ASSERT_EQ(1u, notification_manager()->GetNotificationCount()); 639 ASSERT_EQ(1u, notification_manager()->GetNotificationCount());
635 EXPECT_EQ(base::ASCIIToUTF16("push_test_tag"), 640 EXPECT_EQ(base::ASCIIToUTF16("push_test_tag"),
636 notification_manager()->GetNotificationAt(0).replace_id()); 641 notification_manager()->GetNotificationAt(0).replace_id());
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
717 722
718 gcm_service()->AddExpectedUnregisterResponse(GCMClient::UNKNOWN_ERROR); 723 gcm_service()->AddExpectedUnregisterResponse(GCMClient::UNKNOWN_ERROR);
719 724
720 ASSERT_TRUE(RunScript("unregister()", &script_result)); 725 ASSERT_TRUE(RunScript("unregister()", &script_result));
721 EXPECT_EQ("unregister error: " 726 EXPECT_EQ("unregister error: "
722 "UnknownError: Unexpected error while trying to unregister from the" 727 "UnknownError: Unexpected error while trying to unregister from the"
723 " push server.", script_result); 728 " push server.", script_result);
724 } 729 }
725 730
726 } // namespace gcm 731 } // namespace gcm
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/services/gcm/push_messaging_service_impl.h » ('j') | components/gcm_driver/gcm_driver.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698