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

Unified 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: Remove obsolete PushEventNoPermission test 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/services/gcm/push_messaging_service_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/services/gcm/push_messaging_browsertest.cc
diff --git a/chrome/browser/services/gcm/push_messaging_browsertest.cc b/chrome/browser/services/gcm/push_messaging_browsertest.cc
index 2b293fe19a58e68f84d3e598c8144d1b6c28a3c0..1eeb7bf5d1de205c013f3c912c6553c8d07e6727 100644
--- a/chrome/browser/services/gcm/push_messaging_browsertest.cc
+++ b/chrome/browser/services/gcm/push_messaging_browsertest.cc
@@ -89,15 +89,20 @@ class InfoBarResponder : public infobars::InfoBarManager::Observer {
// FakeGCMProfileService::UnregisterCallback.
class UnregistrationCallback {
public:
- UnregistrationCallback() : done_(false) {}
+ UnregistrationCallback() : done_(false), waiting_(false) {}
void Run(const std::string& app_id) {
app_id_ = app_id;
done_ = true;
- base::MessageLoop::current()->Quit();
+ if (waiting_)
+ base::MessageLoop::current()->Quit();
}
void WaitUntilSatisfied() {
+ if (done_)
+ return;
+
+ waiting_ = true;
while (!done_)
content::RunMessageLoop();
}
@@ -108,6 +113,7 @@ class UnregistrationCallback {
private:
bool done_;
+ bool waiting_;
std::string app_id_;
};
@@ -458,6 +464,7 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventSuccess) {
ASSERT_EQ("true - is controlled", script_result);
GCMClient::IncomingMessage message;
+ message.sender_id = "1234567890";
message.data["data"] = "testdata";
push_service()->OnMessage(app_id.app_id_guid(), message);
ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result));
@@ -495,48 +502,7 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoServiceWorker) {
base::Unretained(&callback)));
GCMClient::IncomingMessage message;
- message.data["data"] = "testdata";
- push_service()->OnMessage(app_id.app_id_guid(), message);
-
- callback.WaitUntilSatisfied();
- EXPECT_EQ(app_id.app_id_guid(), callback.app_id());
-
- // No push data should have been received.
- ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result));
- EXPECT_EQ("null", script_result);
-}
-
-IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoPermission) {
- if (!IsPushSupported())
- return;
-
- std::string script_result;
-
- TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
-
- PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL);
- EXPECT_EQ(app_id.app_id_guid(), gcm_service()->last_registered_app_id());
- EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
-
- ASSERT_TRUE(RunScript("isControlled()", &script_result));
- ASSERT_EQ("false - is not controlled", script_result);
-
- LoadTestPage(); // Reload to become controlled.
-
- ASSERT_TRUE(RunScript("isControlled()", &script_result));
- ASSERT_EQ("true - is controlled", script_result);
-
- // Revoke Push permission.
- browser()->profile()->GetHostContentSettingsMap()->
- ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING);
-
- // When the push service will receive its next message, given that there is no
- // SW available, it should unregister |app_id|.
- UnregistrationCallback callback;
- gcm_service()->SetUnregisterCallback(base::Bind(&UnregistrationCallback::Run,
- base::Unretained(&callback)));
-
- GCMClient::IncomingMessage message;
+ message.sender_id = "1234567890";
message.data["data"] = "testdata";
push_service()->OnMessage(app_id.app_id_guid(), message);
@@ -581,6 +547,7 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
// If the site is visible in an active tab, we should not force a notification
// to be shown. Try it twice, since we allow one mistake per 10 push events.
GCMClient::IncomingMessage message;
+ message.sender_id = "1234567890";
for (int n = 0; n < 2; n++) {
message.data["data"] = "testdata";
push_service()->OnMessage(app_id.app_id_guid(), message);
@@ -671,6 +638,7 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
base::Bind(&NotificationAddedCallback::Run, base::Unretained(&callback)));
GCMClient::IncomingMessage message;
+ message.sender_id = "1234567890";
message.data["data"] = "shownotification-without-waituntil";
push_service()->OnMessage(app_id.app_id_guid(), message);
ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents));
« no previous file with comments | « no previous file | chrome/browser/services/gcm/push_messaging_service_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698