Index: chrome/browser/push_messaging/push_messaging_browsertest.cc |
diff --git a/chrome/browser/push_messaging/push_messaging_browsertest.cc b/chrome/browser/push_messaging/push_messaging_browsertest.cc |
index 7ab3987d556d7a96e05afef681ed81488e4d0f44..02df2377725b9698653be5a5d6b121a17750f21e 100644 |
--- a/chrome/browser/push_messaging/push_messaging_browsertest.cc |
+++ b/chrome/browser/push_messaging/push_messaging_browsertest.cc |
@@ -8,6 +8,7 @@ |
#include "base/bind.h" |
#include "base/command_line.h" |
#include "base/message_loop/message_loop.h" |
+#include "base/run_loop.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/infobars/infobar_service.h" |
#include "chrome/browser/notifications/notification_test_util.h" |
@@ -240,6 +241,8 @@ class PushMessagingBrowserTest : public InProcessBrowserTest { |
PushMessagingApplicationId GetServiceWorkerAppId( |
int64 service_worker_registration_id); |
+ void WaitForGetUserDataRoundTrip(); |
+ |
net::SpawnedTestServer* https_server() const { return https_server_.get(); } |
gcm::FakeGCMProfileService* gcm_service() const { return gcm_service_; } |
@@ -315,6 +318,22 @@ PushMessagingApplicationId PushMessagingBrowserTest::GetServiceWorkerAppId( |
return application_id; |
} |
+static void WaitForGetUserDataRoundTripCallback( |
+ const base::Closure& quit_closure, |
+ const std::string& data, bool success, bool not_found) { |
+ quit_closure.Run(); |
+} |
+ |
+void PushMessagingBrowserTest::WaitForGetUserDataRoundTrip() { |
+ base::RunLoop run_loop; |
+ push_service()->GetSenderId( |
+ browser()->profile(), |
+ https_server()->GetURL(std::string()).GetOrigin(), |
+ 0LL /* service_worker_registration_id */, // Any SW will do. |
Bernhard Bauer
2015/03/10 18:03:19
Yeah, I was wondering about that :)
|
+ base::Bind(&WaitForGetUserDataRoundTripCallback, run_loop.QuitClosure())); |
+ run_loop.Run(); |
+} |
+ |
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
RegisterSuccessNotificationsGranted) { |
if (!IsPushSupported()) |
@@ -786,6 +805,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
browser()->profile()->GetHostContentSettingsMap()-> |
ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); |
+ WaitForGetUserDataRoundTrip(); |
+ WaitForGetUserDataRoundTrip(); |
+ |
ASSERT_TRUE(RunScript("hasPermission()", &script_result)); |
EXPECT_EQ("permission status - default", script_result); |
@@ -813,6 +835,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
std::string(), |
CONTENT_SETTING_DEFAULT); |
+ WaitForGetUserDataRoundTrip(); |
+ WaitForGetUserDataRoundTrip(); |
+ |
ASSERT_TRUE(RunScript("hasPermission()", &script_result)); |
EXPECT_EQ("permission status - default", script_result); |
@@ -840,6 +865,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
std::string(), |
CONTENT_SETTING_BLOCK); |
+ WaitForGetUserDataRoundTrip(); |
+ WaitForGetUserDataRoundTrip(); |
+ |
ASSERT_TRUE(RunScript("hasPermission()", &script_result)); |
EXPECT_EQ("permission status - denied", script_result); |
@@ -862,6 +890,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
browser()->profile()->GetHostContentSettingsMap()-> |
ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
+ WaitForGetUserDataRoundTrip(); |
+ WaitForGetUserDataRoundTrip(); |
+ |
ASSERT_TRUE(RunScript("hasPermission()", &script_result)); |
EXPECT_EQ("permission status - default", script_result); |
@@ -889,6 +920,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
std::string(), |
CONTENT_SETTING_DEFAULT); |
+ WaitForGetUserDataRoundTrip(); |
+ WaitForGetUserDataRoundTrip(); |
+ |
ASSERT_TRUE(RunScript("hasPermission()", &script_result)); |
EXPECT_EQ("permission status - default", script_result); |
@@ -916,6 +950,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
std::string(), |
CONTENT_SETTING_BLOCK); |
+ WaitForGetUserDataRoundTrip(); |
+ WaitForGetUserDataRoundTrip(); |
+ |
ASSERT_TRUE(RunScript("hasPermission()", &script_result)); |
EXPECT_EQ("permission status - denied", script_result); |
@@ -949,6 +986,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
std::string(), |
CONTENT_SETTING_ALLOW); |
+ WaitForGetUserDataRoundTrip(); |
+ WaitForGetUserDataRoundTrip(); |
+ |
ASSERT_TRUE(RunScript("hasPermission()", &script_result)); |
EXPECT_EQ("permission status - granted", script_result); |
@@ -1003,6 +1043,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
// The Push service should not unsubcribe |origin| because at no point it was |
// left without permission to use Push. |
+ WaitForGetUserDataRoundTrip(); |
+ WaitForGetUserDataRoundTrip(); |
+ |
ASSERT_TRUE(RunScript("hasPermission()", &script_result)); |
EXPECT_EQ("permission status - granted", script_result); |