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

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: Comments from msw 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 } else {
246 InfoBarResponder infobar_accept_responder(GetInfoBarService(), true);
247 EXPECT_TRUE(RunScript("requestNotificationPermission();", &script_result));
248 }
249 EXPECT_EQ("permission status - granted", script_result);
250 }
251
252 void PushMessagingBrowserTest::RequestAndDenyPermission() {
253 std::string script_result;
254
255 if (PermissionBubbleManager::Enabled()) {
256 GetPermissionBubbleManager()->set_auto_response_for_test(
257 PermissionBubbleManager::DENY_ALL);
258 EXPECT_TRUE(RunScript("requestNotificationPermission();", &script_result));
259 } else {
260 InfoBarResponder infobar_deny_responder(GetInfoBarService(), false);
261 EXPECT_TRUE(RunScript("requestNotificationPermission();", &script_result));
262 }
263 EXPECT_EQ("permission status - denied", script_result);
264 }
265
219 void PushMessagingBrowserTest::TryToSubscribeSuccessfully( 266 void PushMessagingBrowserTest::TryToSubscribeSuccessfully(
220 const std::string& expected_push_subscription_id) { 267 const std::string& expected_push_subscription_id) {
221 std::string script_result; 268 std::string script_result;
222 269
223 EXPECT_TRUE(RunScript("registerServiceWorker()", &script_result)); 270 EXPECT_TRUE(RunScript("registerServiceWorker()", &script_result));
224 EXPECT_EQ("ok - service worker registered", script_result); 271 EXPECT_EQ("ok - service worker registered", script_result);
225 272
226 InfoBarResponder accepting_responder(GetInfoBarService(), true); 273 RequestAndAcceptPermission();
227 EXPECT_TRUE(RunScript("requestNotificationPermission()", &script_result));
228 EXPECT_EQ("permission status - granted", script_result);
229 274
230 EXPECT_TRUE(RunScript("subscribePush()", &script_result)); 275 EXPECT_TRUE(RunScript("subscribePush()", &script_result));
231 EXPECT_EQ(GetEndpointForSubscriptionId(expected_push_subscription_id), 276 EXPECT_EQ(GetEndpointForSubscriptionId(expected_push_subscription_id),
232 script_result); 277 script_result);
233 } 278 }
234 279
235 PushMessagingAppIdentifier 280 PushMessagingAppIdentifier
236 PushMessagingBrowserTest::GetAppIdentifierForServiceWorkerRegistration( 281 PushMessagingBrowserTest::GetAppIdentifierForServiceWorkerRegistration(
237 int64 service_worker_registration_id) { 282 int64 service_worker_registration_id) {
238 GURL origin = https_server()->GetURL(std::string()).GetOrigin(); 283 GURL origin = https_server()->GetURL(std::string()).GetOrigin();
239 PushMessagingAppIdentifier app_identifier = 284 PushMessagingAppIdentifier app_identifier =
240 PushMessagingAppIdentifier::FindByServiceWorker( 285 PushMessagingAppIdentifier::FindByServiceWorker(
241 GetBrowser()->profile(), origin, service_worker_registration_id); 286 GetBrowser()->profile(), origin, service_worker_registration_id);
242 EXPECT_FALSE(app_identifier.is_null()); 287 EXPECT_FALSE(app_identifier.is_null());
243 return app_identifier; 288 return app_identifier;
244 } 289 }
245 290
246 void PushMessagingBrowserTest::SendMessageAndWaitUntilHandled( 291 void PushMessagingBrowserTest::SendMessageAndWaitUntilHandled(
247 const PushMessagingAppIdentifier& app_identifier, 292 const PushMessagingAppIdentifier& app_identifier,
248 const gcm::GCMClient::IncomingMessage& message) { 293 const gcm::GCMClient::IncomingMessage& message) {
249 base::RunLoop run_loop; 294 base::RunLoop run_loop;
250 push_service()->SetMessageCallbackForTesting(run_loop.QuitClosure()); 295 push_service()->SetMessageCallbackForTesting(run_loop.QuitClosure());
251 push_service()->OnMessage(app_identifier.app_id(), message); 296 push_service()->OnMessage(app_identifier.app_id(), message);
252 run_loop.Run(); 297 run_loop.Run();
253 } 298 }
254 299
255 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 300 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
256 SubscribeSuccessNotificationsGranted) { 301 SubscribeSuccessNotificationsGranted) {
257 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 302 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
258 303
259 PushMessagingAppIdentifier app_identifier = 304 PushMessagingAppIdentifier app_identifier =
260 GetAppIdentifierForServiceWorkerRegistration(0LL); 305 GetAppIdentifierForServiceWorkerRegistration(0LL);
261 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 306 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
262 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 307 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
263 } 308 }
264 309
265 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 310 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
266 SubscribeSuccessNotificationsPrompt) { 311 SubscribeSuccessNotificationsPrompt) {
267 std::string script_result; 312 std::string script_result;
268 313
269 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 314 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
270 ASSERT_EQ("ok - service worker registered", script_result); 315 ASSERT_EQ("ok - service worker registered", script_result);
271 316
272 InfoBarResponder accepting_responder(GetInfoBarService(), true); 317 if (PermissionBubbleManager::Enabled()) {
273 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 318 GetPermissionBubbleManager()->set_auto_response_for_test(
274 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"), 319 PermissionBubbleManager::ACCEPT_ALL);
275 script_result); 320 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
321 } else {
322 InfoBarResponder infobar_accept_responder(GetInfoBarService(), true);
323 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
324 }
325 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"), script_result);
276 326
277 PushMessagingAppIdentifier app_identifier = 327 PushMessagingAppIdentifier app_identifier =
278 GetAppIdentifierForServiceWorkerRegistration(0LL); 328 GetAppIdentifierForServiceWorkerRegistration(0LL);
279 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 329 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
280 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 330 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
281 } 331 }
282 332
283 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 333 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
284 SubscribeFailureNotificationsBlocked) { 334 SubscribeFailureNotificationsBlocked) {
285 std::string script_result; 335 std::string script_result;
286 336
287 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 337 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
288 ASSERT_EQ("ok - service worker registered", script_result); 338 ASSERT_EQ("ok - service worker registered", script_result);
289 339
290 InfoBarResponder cancelling_responder(GetInfoBarService(), false); 340 RequestAndDenyPermission();
291 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
292 ASSERT_EQ("permission status - denied", script_result);
293 341
294 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 342 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
295 EXPECT_EQ("AbortError - Registration failed - permission denied", 343 EXPECT_EQ("AbortError - Registration failed - permission denied",
296 script_result); 344 script_result);
297 } 345 }
298 346
299 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, SubscribeFailureNoManifest) { 347 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, SubscribeFailureNoManifest) {
300 std::string script_result; 348 std::string script_result;
301 349
302 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 350 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
303 ASSERT_EQ("ok - service worker registered", script_result); 351 ASSERT_EQ("ok - service worker registered", script_result);
304 352
305 InfoBarResponder accepting_responder(GetInfoBarService(), true); 353 RequestAndAcceptPermission();
306 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
307 ASSERT_EQ("permission status - granted", script_result);
308 354
309 ASSERT_TRUE(RunScript("removeManifest()", &script_result)); 355 ASSERT_TRUE(RunScript("removeManifest()", &script_result));
310 ASSERT_EQ("manifest removed", script_result); 356 ASSERT_EQ("manifest removed", script_result);
311 357
312 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 358 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
313 EXPECT_EQ("AbortError - Registration failed - no sender id provided", 359 EXPECT_EQ("AbortError - Registration failed - no sender id provided",
314 script_result); 360 script_result);
315 } 361 }
316 362
317 // TODO(johnme): Test subscribing from a worker - see https://crbug.com/437298. 363 // TODO(johnme): Test subscribing from a worker - see https://crbug.com/437298.
318 364
319 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTestEmptySubscriptionOptions, 365 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTestEmptySubscriptionOptions,
320 RegisterFailureEmptyPushSubscriptionOptions) { 366 RegisterFailureEmptyPushSubscriptionOptions) {
321 std::string script_result; 367 std::string script_result;
322 368
323 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 369 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
324 ASSERT_EQ("ok - service worker registered", script_result); 370 ASSERT_EQ("ok - service worker registered", script_result);
325 371
326 InfoBarResponder accepting_responder(GetInfoBarService(), true); 372 RequestAndAcceptPermission();
327 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
328 ASSERT_EQ("permission status - granted", script_result);
329 373
330 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 374 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
331 EXPECT_EQ("AbortError - Registration failed - permission denied", 375 EXPECT_EQ("AbortError - Registration failed - permission denied",
332 script_result); 376 script_result);
333 } 377 }
334 378
335 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, SubscribePersisted) { 379 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, SubscribePersisted) {
336 std::string script_result; 380 std::string script_result;
337 381
338 // First, test that Service Worker registration IDs are assigned in order of 382 // First, test that Service Worker registration IDs are assigned in order of
339 // registering the Service Workers, and the (fake) push subscription ids are 383 // registering the Service Workers, and the (fake) push subscription ids are
340 // assigned in order of push subscription (even when these orders are 384 // assigned in order of push subscription (even when these orders are
341 // different). 385 // different).
342 386
343 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 387 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
344 PushMessagingAppIdentifier sw0_identifier = 388 PushMessagingAppIdentifier sw0_identifier =
345 GetAppIdentifierForServiceWorkerRegistration(0LL); 389 GetAppIdentifierForServiceWorkerRegistration(0LL);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 426
383 LoadTestPage("files/push_messaging/subscope2/test.html"); 427 LoadTestPage("files/push_messaging/subscope2/test.html");
384 TryToSubscribeSuccessfully("1-1" /* expected_push_subscription_id */); 428 TryToSubscribeSuccessfully("1-1" /* expected_push_subscription_id */);
385 EXPECT_EQ(sw1_identifier.app_id(), gcm_service()->last_registered_app_id()); 429 EXPECT_EQ(sw1_identifier.app_id(), gcm_service()->last_registered_app_id());
386 430
387 LoadTestPage(); 431 LoadTestPage();
388 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 432 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
389 EXPECT_EQ(sw1_identifier.app_id(), gcm_service()->last_registered_app_id()); 433 EXPECT_EQ(sw1_identifier.app_id(), gcm_service()->last_registered_app_id());
390 } 434 }
391 435
392 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventSuccess) { 436 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PushEventSuccess) {
393 std::string script_result; 437 std::string script_result;
394 438
395 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 439 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
396 440
397 PushMessagingAppIdentifier app_identifier = 441 PushMessagingAppIdentifier app_identifier =
398 GetAppIdentifierForServiceWorkerRegistration(0LL); 442 GetAppIdentifierForServiceWorkerRegistration(0LL);
399 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 443 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
400 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 444 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
401 445
402 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 446 ASSERT_TRUE(RunScript("isControlled()", &script_result));
403 ASSERT_EQ("false - is not controlled", script_result); 447 ASSERT_EQ("false - is not controlled", script_result);
404 448
405 LoadTestPage(); // Reload to become controlled. 449 LoadTestPage(); // Reload to become controlled.
406 450
407 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 451 ASSERT_TRUE(RunScript("isControlled()", &script_result));
408 ASSERT_EQ("true - is controlled", script_result); 452 ASSERT_EQ("true - is controlled", script_result);
409 453
410 gcm::GCMClient::IncomingMessage message; 454 gcm::GCMClient::IncomingMessage message;
411 message.sender_id = "1234567890"; 455 message.sender_id = "1234567890";
412 message.data["data"] = "testdata"; 456 message.data["data"] = "testdata";
413 push_service()->OnMessage(app_identifier.app_id(), message); 457 push_service()->OnMessage(app_identifier.app_id(), message);
414 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result)); 458 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result));
415 EXPECT_EQ("testdata", script_result); 459 EXPECT_EQ("testdata", script_result);
416 } 460 }
417 461
418 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoServiceWorker) { 462 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PushEventNoServiceWorker) {
419 std::string script_result; 463 std::string script_result;
420 464
421 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 465 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
422 466
423 PushMessagingAppIdentifier app_identifier = 467 PushMessagingAppIdentifier app_identifier =
424 GetAppIdentifierForServiceWorkerRegistration(0LL); 468 GetAppIdentifierForServiceWorkerRegistration(0LL);
425 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 469 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
426 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 470 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
427 471
428 ASSERT_TRUE(RunScript("isControlled()", &script_result)); 472 ASSERT_TRUE(RunScript("isControlled()", &script_result));
(...skipping 21 matching lines...) Expand all
450 494
451 callback.WaitUntilSatisfied(); 495 callback.WaitUntilSatisfied();
452 EXPECT_EQ(app_identifier.app_id(), callback.app_id()); 496 EXPECT_EQ(app_identifier.app_id(), callback.app_id());
453 497
454 // No push data should have been received. 498 // No push data should have been received.
455 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result)); 499 ASSERT_TRUE(RunScript("resultQueue.popImmediately()", &script_result));
456 EXPECT_EQ("null", script_result); 500 EXPECT_EQ("null", script_result);
457 } 501 }
458 502
459 #if defined(ENABLE_NOTIFICATIONS) 503 #if defined(ENABLE_NOTIFICATIONS)
460 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 504 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
461 PushEventEnforcesUserVisibleNotification) { 505 PushEventEnforcesUserVisibleNotification) {
462 std::string script_result; 506 std::string script_result;
463 507
464 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 508 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
465 509
466 PushMessagingAppIdentifier app_identifier = 510 PushMessagingAppIdentifier app_identifier =
467 GetAppIdentifierForServiceWorkerRegistration(0LL); 511 GetAppIdentifierForServiceWorkerRegistration(0LL);
468 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 512 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
469 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 513 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
470 514
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 600
557 // Now that 10 push messages in a row have shown notifications, we should 601 // Now that 10 push messages in a row have shown notifications, we should
558 // allow the next one to mistakenly not show a notification. 602 // allow the next one to mistakenly not show a notification.
559 message.data["data"] = "testdata"; 603 message.data["data"] = "testdata";
560 SendMessageAndWaitUntilHandled(app_identifier, message); 604 SendMessageAndWaitUntilHandled(app_identifier, message);
561 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents)); 605 ASSERT_TRUE(RunScript("resultQueue.pop()", &script_result, web_contents));
562 EXPECT_EQ("testdata", script_result); 606 EXPECT_EQ("testdata", script_result);
563 EXPECT_EQ(0u, notification_manager()->GetNotificationCount()); 607 EXPECT_EQ(0u, notification_manager()->GetNotificationCount());
564 } 608 }
565 609
566 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 610 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
567 PushEventEnforcesUserVisibleNotificationAfterQueue) { 611 PushEventEnforcesUserVisibleNotificationAfterQueue) {
568 std::string script_result; 612 std::string script_result;
569 613
570 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 614 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
571 615
572 PushMessagingAppIdentifier app_identifier = 616 PushMessagingAppIdentifier app_identifier =
573 GetAppIdentifierForServiceWorkerRegistration(0LL); 617 GetAppIdentifierForServiceWorkerRegistration(0LL);
574 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 618 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
575 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 619 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
576 620
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 push_service()->OnMessage(app_identifier.app_id(), message); 652 push_service()->OnMessage(app_identifier.app_id(), message);
609 653
610 run_loop.Run(); 654 run_loop.Run();
611 } 655 }
612 656
613 ASSERT_EQ(2u, number_of_notifications_shown.size()); 657 ASSERT_EQ(2u, number_of_notifications_shown.size());
614 EXPECT_EQ(0u, number_of_notifications_shown[0]); 658 EXPECT_EQ(0u, number_of_notifications_shown[0]);
615 EXPECT_EQ(1u, number_of_notifications_shown[1]); 659 EXPECT_EQ(1u, number_of_notifications_shown[1]);
616 } 660 }
617 661
618 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 662 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
619 PushEventNotificationWithoutEventWaitUntil) { 663 PushEventNotificationWithoutEventWaitUntil) {
620 std::string script_result; 664 std::string script_result;
621 content::WebContents* web_contents = 665 content::WebContents* web_contents =
622 GetBrowser()->tab_strip_model()->GetActiveWebContents(); 666 GetBrowser()->tab_strip_model()->GetActiveWebContents();
623 667
624 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 668 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
625 669
626 PushMessagingAppIdentifier app_identifier = 670 PushMessagingAppIdentifier app_identifier =
627 GetAppIdentifierForServiceWorkerRegistration(0LL); 671 GetAppIdentifierForServiceWorkerRegistration(0LL);
628 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 672 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()); 697 ASSERT_EQ(1u, notification_manager()->GetNotificationCount());
654 EXPECT_EQ("push_test_tag", 698 EXPECT_EQ("push_test_tag",
655 notification_manager()->GetNotificationAt(0).tag()); 699 notification_manager()->GetNotificationAt(0).tag());
656 700
657 // Verify that the renderer process hasn't crashed. 701 // Verify that the renderer process hasn't crashed.
658 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 702 ASSERT_TRUE(RunScript("permissionState()", &script_result));
659 EXPECT_EQ("permission status - granted", script_result); 703 EXPECT_EQ("permission status - granted", script_result);
660 } 704 }
661 #endif 705 #endif
662 706
663 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PermissionStateSaysPrompt) { 707 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PermissionStateSaysPrompt) {
664 std::string script_result; 708 std::string script_result;
665 709
666 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 710 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
667 ASSERT_EQ("ok - service worker registered", script_result); 711 ASSERT_EQ("ok - service worker registered", script_result);
668 712
669 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 713 ASSERT_TRUE(RunScript("permissionState()", &script_result));
670 ASSERT_EQ("permission status - prompt", script_result); 714 ASSERT_EQ("permission status - prompt", script_result);
671 } 715 }
672 716
673 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PermissionStateSaysGranted) { 717 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PermissionStateSaysGranted) {
674 std::string script_result; 718 std::string script_result;
675 719
676 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 720 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
677 ASSERT_EQ("ok - service worker registered", script_result); 721 ASSERT_EQ("ok - service worker registered", script_result);
678 722
679 InfoBarResponder accepting_responder(GetInfoBarService(), true); 723 RequestAndAcceptPermission();
680 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
681 EXPECT_EQ("permission status - granted", script_result);
682 724
683 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 725 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
684 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"), 726 EXPECT_EQ(GetEndpointForSubscriptionId("1-0"),
685 script_result); 727 script_result);
686 728
687 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 729 ASSERT_TRUE(RunScript("permissionState()", &script_result));
688 EXPECT_EQ("permission status - granted", script_result); 730 EXPECT_EQ("permission status - granted", script_result);
689 } 731 }
690 732
691 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PermissionStateSaysDenied) { 733 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, PermissionStateSaysDenied) {
692 std::string script_result; 734 std::string script_result;
693 735
694 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 736 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
695 ASSERT_EQ("ok - service worker registered", script_result); 737 ASSERT_EQ("ok - service worker registered", script_result);
696 738
697 InfoBarResponder cancelling_responder(GetInfoBarService(), false); 739 RequestAndDenyPermission();
698 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
699 EXPECT_EQ("permission status - denied", script_result);
700 740
701 ASSERT_TRUE(RunScript("subscribePush()", &script_result)); 741 ASSERT_TRUE(RunScript("subscribePush()", &script_result));
702 EXPECT_EQ("AbortError - Registration failed - permission denied", 742 EXPECT_EQ("AbortError - Registration failed - permission denied",
703 script_result); 743 script_result);
704 744
705 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 745 ASSERT_TRUE(RunScript("permissionState()", &script_result));
706 EXPECT_EQ("permission status - denied", script_result); 746 EXPECT_EQ("permission status - denied", script_result);
707 } 747 }
708 748
709 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, UnsubscribeSuccess) { 749 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest, UnsubscribeSuccess) {
710 std::string script_result; 750 std::string script_result;
711 751
712 EXPECT_TRUE(RunScript("registerServiceWorker()", &script_result)); 752 EXPECT_TRUE(RunScript("registerServiceWorker()", &script_result));
713 EXPECT_EQ("ok - service worker registered", script_result); 753 EXPECT_EQ("ok - service worker registered", script_result);
714 754
715 // Resolves true if there was a subscription. 755 // Resolves true if there was a subscription.
716 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 756 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
717 gcm_service()->AddExpectedUnregisterResponse(gcm::GCMClient::SUCCESS); 757 gcm_service()->AddExpectedUnregisterResponse(gcm::GCMClient::SUCCESS);
718 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result)); 758 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result));
719 EXPECT_EQ("unsubscribe result: true", script_result); 759 EXPECT_EQ("unsubscribe result: true", script_result);
(...skipping 21 matching lines...) Expand all
741 781
742 // Unsubscribing (with an existing reference to a PushSubscription), after 782 // Unsubscribing (with an existing reference to a PushSubscription), after
743 // unregistering the Service Worker, just means push subscription isn't found. 783 // unregistering the Service Worker, just means push subscription isn't found.
744 TryToSubscribeSuccessfully("1-3" /* expected_push_subscription_id */); 784 TryToSubscribeSuccessfully("1-3" /* expected_push_subscription_id */);
745 ASSERT_TRUE(RunScript("unregisterServiceWorker()", &script_result)); 785 ASSERT_TRUE(RunScript("unregisterServiceWorker()", &script_result));
746 ASSERT_EQ("service worker unregistration status: true", script_result); 786 ASSERT_EQ("service worker unregistration status: true", script_result);
747 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result)); 787 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result));
748 EXPECT_EQ("unsubscribe result: false", script_result); 788 EXPECT_EQ("unsubscribe result: false", script_result);
749 } 789 }
750 790
751 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 791 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
752 GlobalResetPushPermissionUnsubscribes) { 792 GlobalResetPushPermissionUnsubscribes) {
753 std::string script_result; 793 std::string script_result;
754 794
755 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 795 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
756 796
757 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 797 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
758 EXPECT_EQ("true - subscribed", script_result); 798 EXPECT_EQ("true - subscribed", script_result);
759 799
760 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 800 ASSERT_TRUE(RunScript("permissionState()", &script_result));
761 EXPECT_EQ("permission status - granted", script_result); 801 EXPECT_EQ("permission status - granted", script_result);
762 802
763 scoped_refptr<content::MessageLoopRunner> message_loop_runner = 803 scoped_refptr<content::MessageLoopRunner> message_loop_runner =
764 new content::MessageLoopRunner; 804 new content::MessageLoopRunner;
765 push_service()->SetContentSettingChangedCallbackForTesting( 805 push_service()->SetContentSettingChangedCallbackForTesting(
766 message_loop_runner->QuitClosure()); 806 message_loop_runner->QuitClosure());
767 807
768 GetBrowser()->profile()->GetHostContentSettingsMap()-> 808 GetBrowser()->profile()->GetHostContentSettingsMap()->
769 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); 809 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING);
770 810
771 message_loop_runner->Run(); 811 message_loop_runner->Run();
772 812
773 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 813 ASSERT_TRUE(RunScript("permissionState()", &script_result));
774 EXPECT_EQ("permission status - prompt", script_result); 814 EXPECT_EQ("permission status - prompt", script_result);
775 815
776 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 816 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
777 EXPECT_EQ("false - not subscribed", script_result); 817 EXPECT_EQ("false - not subscribed", script_result);
778 } 818 }
779 819
780 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 820 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
781 LocalResetPushPermissionUnsubscribes) { 821 LocalResetPushPermissionUnsubscribes) {
782 std::string script_result; 822 std::string script_result;
783 823
784 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 824 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
785 825
786 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 826 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
787 EXPECT_EQ("true - subscribed", script_result); 827 EXPECT_EQ("true - subscribed", script_result);
788 828
789 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 829 ASSERT_TRUE(RunScript("permissionState()", &script_result));
790 EXPECT_EQ("permission status - granted", script_result); 830 EXPECT_EQ("permission status - granted", script_result);
(...skipping 13 matching lines...) Expand all
804 844
805 message_loop_runner->Run(); 845 message_loop_runner->Run();
806 846
807 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 847 ASSERT_TRUE(RunScript("permissionState()", &script_result));
808 EXPECT_EQ("permission status - prompt", script_result); 848 EXPECT_EQ("permission status - prompt", script_result);
809 849
810 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 850 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
811 EXPECT_EQ("false - not subscribed", script_result); 851 EXPECT_EQ("false - not subscribed", script_result);
812 } 852 }
813 853
814 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 854 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
815 DenyPushPermissionUnsubscribes) { 855 DenyPushPermissionUnsubscribes) {
816 std::string script_result; 856 std::string script_result;
817 857
818 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 858 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
819 859
820 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 860 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
821 EXPECT_EQ("true - subscribed", script_result); 861 EXPECT_EQ("true - subscribed", script_result);
822 862
823 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 863 ASSERT_TRUE(RunScript("permissionState()", &script_result));
824 EXPECT_EQ("permission status - granted", script_result); 864 EXPECT_EQ("permission status - granted", script_result);
(...skipping 13 matching lines...) Expand all
838 878
839 message_loop_runner->Run(); 879 message_loop_runner->Run();
840 880
841 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 881 ASSERT_TRUE(RunScript("permissionState()", &script_result));
842 EXPECT_EQ("permission status - denied", script_result); 882 EXPECT_EQ("permission status - denied", script_result);
843 883
844 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 884 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
845 EXPECT_EQ("false - not subscribed", script_result); 885 EXPECT_EQ("false - not subscribed", script_result);
846 } 886 }
847 887
848 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 888 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
849 GlobalResetNotificationsPermissionUnsubscribes) { 889 GlobalResetNotificationsPermissionUnsubscribes) {
850 std::string script_result; 890 std::string script_result;
851 891
852 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 892 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
853 893
854 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 894 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
855 EXPECT_EQ("true - subscribed", script_result); 895 EXPECT_EQ("true - subscribed", script_result);
856 896
857 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 897 ASSERT_TRUE(RunScript("permissionState()", &script_result));
858 EXPECT_EQ("permission status - granted", script_result); 898 EXPECT_EQ("permission status - granted", script_result);
859 899
860 scoped_refptr<content::MessageLoopRunner> message_loop_runner = 900 scoped_refptr<content::MessageLoopRunner> message_loop_runner =
861 new content::MessageLoopRunner; 901 new content::MessageLoopRunner;
862 push_service()->SetContentSettingChangedCallbackForTesting( 902 push_service()->SetContentSettingChangedCallbackForTesting(
863 message_loop_runner->QuitClosure()); 903 message_loop_runner->QuitClosure());
864 904
865 GetBrowser()->profile()->GetHostContentSettingsMap()-> 905 GetBrowser()->profile()->GetHostContentSettingsMap()->
866 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 906 ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
867 907
868 message_loop_runner->Run(); 908 message_loop_runner->Run();
869 909
870 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 910 ASSERT_TRUE(RunScript("permissionState()", &script_result));
871 EXPECT_EQ("permission status - prompt", script_result); 911 EXPECT_EQ("permission status - prompt", script_result);
872 912
873 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 913 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
874 EXPECT_EQ("false - not subscribed", script_result); 914 EXPECT_EQ("false - not subscribed", script_result);
875 } 915 }
876 916
877 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 917 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
878 LocalResetNotificationsPermissionUnsubscribes) { 918 LocalResetNotificationsPermissionUnsubscribes) {
879 std::string script_result; 919 std::string script_result;
880 920
881 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 921 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
882 922
883 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 923 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
884 EXPECT_EQ("true - subscribed", script_result); 924 EXPECT_EQ("true - subscribed", script_result);
885 925
886 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 926 ASSERT_TRUE(RunScript("permissionState()", &script_result));
887 EXPECT_EQ("permission status - granted", script_result); 927 EXPECT_EQ("permission status - granted", script_result);
(...skipping 13 matching lines...) Expand all
901 941
902 message_loop_runner->Run(); 942 message_loop_runner->Run();
903 943
904 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 944 ASSERT_TRUE(RunScript("permissionState()", &script_result));
905 EXPECT_EQ("permission status - prompt", script_result); 945 EXPECT_EQ("permission status - prompt", script_result);
906 946
907 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 947 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
908 EXPECT_EQ("false - not subscribed", script_result); 948 EXPECT_EQ("false - not subscribed", script_result);
909 } 949 }
910 950
911 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 951 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
912 DenyNotificationsPermissionUnsubscribes) { 952 DenyNotificationsPermissionUnsubscribes) {
913 std::string script_result; 953 std::string script_result;
914 954
915 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 955 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
916 956
917 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 957 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
918 EXPECT_EQ("true - subscribed", script_result); 958 EXPECT_EQ("true - subscribed", script_result);
919 959
920 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 960 ASSERT_TRUE(RunScript("permissionState()", &script_result));
921 EXPECT_EQ("permission status - granted", script_result); 961 EXPECT_EQ("permission status - granted", script_result);
(...skipping 13 matching lines...) Expand all
935 975
936 message_loop_runner->Run(); 976 message_loop_runner->Run();
937 977
938 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 978 ASSERT_TRUE(RunScript("permissionState()", &script_result));
939 EXPECT_EQ("permission status - denied", script_result); 979 EXPECT_EQ("permission status - denied", script_result);
940 980
941 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 981 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
942 EXPECT_EQ("false - not subscribed", script_result); 982 EXPECT_EQ("false - not subscribed", script_result);
943 } 983 }
944 984
945 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 985 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
946 GrantAlreadyGrantedPermissionDoesNotUnsubscribe) { 986 GrantAlreadyGrantedPermissionDoesNotUnsubscribe) {
947 std::string script_result; 987 std::string script_result;
948 988
949 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 989 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
950 990
951 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 991 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
952 EXPECT_EQ("true - subscribed", script_result); 992 EXPECT_EQ("true - subscribed", script_result);
953 993
954 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 994 ASSERT_TRUE(RunScript("permissionState()", &script_result));
955 EXPECT_EQ("permission status - granted", script_result); 995 EXPECT_EQ("permission status - granted", script_result);
(...skipping 23 matching lines...) Expand all
979 EXPECT_EQ("permission status - granted", script_result); 1019 EXPECT_EQ("permission status - granted", script_result);
980 1020
981 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1021 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
982 EXPECT_EQ("true - subscribed", script_result); 1022 EXPECT_EQ("true - subscribed", script_result);
983 } 1023 }
984 1024
985 // This test is testing some non-trivial content settings rules and make sure 1025 // 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 1026 // 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 1027 // words, it checks that the push service does not end up unsubscribing origins
988 // that have push permission with some non-common rules. 1028 // that have push permission with some non-common rules.
989 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 1029 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
990 AutomaticUnsubscriptionFollowsContentSettingRules) { 1030 AutomaticUnsubscriptionFollowsContentSettingRules) {
991 std::string script_result; 1031 std::string script_result;
992 1032
993 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 1033 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
994 1034
995 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1035 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
996 EXPECT_EQ("true - subscribed", script_result); 1036 EXPECT_EQ("true - subscribed", script_result);
997 1037
998 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1038 ASSERT_TRUE(RunScript("permissionState()", &script_result));
999 EXPECT_EQ("permission status - granted", script_result); 1039 EXPECT_EQ("permission status - granted", script_result);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1038 1078
1039 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1079 ASSERT_TRUE(RunScript("permissionState()", &script_result));
1040 EXPECT_EQ("permission status - granted", script_result); 1080 EXPECT_EQ("permission status - granted", script_result);
1041 1081
1042 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1082 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
1043 EXPECT_EQ("true - subscribed", script_result); 1083 EXPECT_EQ("true - subscribed", script_result);
1044 } 1084 }
1045 1085
1046 // Checks that automatically unsubscribing due to a revoked permission is 1086 // Checks that automatically unsubscribing due to a revoked permission is
1047 // handled well if the sender ID needed to unsubscribe was already deleted. 1087 // handled well if the sender ID needed to unsubscribe was already deleted.
1048 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 1088 IN_PROC_BROWSER_TEST_P(PushMessagingBrowserTest,
1049 ResetPushPermissionAfterClearingSiteData) { 1089 ResetPushPermissionAfterClearingSiteData) {
1050 std::string script_result; 1090 std::string script_result;
1051 1091
1052 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 1092 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
1053 1093
1054 PushMessagingAppIdentifier app_identifier = 1094 PushMessagingAppIdentifier app_identifier =
1055 GetAppIdentifierForServiceWorkerRegistration(0LL); 1095 GetAppIdentifierForServiceWorkerRegistration(0LL);
1056 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id()); 1096 EXPECT_EQ(app_identifier.app_id(), gcm_service()->last_registered_app_id());
1057 PushMessagingAppIdentifier stored_app_identifier = 1097 PushMessagingAppIdentifier stored_app_identifier =
1058 PushMessagingAppIdentifier::FindByAppId(GetBrowser()->profile(), 1098 PushMessagingAppIdentifier::FindByAppId(GetBrowser()->profile(),
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1097 PushMessagingBrowserTest::SetUpOnMainThread(); 1137 PushMessagingBrowserTest::SetUpOnMainThread();
1098 } 1138 }
1099 1139
1100 Browser* GetBrowser() const override { return incognito_browser_; } 1140 Browser* GetBrowser() const override { return incognito_browser_; }
1101 1141
1102 private: 1142 private:
1103 Browser* incognito_browser_ = nullptr; 1143 Browser* incognito_browser_ = nullptr;
1104 }; 1144 };
1105 1145
1106 // Regression test for https://crbug.com/476474 1146 // Regression test for https://crbug.com/476474
1107 IN_PROC_BROWSER_TEST_F(PushMessagingIncognitoBrowserTest, 1147 IN_PROC_BROWSER_TEST_P(PushMessagingIncognitoBrowserTest,
1108 IncognitoGetSubscriptionDoesNotHang) { 1148 IncognitoGetSubscriptionDoesNotHang) {
1109 ASSERT_TRUE(GetBrowser()->profile()->IsOffTheRecord()); 1149 ASSERT_TRUE(GetBrowser()->profile()->IsOffTheRecord());
1110 1150
1111 std::string script_result; 1151 std::string script_result;
1112 1152
1113 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 1153 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
1114 ASSERT_EQ("ok - service worker registered", script_result); 1154 ASSERT_EQ("ok - service worker registered", script_result);
1115 1155
1116 // In Incognito mode the promise returned by getSubscription should not hang, 1156 // In Incognito mode the promise returned by getSubscription should not hang,
1117 // it should just fulfill with null. 1157 // it should just fulfill with null.
1118 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1158 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
1119 ASSERT_EQ("false - not subscribed", script_result); 1159 ASSERT_EQ("false - not subscribed", script_result);
1120 } 1160 }
1161
1162 INSTANTIATE_TEST_CASE_P(PushMessagingBrowserTestWithParams,
1163 PushMessagingBrowserTest,
1164 testing::Values(true, false));
1165 INSTANTIATE_TEST_CASE_P(PushMessagingIncognitoBrowserTestWithParams,
1166 PushMessagingIncognitoBrowserTest,
1167 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