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

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

Issue 1154943008: Update push messaging tests to use both infobars and bubbles (w/ autoresponse) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Paramaterize everything f'real 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
« no previous file with comments | « no previous file | chrome/browser/ui/website_settings/permission_bubble_manager.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/browsing_data/browsing_data_helper.h" 14 #include "chrome/browser/browsing_data/browsing_data_helper.h"
15 #include "chrome/browser/browsing_data/browsing_data_remover.h" 15 #include "chrome/browser/browsing_data/browsing_data_remover.h"
16 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h" 16 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h"
17 #include "chrome/browser/infobars/infobar_responder.h" 17 #include "chrome/browser/infobars/infobar_responder.h"
18 #include "chrome/browser/infobars/infobar_service.h" 18 #include "chrome/browser/infobars/infobar_service.h"
19 #include "chrome/browser/notifications/notification_test_util.h" 19 #include "chrome/browser/notifications/notification_test_util.h"
20 #include "chrome/browser/notifications/platform_notification_service_impl.h" 20 #include "chrome/browser/notifications/platform_notification_service_impl.h"
21 #include "chrome/browser/profiles/profile.h" 21 #include "chrome/browser/profiles/profile.h"
22 #include "chrome/browser/push_messaging/push_messaging_app_identifier.h" 22 #include "chrome/browser/push_messaging/push_messaging_app_identifier.h"
23 #include "chrome/browser/push_messaging/push_messaging_constants.h" 23 #include "chrome/browser/push_messaging/push_messaging_constants.h"
24 #include "chrome/browser/push_messaging/push_messaging_service_factory.h" 24 #include "chrome/browser/push_messaging/push_messaging_service_factory.h"
25 #include "chrome/browser/push_messaging/push_messaging_service_impl.h" 25 #include "chrome/browser/push_messaging/push_messaging_service_impl.h"
26 #include "chrome/browser/services/gcm/fake_gcm_profile_service.h" 26 #include "chrome/browser/services/gcm/fake_gcm_profile_service.h"
27 #include "chrome/browser/services/gcm/gcm_profile_service_factory.h" 27 #include "chrome/browser/services/gcm/gcm_profile_service_factory.h"
28 #include "chrome/browser/ui/browser.h" 28 #include "chrome/browser/ui/browser.h"
29 #include "chrome/browser/ui/tabs/tab_strip_model.h" 29 #include "chrome/browser/ui/tabs/tab_strip_model.h"
30 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h"
31 #include "chrome/common/chrome_switches.h"
30 #include "chrome/test/base/in_process_browser_test.h" 32 #include "chrome/test/base/in_process_browser_test.h"
31 #include "chrome/test/base/ui_test_utils.h" 33 #include "chrome/test/base/ui_test_utils.h"
32 #include "components/content_settings/core/browser/host_content_settings_map.h" 34 #include "components/content_settings/core/browser/host_content_settings_map.h"
33 #include "components/content_settings/core/common/content_settings.h" 35 #include "components/content_settings/core/common/content_settings.h"
34 #include "components/content_settings/core/common/content_settings_types.h" 36 #include "components/content_settings/core/common/content_settings_types.h"
35 #include "components/gcm_driver/gcm_client.h" 37 #include "components/gcm_driver/gcm_client.h"
36 #include "content/public/browser/web_contents.h" 38 #include "content/public/browser/web_contents.h"
37 #include "content/public/common/content_switches.h" 39 #include "content/public/common/content_switches.h"
38 #include "content/public/test/browser_test_utils.h" 40 #include "content/public/test/browser_test_utils.h"
39 #include "content/public/test/test_utils.h" 41 #include "content/public/test/test_utils.h"
(...skipping 22 matching lines...) Expand all
62 return app_id_; 64 return app_id_;
63 } 65 }
64 66
65 private: 67 private:
66 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; 68 scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
67 std::string app_id_; 69 std::string app_id_;
68 }; 70 };
69 71
70 } // namespace 72 } // namespace
71 73
72 class PushMessagingBrowserTest : public InProcessBrowserTest { 74 class PushMessagingBrowserTest : public InProcessBrowserTest,
75 public testing::WithParamInterface<bool> {
73 public: 76 public:
74 PushMessagingBrowserTest() : gcm_service_(nullptr) {} 77 PushMessagingBrowserTest() : gcm_service_(nullptr) {}
75 ~PushMessagingBrowserTest() override {} 78 ~PushMessagingBrowserTest() override {}
76 79
77 // InProcessBrowserTest: 80 // InProcessBrowserTest:
78 void SetUpCommandLine(base::CommandLine* command_line) override { 81 void SetUpCommandLine(base::CommandLine* command_line) override {
79 command_line->AppendSwitch(switches::kEnablePushMessagePayload); 82 command_line->AppendSwitch(switches::kEnablePushMessagePayload);
80 83
84 if (GetParam()) {
85 command_line->AppendSwitch(switches::kEnablePermissionsBubbles);
86 EXPECT_TRUE(PermissionBubbleManager::Enabled());
87 } else {
88 command_line->AppendSwitch(switches::kDisablePermissionsBubbles);
89 EXPECT_FALSE(PermissionBubbleManager::Enabled());
90 }
91
81 InProcessBrowserTest::SetUpCommandLine(command_line); 92 InProcessBrowserTest::SetUpCommandLine(command_line);
82 } 93 }
83 94
84 // InProcessBrowserTest: 95 // InProcessBrowserTest:
85 void SetUp() override { 96 void SetUp() override {
86 https_server_.reset(new net::SpawnedTestServer( 97 https_server_.reset(new net::SpawnedTestServer(
87 net::SpawnedTestServer::TYPE_HTTPS, 98 net::SpawnedTestServer::TYPE_HTTPS,
88 net::BaseTestServer::SSLOptions( 99 net::BaseTestServer::SSLOptions(
89 net::BaseTestServer::SSLOptions::CERT_OK), 100 net::BaseTestServer::SSLOptions::CERT_OK),
90 base::FilePath(FILE_PATH_LITERAL("chrome/test/data/")))); 101 base::FilePath(FILE_PATH_LITERAL("chrome/test/data/"))));
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 147
137 bool RunScript(const std::string& script, std::string* result, 148 bool RunScript(const std::string& script, std::string* result,
138 content::WebContents* web_contents) { 149 content::WebContents* web_contents) {
139 if (!web_contents) 150 if (!web_contents)
140 web_contents = GetBrowser()->tab_strip_model()->GetActiveWebContents(); 151 web_contents = GetBrowser()->tab_strip_model()->GetActiveWebContents();
141 return content::ExecuteScriptAndExtractString(web_contents->GetMainFrame(), 152 return content::ExecuteScriptAndExtractString(web_contents->GetMainFrame(),
142 script, 153 script,
143 result); 154 result);
144 } 155 }
145 156
157 PermissionBubbleManager* GetPermissionBubbleManager() {
158 return PermissionBubbleManager::FromWebContents(
159 GetBrowser()->tab_strip_model()->GetActiveWebContents());
160 }
161
162 void RequestAndAcceptPermission();
163 void RequestAndDenyPermission();
164
146 void TryToSubscribeSuccessfully( 165 void TryToSubscribeSuccessfully(
147 const std::string& expected_push_subscription_id); 166 const std::string& expected_push_subscription_id);
148 167
149 std::string GetEndpointForSubscriptionId(const std::string& subscription_id) { 168 std::string GetEndpointForSubscriptionId(const std::string& subscription_id) {
150 return std::string(kPushMessagingEndpoint) + "/" + subscription_id; 169 return std::string(kPushMessagingEndpoint) + "/" + subscription_id;
151 } 170 }
152 171
153 PushMessagingAppIdentifier GetAppIdentifierForServiceWorkerRegistration( 172 PushMessagingAppIdentifier GetAppIdentifierForServiceWorkerRegistration(
154 int64 service_worker_registration_id); 173 int64 service_worker_registration_id);
155 174
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 DISALLOW_COPY_AND_ASSIGN(PushMessagingBrowserTest); 228 DISALLOW_COPY_AND_ASSIGN(PushMessagingBrowserTest);
210 }; 229 };
211 230
212 class PushMessagingBrowserTestEmptySubscriptionOptions 231 class PushMessagingBrowserTestEmptySubscriptionOptions
213 : public PushMessagingBrowserTest { 232 : public PushMessagingBrowserTest {
214 std::string GetTestURL() override { 233 std::string GetTestURL() override {
215 return "files/push_messaging/test_no_subscription_options.html"; 234 return "files/push_messaging/test_no_subscription_options.html";
216 } 235 }
217 }; 236 };
218 237
238 void PushMessagingBrowserTest::RequestAndAcceptPermission() {
239 std::string script_result;
240
241 if (PermissionBubbleManager::Enabled()) {
242 GetPermissionBubbleManager()->set_auto_response_for_test(
243 PermissionBubbleManager::ACCEPT_ALL);
244 EXPECT_TRUE(RunScript("requestNotificationPermission();", &script_result));
245 EXPECT_EQ("permission status - granted", script_result);
msw 2015/06/05 16:56:26 nit: consolidate |script_result| checks after the
felt 2015/06/05 22:22:47 Done.
246 } else {
247 InfoBarResponder infobar_accept_responder(GetInfoBarService(), true);
248 EXPECT_TRUE(RunScript("requestNotificationPermission();", &script_result));
249 EXPECT_EQ("permission status - granted", script_result);
250 }
251 }
252
253 void PushMessagingBrowserTest::RequestAndDenyPermission() {
254 std::string script_result;
255
256 if (PermissionBubbleManager::Enabled()) {
257 GetPermissionBubbleManager()->set_auto_response_for_test(
258 PermissionBubbleManager::DENY_ALL);
259 EXPECT_TRUE(RunScript("requestNotificationPermission();", &script_result));
260 EXPECT_EQ("permission status - denied", script_result);
261 } else {
262 InfoBarResponder infobar_deny_responder(GetInfoBarService(), false);
263 EXPECT_TRUE(RunScript("requestNotificationPermission();", &script_result));
264 EXPECT_EQ("permission status - denied", script_result);
265 }
266 }
267
219 void PushMessagingBrowserTest::TryToSubscribeSuccessfully( 268 void PushMessagingBrowserTest::TryToSubscribeSuccessfully(
220 const std::string& expected_push_subscription_id) { 269 const std::string& expected_push_subscription_id) {
221 std::string script_result; 270 std::string script_result;
222 271
223 EXPECT_TRUE(RunScript("registerServiceWorker()", &script_result)); 272 EXPECT_TRUE(RunScript("registerServiceWorker()", &script_result));
224 EXPECT_EQ("ok - service worker registered", script_result); 273 EXPECT_EQ("ok - service worker registered", script_result);
225 274
226 InfoBarResponder accepting_responder(GetInfoBarService(), true); 275 RequestAndAcceptPermission();
227 EXPECT_TRUE(RunScript("requestNotificationPermission()", &script_result));
228 EXPECT_EQ("permission status - granted", script_result);
229 276
230 EXPECT_TRUE(RunScript("subscribePush()", &script_result)); 277 EXPECT_TRUE(RunScript("subscribePush()", &script_result));
231 EXPECT_EQ(GetEndpointForSubscriptionId(expected_push_subscription_id), 278 EXPECT_EQ(GetEndpointForSubscriptionId(expected_push_subscription_id),
232 script_result); 279 script_result);
233 } 280 }
234 281
235 PushMessagingAppIdentifier 282 PushMessagingAppIdentifier
236 PushMessagingBrowserTest::GetAppIdentifierForServiceWorkerRegistration( 283 PushMessagingBrowserTest::GetAppIdentifierForServiceWorkerRegistration(
237 int64 service_worker_registration_id) { 284 int64 service_worker_registration_id) {
238 GURL origin = https_server()->GetURL(std::string()).GetOrigin(); 285 GURL origin = https_server()->GetURL(std::string()).GetOrigin();
239 PushMessagingAppIdentifier app_identifier = 286 PushMessagingAppIdentifier app_identifier =
240 PushMessagingAppIdentifier::FindByServiceWorker( 287 PushMessagingAppIdentifier::FindByServiceWorker(
241 GetBrowser()->profile(), origin, service_worker_registration_id); 288 GetBrowser()->profile(), origin, service_worker_registration_id);
242 EXPECT_FALSE(app_identifier.is_null()); 289 EXPECT_FALSE(app_identifier.is_null());
243 return app_identifier; 290 return app_identifier;
244 } 291 }
245 292
246 void PushMessagingBrowserTest::SendMessageAndWaitUntilHandled( 293 void PushMessagingBrowserTest::SendMessageAndWaitUntilHandled(
247 const PushMessagingAppIdentifier& app_identifier, 294 const PushMessagingAppIdentifier& app_identifier,
248 const gcm::GCMClient::IncomingMessage& message) { 295 const gcm::GCMClient::IncomingMessage& message) {
249 base::RunLoop run_loop; 296 base::RunLoop run_loop;
250 push_service()->SetMessageCallbackForTesting(run_loop.QuitClosure()); 297 push_service()->SetMessageCallbackForTesting(run_loop.QuitClosure());
251 push_service()->OnMessage(app_identifier.app_id(), message); 298 push_service()->OnMessage(app_identifier.app_id(), message);
252 run_loop.Run(); 299 run_loop.Run();
253 } 300 }
254 301
255 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 302 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
256 SubscribeSuccessNotificationsGranted) { 303 SubscribeSuccessNotificationsGranted) {
257 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 304 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
258 305
259 PushMessagingAppIdentifier app_identifier = 306 PushMessagingAppIdentifier app_identifier =
260 GetAppIdentifierForServiceWorkerRegistration(0LL); 307 GetAppIdentifierForServiceWorkerRegistration(0LL);
261 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 308 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
262 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 309 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
263 } 310 }
264 311
265 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 312 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
266 SubscribeSuccessNotificationsPrompt) { 313 SubscribeSuccessNotificationsPrompt) {
267 std::string script_result; 314 std::string script_result;
268 315
269 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 316 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
270 ASSERT_EQ("ok - service worker registered", script_result); 317 ASSERT_EQ("ok - service worker registered", script_result);
271 318
272 InfoBarResponder accepting_responder(GetInfoBarService(), true); 319 if (PermissionBubbleManager::Enabled()) {
273 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 320 GetPermissionBubbleManager()->set_auto_response_for_test(
274 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"), 321 PermissionBubbleManager::ACCEPT_ALL);
275 script_result); 322 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
323 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"),
msw 2015/06/05 16:56:26 nit: ditto
felt 2015/06/05 22:22:46 Done.
324 script_result);
325 } else {
326 InfoBarResponder infobar_accept_responder(GetInfoBarService(), true);
327 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
328 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"),
329 script_result);
330 }
276 331
277 PushMessagingAppIdentifier app_identifier = 332 PushMessagingAppIdentifier app_identifier =
278 GetAppIdentifierForServiceWorkerRegistration(0LL); 333 GetAppIdentifierForServiceWorkerRegistration(0LL);
279 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 334 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
280 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 335 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
281 } 336 }
282 337
283 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 338 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
284 SubscribeFailureNotificationsBlocked) { 339 SubscribeFailureNotificationsBlocked) {
285 std::string script_result; 340 std::string script_result;
286 341
287 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 342 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
288 ASSERT_EQ("ok - service worker registered", script_result); 343 ASSERT_EQ("ok - service worker registered", script_result);
289 344
290 InfoBarResponder cancelling_responder(GetInfoBarService(), false); 345 RequestAndDenyPermission();
291 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
292 ASSERT_EQ("permission status - denied", script_result);
293 346
294 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 347 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
295 EXPECT_EQ("AbortError - Registration failed - permission denied", 348 EXPECT_EQ("AbortError - Registration failed - permission denied",
296 script_result); 349 script_result);
297 } 350 }
298 351
299 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, SubscribeFailureNoManifest) { 352 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, SubscribeFailureNoManifest) {
300 std::string script_result; 353 std::string script_result;
301 354
302 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 355 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
303 ASSERT_EQ("ok - service worker registered", script_result); 356 ASSERT_EQ("ok - service worker registered", script_result);
304 357
305 InfoBarResponder accepting_responder(GetInfoBarService(), true); 358 RequestAndAcceptPermission();
306 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
307 ASSERT_EQ("permission status - granted", script_result);
308 359
309 ASSERT_TRUE(RunScript("removeManifest()", &script_result)); 360 ASSERT_TRUE(RunScript("removeManifest()", &script_result));
310 ASSERT_EQ("manifest removed", script_result); 361 ASSERT_EQ("manifest removed", script_result);
311 362
312 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 363 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
313 EXPECT_EQ("AbortError - Registration failed - no sender id provided", 364 EXPECT_EQ("AbortError - Registration failed - no sender id provided",
314 script_result); 365 script_result);
315 } 366 }
316 367
317 // TODO(johnme): Test subscribing from a worker - see https://crbug.com/437298. 368 // TODO(johnme): Test subscribing from a worker - see https://crbug.com/437298.
318 369
319 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTestEmptySubscriptionOptions, 370 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTestEmptySubscriptionOptions,
320 RegisterFailureEmptyPushSubscriptionOptions) { 371 RegisterFailureEmptyPushSubscriptionOptions) {
321 std::string script_result; 372 std::string script_result;
322 373
323 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 374 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
324 ASSERT_EQ("ok - service worker registered", script_result); 375 ASSERT_EQ("ok - service worker registered", script_result);
325 376
326 InfoBarResponder accepting_responder(GetInfoBarService(), true); 377 RequestAndAcceptPermission();
327 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
328 ASSERT_EQ("permission status - granted", script_result);
329 378
330 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 379 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
331 EXPECT_EQ("AbortError - Registration failed - permission denied", 380 EXPECT_EQ("AbortError - Registration failed - permission denied",
332 script_result); 381 script_result);
333 } 382 }
334 383
335 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, SubscribePersisted) { 384 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, SubscribePersisted) {
336 std::string script_result; 385 std::string script_result;
337 386
338 // First, test that Service Worker registration IDs are assigned in order of 387 // First, test that Service Worker registration IDs are assigned in order of
339 // registering the Service Workers, and the (fake) push subscription ids are 388 // registering the Service Workers, and the (fake) push subscription ids are
340 // assigned in order of push subscription (even when these orders are 389 // assigned in order of push subscription (even when these orders are
341 // different). 390 // different).
342 391
343 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 392 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
344 PushMessagingAppIdentifier sw0_identifier = 393 PushMessagingAppIdentifier sw0_identifier =
345 GetAppIdentifierForServiceWorkerRegistration(0LL); 394 GetAppIdentifierForServiceWorkerRegistration(0LL);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 431
383 LoadTestPage("files/push_messaging/subscope2/test.html"); 432 LoadTestPage("files/push_messaging/subscope2/test.html");
384 TryToSubscribeSuccessfully("1-1" /* expected_push_subscription_id */); 433 TryToSubscribeSuccessfully("1-1" /* expected_push_subscription_id */);
385 EXPECT_EQ(sw1_identifier.app_id(), gcm_service()->last_registered_app_id()); 434 EXPECT_EQ(sw1_identifier.app_id(), gcm_service()->last_registered_app_id());
386 435
387 LoadTestPage(); 436 LoadTestPage();
388 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 437 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
389 EXPECT_EQ(sw1_identifier.app_id(), gcm_service()->last_registered_app_id()); 438 EXPECT_EQ(sw1_identifier.app_id(), gcm_service()->last_registered_app_id());
390 } 439 }
391 440
392 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventSuccess) { 441 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PushEventSuccess) {
393 std::string script_result; 442 std::string script_result;
394 443
395 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 444 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
396 445
397 PushMessagingAppIdentifier app_identifier = 446 PushMessagingAppIdentifier app_identifier =
398 GetAppIdentifierForServiceWorkerRegistration(0LL); 447 GetAppIdentifierForServiceWorkerRegistration(0LL);
399 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 448 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
400 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 449 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
401 450
402 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 451 ASSERT_TRUE(RunScript("isControlled()", &script_result));
403 ASSERT_EQ("false - is not controlled", script_result); 452 ASSERT_EQ("false - is not controlled", script_result);
404 453
405 LoadTestPage(); // Reload to become controlled. 454 LoadTestPage(); // Reload to become controlled.
406 455
407 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 456 ASSERT_TRUE(RunScript("isControlled()", &script_result));
408 ASSERT_EQ("true - is controlled", script_result); 457 ASSERT_EQ("true - is controlled", script_result);
409 458
410 gcm::GCMClient::IncomingMessage message; 459 gcm::GCMClient::IncomingMessage message;
411 message.sender_id = "1234567890"; 460 message.sender_id = "1234567890";
412 message.data["data"] = "testdata"; 461 message.data["data"] = "testdata";
413 push_service()->OnMessage(app_identifier.app_id(), message); 462 push_service()->OnMessage(app_identifier.app_id(), message);
414 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result)); 463 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result));
415 EXPECT_EQ("testdata", script_result); 464 EXPECT_EQ("testdata", script_result);
416 } 465 }
417 466
418 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoServiceWorker) { 467 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PushEventNoServiceWorker) {
419 std::string script_result; 468 std::string script_result;
420 469
421 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 470 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
422 471
423 PushMessagingAppIdentifier app_identifier = 472 PushMessagingAppIdentifier app_identifier =
424 GetAppIdentifierForServiceWorkerRegistration(0LL); 473 GetAppIdentifierForServiceWorkerRegistration(0LL);
425 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 474 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
426 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 475 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
427 476
428 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 477 ASSERT_TRUE(RunScript("isControlled()", &script_result));
(...skipping 21 matching lines...) Expand all
450 499
451 callback.WaitUntilSatisfied(); 500 callback.WaitUntilSatisfied();
452 EXPECT_EQ(app_identifier.app_id(), callback.app_id()); 501 EXPECT_EQ(app_identifier.app_id(), callback.app_id());
453 502
454 // No push data should have been received. 503 // No push data should have been received.
455 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result)); 504 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result));
456 EXPECT_EQ("null", script_result); 505 EXPECT_EQ("null", script_result);
457 } 506 }
458 507
459 #if defined(ENABLE_NOTIFICATIONS) 508 #if defined(ENABLE_NOTIFICATIONS)
460 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 509 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
461 PushEventEnforcesUserVisibleNotification) { 510 PushEventEnforcesUserVisibleNotification) {
462 std::string script_result; 511 std::string script_result;
463 512
464 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 513 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
465 514
466 PushMessagingAppIdentifier app_identifier = 515 PushMessagingAppIdentifier app_identifier =
467 GetAppIdentifierForServiceWorkerRegistration(0LL); 516 GetAppIdentifierForServiceWorkerRegistration(0LL);
468 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 517 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
469 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 518 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
470 519
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 605
557 // Now that 10 push messages in a row have shown notifications, we should 606 // Now that 10 push messages in a row have shown notifications, we should
558 // allow the next one to mistakenly not show a notification. 607 // allow the next one to mistakenly not show a notification.
559 message.data["data"] = "testdata"; 608 message.data["data"] = "testdata";
560 SendMessageAndWaitUntilHandled(app_identifier, message); 609 SendMessageAndWaitUntilHandled(app_identifier, message);
561 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents)); 610 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents));
562 EXPECT_EQ("testdata", script_result); 611 EXPECT_EQ("testdata", script_result);
563 EXPECT_EQ(0u, notification_manager()->GetNotificationCount()); 612 EXPECT_EQ(0u, notification_manager()->GetNotificationCount());
564 } 613 }
565 614
566 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 615 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
567 PushEventEnforcesUserVisibleNotificationAfterQueue) { 616 PushEventEnforcesUserVisibleNotificationAfterQueue) {
568 std::string script_result; 617 std::string script_result;
569 618
570 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 619 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
571 620
572 PushMessagingAppIdentifier app_identifier = 621 PushMessagingAppIdentifier app_identifier =
573 GetAppIdentifierForServiceWorkerRegistration(0LL); 622 GetAppIdentifierForServiceWorkerRegistration(0LL);
574 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 623 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
575 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 624 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
576 625
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 push_service()->OnMessage(app_identifier.app_id(), message); 657 push_service()->OnMessage(app_identifier.app_id(), message);
609 658
610 run_loop.Run(); 659 run_loop.Run();
611 } 660 }
612 661
613 ASSERT_EQ(2u, number_of_notifications_shown.size()); 662 ASSERT_EQ(2u, number_of_notifications_shown.size());
614 EXPECT_EQ(0u, number_of_notifications_shown[0]); 663 EXPECT_EQ(0u, number_of_notifications_shown[0]);
615 EXPECT_EQ(1u, number_of_notifications_shown[1]); 664 EXPECT_EQ(1u, number_of_notifications_shown[1]);
616 } 665 }
617 666
618 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 667 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
619 PushEventNotificationWithoutEventWaitUntil) { 668 PushEventNotificationWithoutEventWaitUntil) {
620 std::string script_result; 669 std::string script_result;
621 content::WebContents* web_contents = 670 content::WebContents* web_contents =
622 GetBrowser()->tab_strip_model()->GetActiveWebContents(); 671 GetBrowser()->tab_strip_model()->GetActiveWebContents();
623 672
624 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 673 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
625 674
626 PushMessagingAppIdentifier app_identifier = 675 PushMessagingAppIdentifier app_identifier =
627 GetAppIdentifierForServiceWorkerRegistration(0LL); 676 GetAppIdentifierForServiceWorkerRegistration(0LL);
628 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 677 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
(...skipping 24 matching lines...) Expand all
653 ASSERT_EQ(1u, notification_manager()->GetNotificationCount()); 702 ASSERT_EQ(1u, notification_manager()->GetNotificationCount());
654 EXPECT_EQ("push_test_tag", 703 EXPECT_EQ("push_test_tag",
655 notification_manager()->GetNotificationAt(0).tag()); 704 notification_manager()->GetNotificationAt(0).tag());
656 705
657 // Verify that the renderer process hasn't crashed. 706 // Verify that the renderer process hasn't crashed.
658 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 707 ASSERT_TRUE(RunScript("permissionState()", &script_result));
659 EXPECT_EQ("permission status - granted", script_result); 708 EXPECT_EQ("permission status - granted", script_result);
660 } 709 }
661 #endif 710 #endif
662 711
663 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PermissionStateSaysPrompt) { 712 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PermissionStateSaysPrompt) {
664 std::string script_result; 713 std::string script_result;
665 714
666 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 715 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
667 ASSERT_EQ("ok - service worker registered", script_result); 716 ASSERT_EQ("ok - service worker registered", script_result);
668 717
669 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 718 ASSERT_TRUE(RunScript("permissionState()", &script_result));
670 ASSERT_EQ("permission status - prompt", script_result); 719 ASSERT_EQ("permission status - prompt", script_result);
671 } 720 }
672 721
673 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PermissionStateSaysGranted) { 722 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PermissionStateSaysGranted) {
674 std::string script_result; 723 std::string script_result;
675 724
676 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 725 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
677 ASSERT_EQ("ok - service worker registered", script_result); 726 ASSERT_EQ("ok - service worker registered", script_result);
678 727
679 InfoBarResponder accepting_responder(GetInfoBarService(), true); 728 RequestAndAcceptPermission();
680 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
681 EXPECT_EQ("permission status - granted", script_result);
682 729
683 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 730 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
684 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"), 731 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"),
685 script_result); 732 script_result);
686 733
687 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 734 ASSERT_TRUE(RunScript("permissionState()", &script_result));
688 EXPECT_EQ("permission status - granted", script_result); 735 EXPECT_EQ("permission status - granted", script_result);
689 } 736 }
690 737
691 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PermissionStateSaysDenied) { 738 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PermissionStateSaysDenied) {
692 std::string script_result; 739 std::string script_result;
693 740
694 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 741 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
695 ASSERT_EQ("ok - service worker registered", script_result); 742 ASSERT_EQ("ok - service worker registered", script_result);
696 743
697 InfoBarResponder cancelling_responder(GetInfoBarService(), false); 744 RequestAndDenyPermission();
698 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
699 EXPECT_EQ("permission status - denied", script_result);
700 745
701 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 746 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
702 EXPECT_EQ("AbortError - Registration failed - permission denied", 747 EXPECT_EQ("AbortError - Registration failed - permission denied",
703 script_result); 748 script_result);
704 749
705 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 750 ASSERT_TRUE(RunScript("permissionState()", &script_result));
706 EXPECT_EQ("permission status - denied", script_result); 751 EXPECT_EQ("permission status - denied", script_result);
707 } 752 }
708 753
709 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, UnsubscribeSuccess) { 754 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, UnsubscribeSuccess) {
710 std::string script_result; 755 std::string script_result;
711 756
712 EXPECT_TRUE(RunScript("registerServiceWorker()", &script_result)); 757 EXPECT_TRUE(RunScript("registerServiceWorker()", &script_result));
713 EXPECT_EQ("ok - service worker registered", script_result); 758 EXPECT_EQ("ok - service worker registered", script_result);
714 759
715 // Resolves true if there was a subscription. 760 // Resolves true if there was a subscription.
716 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 761 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
717 gcm_service()->AddExpectedUnregisterResponse(gcm::GCMClient::SUCCESS); 762 gcm_service()->AddExpectedUnregisterResponse(gcm::GCMClient::SUCCESS);
718 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result)); 763 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result));
719 EXPECT_EQ("unsubscribe result: true", script_result); 764 EXPECT_EQ("unsubscribe result: true", script_result);
(...skipping 21 matching lines...) Expand all
741 786
742 // Unsubscribing (with an existing reference to a PushSubscription), after 787 // Unsubscribing (with an existing reference to a PushSubscription), after
743 // unregistering the Service Worker, just means push subscription isn't found. 788 // unregistering the Service Worker, just means push subscription isn't found.
744 TryToSubscribeSuccessfully("1-3" /* expected_push_subscription_id */); 789 TryToSubscribeSuccessfully("1-3" /* expected_push_subscription_id */);
745 ASSERT_TRUE(RunScript("unregisterServiceWorker()", &script_result)); 790 ASSERT_TRUE(RunScript("unregisterServiceWorker()", &script_result));
746 ASSERT_EQ("service worker unregistration status: true", script_result); 791 ASSERT_EQ("service worker unregistration status: true", script_result);
747 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result)); 792 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result));
748 EXPECT_EQ("unsubscribe result: false", script_result); 793 EXPECT_EQ("unsubscribe result: false", script_result);
749 } 794 }
750 795
751 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 796 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
752 GlobalResetPushPermissionUnsubscribes) { 797 GlobalResetPushPermissionUnsubscribes) {
753 std::string script_result; 798 std::string script_result;
754 799
755 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 800 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
756 801
757 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 802 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
758 EXPECT_EQ("true - subscribed", script_result); 803 EXPECT_EQ("true - subscribed", script_result);
759 804
760 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 805 ASSERT_TRUE(RunScript("permissionState()", &script_result));
761 EXPECT_EQ("permission status - granted", script_result); 806 EXPECT_EQ("permission status - granted", script_result);
762 807
763 scoped_refptr<content::MessageLoopRunner> message_loop_runner = 808 scoped_refptr<content::MessageLoopRunner> message_loop_runner =
764 new content::MessageLoopRunner; 809 new content::MessageLoopRunner;
765 push_service()->SetContentSettingChangedCallbackForTesting( 810 push_service()->SetContentSettingChangedCallbackForTesting(
766 message_loop_runner->QuitClosure()); 811 message_loop_runner->QuitClosure());
767 812
768 GetBrowser()->profile()->GetHostContentSettingsMap()-> 813 GetBrowser()->profile()->GetHostContentSettingsMap()->
769 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); 814 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING);
770 815
771 message_loop_runner->Run(); 816 message_loop_runner->Run();
772 817
773 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 818 ASSERT_TRUE(RunScript("permissionState()", &script_result));
774 EXPECT_EQ("permission status - prompt", script_result); 819 EXPECT_EQ("permission status - prompt", script_result);
775 820
776 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 821 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
777 EXPECT_EQ("false - not subscribed", script_result); 822 EXPECT_EQ("false - not subscribed", script_result);
778 } 823 }
779 824
780 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 825 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
781 LocalResetPushPermissionUnsubscribes) { 826 LocalResetPushPermissionUnsubscribes) {
782 std::string script_result; 827 std::string script_result;
783 828
784 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 829 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
785 830
786 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 831 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
787 EXPECT_EQ("true - subscribed", script_result); 832 EXPECT_EQ("true - subscribed", script_result);
788 833
789 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 834 ASSERT_TRUE(RunScript("permissionState()", &script_result));
790 EXPECT_EQ("permission status - granted", script_result); 835 EXPECT_EQ("permission status - granted", script_result);
(...skipping 13 matching lines...) Expand all
804 849
805 message_loop_runner->Run(); 850 message_loop_runner->Run();
806 851
807 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 852 ASSERT_TRUE(RunScript("permissionState()", &script_result));
808 EXPECT_EQ("permission status - prompt", script_result); 853 EXPECT_EQ("permission status - prompt", script_result);
809 854
810 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 855 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
811 EXPECT_EQ("false - not subscribed", script_result); 856 EXPECT_EQ("false - not subscribed", script_result);
812 } 857 }
813 858
814 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 859 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
815 DenyPushPermissionUnsubscribes) { 860 DenyPushPermissionUnsubscribes) {
816 std::string script_result; 861 std::string script_result;
817 862
818 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 863 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
819 864
820 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 865 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
821 EXPECT_EQ("true - subscribed", script_result); 866 EXPECT_EQ("true - subscribed", script_result);
822 867
823 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 868 ASSERT_TRUE(RunScript("permissionState()", &script_result));
824 EXPECT_EQ("permission status - granted", script_result); 869 EXPECT_EQ("permission status - granted", script_result);
(...skipping 13 matching lines...) Expand all
838 883
839 message_loop_runner->Run(); 884 message_loop_runner->Run();
840 885
841 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 886 ASSERT_TRUE(RunScript("permissionState()", &script_result));
842 EXPECT_EQ("permission status - denied", script_result); 887 EXPECT_EQ("permission status - denied", script_result);
843 888
844 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 889 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
845 EXPECT_EQ("false - not subscribed", script_result); 890 EXPECT_EQ("false - not subscribed", script_result);
846 } 891 }
847 892
848 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 893 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
849 GlobalResetNotificationsPermissionUnsubscribes) { 894 GlobalResetNotificationsPermissionUnsubscribes) {
850 std::string script_result; 895 std::string script_result;
851 896
852 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 897 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
853 898
854 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 899 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
855 EXPECT_EQ("true - subscribed", script_result); 900 EXPECT_EQ("true - subscribed", script_result);
856 901
857 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 902 ASSERT_TRUE(RunScript("permissionState()", &script_result));
858 EXPECT_EQ("permission status - granted", script_result); 903 EXPECT_EQ("permission status - granted", script_result);
859 904
860 scoped_refptr<content::MessageLoopRunner> message_loop_runner = 905 scoped_refptr<content::MessageLoopRunner> message_loop_runner =
861 new content::MessageLoopRunner; 906 new content::MessageLoopRunner;
862 push_service()->SetContentSettingChangedCallbackForTesting( 907 push_service()->SetContentSettingChangedCallbackForTesting(
863 message_loop_runner->QuitClosure()); 908 message_loop_runner->QuitClosure());
864 909
865 GetBrowser()->profile()->GetHostContentSettingsMap()-> 910 GetBrowser()->profile()->GetHostContentSettingsMap()->
866 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 911 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
867 912
868 message_loop_runner->Run(); 913 message_loop_runner->Run();
869 914
870 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 915 ASSERT_TRUE(RunScript("permissionState()", &script_result));
871 EXPECT_EQ("permission status - prompt", script_result); 916 EXPECT_EQ("permission status - prompt", script_result);
872 917
873 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 918 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
874 EXPECT_EQ("false - not subscribed", script_result); 919 EXPECT_EQ("false - not subscribed", script_result);
875 } 920 }
876 921
877 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 922 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
878 LocalResetNotificationsPermissionUnsubscribes) { 923 LocalResetNotificationsPermissionUnsubscribes) {
879 std::string script_result; 924 std::string script_result;
880 925
881 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 926 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
882 927
883 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 928 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
884 EXPECT_EQ("true - subscribed", script_result); 929 EXPECT_EQ("true - subscribed", script_result);
885 930
886 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 931 ASSERT_TRUE(RunScript("permissionState()", &script_result));
887 EXPECT_EQ("permission status - granted", script_result); 932 EXPECT_EQ("permission status - granted", script_result);
(...skipping 13 matching lines...) Expand all
901 946
902 message_loop_runner->Run(); 947 message_loop_runner->Run();
903 948
904 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 949 ASSERT_TRUE(RunScript("permissionState()", &script_result));
905 EXPECT_EQ("permission status - prompt", script_result); 950 EXPECT_EQ("permission status - prompt", script_result);
906 951
907 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 952 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
908 EXPECT_EQ("false - not subscribed", script_result); 953 EXPECT_EQ("false - not subscribed", script_result);
909 } 954 }
910 955
911 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 956 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
912 DenyNotificationsPermissionUnsubscribes) { 957 DenyNotificationsPermissionUnsubscribes) {
913 std::string script_result; 958 std::string script_result;
914 959
915 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 960 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
916 961
917 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 962 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
918 EXPECT_EQ("true - subscribed", script_result); 963 EXPECT_EQ("true - subscribed", script_result);
919 964
920 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 965 ASSERT_TRUE(RunScript("permissionState()", &script_result));
921 EXPECT_EQ("permission status - granted", script_result); 966 EXPECT_EQ("permission status - granted", script_result);
(...skipping 13 matching lines...) Expand all
935 980
936 message_loop_runner->Run(); 981 message_loop_runner->Run();
937 982
938 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 983 ASSERT_TRUE(RunScript("permissionState()", &script_result));
939 EXPECT_EQ("permission status - denied", script_result); 984 EXPECT_EQ("permission status - denied", script_result);
940 985
941 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 986 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
942 EXPECT_EQ("false - not subscribed", script_result); 987 EXPECT_EQ("false - not subscribed", script_result);
943 } 988 }
944 989
945 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 990 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
946 GrantAlreadyGrantedPermissionDoesNotUnsubscribe) { 991 GrantAlreadyGrantedPermissionDoesNotUnsubscribe) {
947 std::string script_result; 992 std::string script_result;
948 993
949 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 994 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
950 995
951 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 996 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
952 EXPECT_EQ("true - subscribed", script_result); 997 EXPECT_EQ("true - subscribed", script_result);
953 998
954 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 999 ASSERT_TRUE(RunScript("permissionState()", &script_result));
955 EXPECT_EQ("permission status - granted", script_result); 1000 EXPECT_EQ("permission status - granted", script_result);
(...skipping 23 matching lines...) Expand all
979 EXPECT_EQ("permission status - granted", script_result); 1024 EXPECT_EQ("permission status - granted", script_result);
980 1025
981 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1026 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
982 EXPECT_EQ("true - subscribed", script_result); 1027 EXPECT_EQ("true - subscribed", script_result);
983 } 1028 }
984 1029
985 // This test is testing some non-trivial content settings rules and make sure 1030 // This test is testing some non-trivial content settings rules and make sure
986 // that they are respected with regards to automatic unsubscription. In other 1031 // that they are respected with regards to automatic unsubscription. In other
987 // words, it checks that the push service does not end up unsubscribing origins 1032 // words, it checks that the push service does not end up unsubscribing origins
988 // that have push permission with some non-common rules. 1033 // that have push permission with some non-common rules.
989 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 1034 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
990 AutomaticUnsubscriptionFollowsContentSettingRules) { 1035 AutomaticUnsubscriptionFollowsContentSettingRules) {
991 std::string script_result; 1036 std::string script_result;
992 1037
993 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 1038 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
994 1039
995 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1040 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
996 EXPECT_EQ("true - subscribed", script_result); 1041 EXPECT_EQ("true - subscribed", script_result);
997 1042
998 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1043 ASSERT_TRUE(RunScript("permissionState()", &script_result));
999 EXPECT_EQ("permission status - granted", script_result); 1044 EXPECT_EQ("permission status - granted", script_result);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1038 1083
1039 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1084 ASSERT_TRUE(RunScript("permissionState()", &script_result));
1040 EXPECT_EQ("permission status - granted", script_result); 1085 EXPECT_EQ("permission status - granted", script_result);
1041 1086
1042 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1087 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
1043 EXPECT_EQ("true - subscribed", script_result); 1088 EXPECT_EQ("true - subscribed", script_result);
1044 } 1089 }
1045 1090
1046 // Checks that automatically unsubscribing due to a revoked permission is 1091 // Checks that automatically unsubscribing due to a revoked permission is
1047 // handled well if the sender ID needed to unsubscribe was already deleted. 1092 // handled well if the sender ID needed to unsubscribe was already deleted.
1048 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 1093 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
1049 ResetPushPermissionAfterClearingSiteData) { 1094 ResetPushPermissionAfterClearingSiteData) {
1050 std::string script_result; 1095 std::string script_result;
1051 1096
1052 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 1097 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
1053 1098
1054 PushMessagingAppIdentifier app_identifier = 1099 PushMessagingAppIdentifier app_identifier =
1055 GetAppIdentifierForServiceWorkerRegistration(0LL); 1100 GetAppIdentifierForServiceWorkerRegistration(0LL);
1056 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 1101 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
1057 PushMessagingAppIdentifier stored_app_identifier = 1102 PushMessagingAppIdentifier stored_app_identifier =
1058 PushMessagingAppIdentifier::FindByAppId(GetBrowser()->profile(), 1103 PushMessagingAppIdentifier::FindByAppId(GetBrowser()->profile(),
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1097 PushMessagingBrowserTest::SetUpOnMainThread(); 1142 PushMessagingBrowserTest::SetUpOnMainThread();
1098 } 1143 }
1099 1144
1100 Browser* GetBrowser() const override { return incognito_browser_; } 1145 Browser* GetBrowser() const override { return incognito_browser_; }
1101 1146
1102 private: 1147 private:
1103 Browser* incognito_browser_ = nullptr; 1148 Browser* incognito_browser_ = nullptr;
1104 }; 1149 };
1105 1150
1106 // Regression test for https://crbug.com/476474 1151 // Regression test for https://crbug.com/476474
1107 IN_PROC_BROWSER_TEST_F(PushMessagingIncognitoBrowserTest, 1152 IN_PROC_BROWSER_TEST_P(PushMessagingIncognitoBrowserTest,
1108 IncognitoGetSubscriptionDoesNotHang) { 1153 IncognitoGetSubscriptionDoesNotHang) {
1109 ASSERT_TRUE(GetBrowser()->profile()->IsOffTheRecord()); 1154 ASSERT_TRUE(GetBrowser()->profile()->IsOffTheRecord());
1110 1155
1111 std::string script_result; 1156 std::string script_result;
1112 1157
1113 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 1158 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
1114 ASSERT_EQ("ok - service worker registered", script_result); 1159 ASSERT_EQ("ok - service worker registered", script_result);
1115 1160
1116 // In Incognito mode the promise returned by getSubscription should not hang, 1161 // In Incognito mode the promise returned by getSubscription should not hang,
1117 // it should just fulfill with null. 1162 // it should just fulfill with null.
1118 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1163 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
1119 ASSERT_EQ("false - not subscribed", script_result); 1164 ASSERT_EQ("false - not subscribed", script_result);
1120 } 1165 }
1166
1167 INSTANTIATE_TEST_CASE_P(PushMessagingBrowserTestWithParams,
1168 PushMessagingBrowserTest,
1169 testing::Values(true, false));
1170 INSTANTIATE_TEST_CASE_P(PushMessagingIncognitoBrowserTestWithParams,
1171 PushMessagingIncognitoBrowserTest,
1172 testing::Values(true, false));
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/website_settings/permission_bubble_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698