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

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

Issue 2149883002: Use the same codepath for NOTIFICATIONS and PUSH_MESSAGING permissions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
(...skipping 1135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1146 1146
1147 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1147 ASSERT_TRUE(RunScript("permissionState()", &script_result));
1148 EXPECT_EQ("permission status - granted", script_result); 1148 EXPECT_EQ("permission status - granted", script_result);
1149 1149
1150 scoped_refptr<content::MessageLoopRunner> message_loop_runner = 1150 scoped_refptr<content::MessageLoopRunner> message_loop_runner =
1151 new content::MessageLoopRunner; 1151 new content::MessageLoopRunner;
1152 push_service()->SetContentSettingChangedCallbackForTesting( 1152 push_service()->SetContentSettingChangedCallbackForTesting(
1153 message_loop_runner->QuitClosure()); 1153 message_loop_runner->QuitClosure());
1154 1154
1155 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile()) 1155 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile())
1156 ->ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING);
1157
1158 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile())
1159 ->ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 1156 ->ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
1160 1157
1161 message_loop_runner->Run(); 1158 message_loop_runner->Run();
1162 1159
1163 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1160 ASSERT_TRUE(RunScript("permissionState()", &script_result));
1164 EXPECT_EQ("permission status - prompt", script_result); 1161 EXPECT_EQ("permission status - prompt", script_result);
1165 1162
1166 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1163 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
1167 EXPECT_EQ("false - not subscribed", script_result); 1164 EXPECT_EQ("false - not subscribed", script_result);
1168 } 1165 }
(...skipping 11 matching lines...) Expand all
1180 EXPECT_EQ("permission status - granted", script_result); 1177 EXPECT_EQ("permission status - granted", script_result);
1181 1178
1182 scoped_refptr<content::MessageLoopRunner> message_loop_runner = 1179 scoped_refptr<content::MessageLoopRunner> message_loop_runner =
1183 new content::MessageLoopRunner; 1180 new content::MessageLoopRunner;
1184 push_service()->SetContentSettingChangedCallbackForTesting( 1181 push_service()->SetContentSettingChangedCallbackForTesting(
1185 message_loop_runner->QuitClosure()); 1182 message_loop_runner->QuitClosure());
1186 1183
1187 GURL origin = https_server()->GetURL("/").GetOrigin(); 1184 GURL origin = https_server()->GetURL("/").GetOrigin();
1188 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile()) 1185 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile())
1189 ->SetContentSettingDefaultScope(origin, origin, 1186 ->SetContentSettingDefaultScope(origin, origin,
1190 CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
1191 std::string(), CONTENT_SETTING_DEFAULT);
1192 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile())
1193 ->SetContentSettingDefaultScope(origin, origin,
1194 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, 1187 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
1195 std::string(), CONTENT_SETTING_DEFAULT); 1188 std::string(), CONTENT_SETTING_DEFAULT);
1196 1189
1197 message_loop_runner->Run(); 1190 message_loop_runner->Run();
1198 1191
1199 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1192 ASSERT_TRUE(RunScript("permissionState()", &script_result));
1200 EXPECT_EQ("permission status - prompt", script_result); 1193 EXPECT_EQ("permission status - prompt", script_result);
1201 1194
1202 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1195 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
1203 EXPECT_EQ("false - not subscribed", script_result); 1196 EXPECT_EQ("false - not subscribed", script_result);
(...skipping 12 matching lines...) Expand all
1216 EXPECT_EQ("permission status - granted", script_result); 1209 EXPECT_EQ("permission status - granted", script_result);
1217 1210
1218 scoped_refptr<content::MessageLoopRunner> message_loop_runner = 1211 scoped_refptr<content::MessageLoopRunner> message_loop_runner =
1219 new content::MessageLoopRunner; 1212 new content::MessageLoopRunner;
1220 push_service()->SetContentSettingChangedCallbackForTesting( 1213 push_service()->SetContentSettingChangedCallbackForTesting(
1221 message_loop_runner->QuitClosure()); 1214 message_loop_runner->QuitClosure());
1222 1215
1223 GURL origin = https_server()->GetURL("/").GetOrigin(); 1216 GURL origin = https_server()->GetURL("/").GetOrigin();
1224 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile()) 1217 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile())
1225 ->SetContentSettingDefaultScope(origin, origin, 1218 ->SetContentSettingDefaultScope(origin, origin,
1226 CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, 1219 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
1227 std::string(), CONTENT_SETTING_BLOCK); 1220 std::string(), CONTENT_SETTING_BLOCK);
1228 1221
1229 message_loop_runner->Run(); 1222 message_loop_runner->Run();
1230 1223
1231 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1224 ASSERT_TRUE(RunScript("permissionState()", &script_result));
1232 EXPECT_EQ("permission status - denied", script_result); 1225 EXPECT_EQ("permission status - denied", script_result);
1233 1226
1234 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1227 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
1235 EXPECT_EQ("false - not subscribed", script_result); 1228 EXPECT_EQ("false - not subscribed", script_result);
1236 } 1229 }
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1336 1329
1337 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1330 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
1338 EXPECT_EQ("true - subscribed", script_result); 1331 EXPECT_EQ("true - subscribed", script_result);
1339 1332
1340 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1333 ASSERT_TRUE(RunScript("permissionState()", &script_result));
1341 EXPECT_EQ("permission status - granted", script_result); 1334 EXPECT_EQ("permission status - granted", script_result);
1342 1335
1343 scoped_refptr<content::MessageLoopRunner> message_loop_runner = 1336 scoped_refptr<content::MessageLoopRunner> message_loop_runner =
1344 new content::MessageLoopRunner; 1337 new content::MessageLoopRunner;
1345 push_service()->SetContentSettingChangedCallbackForTesting( 1338 push_service()->SetContentSettingChangedCallbackForTesting(
1346 base::BarrierClosure(2, message_loop_runner->QuitClosure())); 1339 base::BarrierClosure(1, message_loop_runner->QuitClosure()));
1347 1340
1348 GURL origin = https_server()->GetURL("/").GetOrigin(); 1341 GURL origin = https_server()->GetURL("/").GetOrigin();
1349 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile()) 1342 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile())
1350 ->SetContentSettingDefaultScope(origin, GURL(), 1343 ->SetContentSettingDefaultScope(origin, GURL(),
1351 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, 1344 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
1352 std::string(), CONTENT_SETTING_ALLOW); 1345 std::string(), CONTENT_SETTING_ALLOW);
1353 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile())
1354 ->SetContentSettingDefaultScope(origin, origin,
1355 CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
1356 std::string(), CONTENT_SETTING_ALLOW);
1357 1346
1358 message_loop_runner->Run(); 1347 message_loop_runner->Run();
1359 1348
1360 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1349 ASSERT_TRUE(RunScript("permissionState()", &script_result));
1361 EXPECT_EQ("permission status - granted", script_result); 1350 EXPECT_EQ("permission status - granted", script_result);
1362 1351
1363 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1352 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
1364 EXPECT_EQ("true - subscribed", script_result); 1353 EXPECT_EQ("true - subscribed", script_result);
1365 } 1354 }
1366 1355
1367 // This test is testing some non-trivial content settings rules and make sure 1356 // This test is testing some non-trivial content settings rules and make sure
1368 // that they are respected with regards to automatic unsubscription. In other 1357 // that they are respected with regards to automatic unsubscription. In other
1369 // words, it checks that the push service does not end up unsubscribing origins 1358 // words, it checks that the push service does not end up unsubscribing origins
1370 // that have push permission with some non-common rules. 1359 // that have push permission with some non-common rules.
1371 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 1360 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
1372 AutomaticUnsubscriptionFollowsContentSettingRules) { 1361 AutomaticUnsubscriptionFollowsContentSettingRules) {
1373 std::string script_result; 1362 std::string script_result;
1374 1363
1375 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */); 1364 TryToSubscribeSuccessfully("1-0" /* expected_push_subscription_id */);
1376 1365
1377 ASSERT_TRUE(RunScript("hasSubscription()", &script_result)); 1366 ASSERT_TRUE(RunScript("hasSubscription()", &script_result));
1378 EXPECT_EQ("true - subscribed", script_result); 1367 EXPECT_EQ("true - subscribed", script_result);
1379 1368
1380 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1369 ASSERT_TRUE(RunScript("permissionState()", &script_result));
1381 EXPECT_EQ("permission status - granted", script_result); 1370 EXPECT_EQ("permission status - granted", script_result);
1382 1371
1383 scoped_refptr<content::MessageLoopRunner> message_loop_runner = 1372 scoped_refptr<content::MessageLoopRunner> message_loop_runner =
1384 new content::MessageLoopRunner; 1373 new content::MessageLoopRunner;
1385 push_service()->SetContentSettingChangedCallbackForTesting( 1374 push_service()->SetContentSettingChangedCallbackForTesting(
1386 base::BarrierClosure(4, message_loop_runner->QuitClosure())); 1375 base::BarrierClosure(2, message_loop_runner->QuitClosure()));
1387 1376
1388 GURL origin = https_server()->GetURL("/").GetOrigin(); 1377 GURL origin = https_server()->GetURL("/").GetOrigin();
1389 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile()) 1378 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile())
1390 ->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, 1379 ->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
1391 CONTENT_SETTING_ALLOW); 1380 CONTENT_SETTING_ALLOW);
1392 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile()) 1381 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile())
1393 ->SetContentSettingCustomScope(
1394 ContentSettingsPattern::FromString("https://*"),
1395 ContentSettingsPattern::FromString("https://*"),
1396 CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, std::string(),
1397 CONTENT_SETTING_ALLOW);
1398 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile())
1399 ->SetContentSettingDefaultScope(origin, GURL(), 1382 ->SetContentSettingDefaultScope(origin, GURL(),
1400 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, 1383 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
1401 std::string(), CONTENT_SETTING_DEFAULT); 1384 std::string(), CONTENT_SETTING_DEFAULT);
1402 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile())
1403 ->SetContentSettingDefaultScope(origin, origin,
1404 CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
1405 std::string(), CONTENT_SETTING_DEFAULT);
1406 1385
1407 message_loop_runner->Run(); 1386 message_loop_runner->Run();
1408 1387
1409 // The two first rules should give |origin| the permission to use Push even 1388 // The two first rules should give |origin| the permission to use Push even
1410 // if the rules it used to have have been reset. 1389 // if the rules it used to have have been reset.
1411 // The Push service should not unsubcribe |origin| because at no point it was 1390 // The Push service should not unsubcribe |origin| because at no point it was
1412 // left without permission to use Push. 1391 // left without permission to use Push.
1413 1392
1414 ASSERT_TRUE(RunScript("permissionState()", &script_result)); 1393 ASSERT_TRUE(RunScript("permissionState()", &script_result));
1415 EXPECT_EQ("permission status - granted", script_result); 1394 EXPECT_EQ("permission status - granted", script_result);
(...skipping 29 matching lines...) Expand all
1445 1424
1446 base::RunLoop run_loop; 1425 base::RunLoop run_loop;
1447 push_service()->SetContentSettingChangedCallbackForTesting( 1426 push_service()->SetContentSettingChangedCallbackForTesting(
1448 run_loop.QuitClosure()); 1427 run_loop.QuitClosure());
1449 1428
1450 // This shouldn't (asynchronously) cause a DCHECK. 1429 // This shouldn't (asynchronously) cause a DCHECK.
1451 // TODO(johnme): Get this test running on Android, which has a different 1430 // TODO(johnme): Get this test running on Android, which has a different
1452 // codepath due to sender_id being required for unsubscribing there. 1431 // codepath due to sender_id being required for unsubscribing there.
1453 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile()) 1432 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile())
1454 ->ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 1433 ->ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
1455 HostContentSettingsMapFactory::GetForProfile(GetBrowser()->profile())
1456 ->ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING);
1457 1434
1458 run_loop.Run(); 1435 run_loop.Run();
1459 1436
1460 // |app_identifier| should no longer be stored in prefs. 1437 // |app_identifier| should no longer be stored in prefs.
1461 PushMessagingAppIdentifier stored_app_identifier2 = 1438 PushMessagingAppIdentifier stored_app_identifier2 =
1462 PushMessagingAppIdentifier::FindByAppId(GetBrowser()->profile(), 1439 PushMessagingAppIdentifier::FindByAppId(GetBrowser()->profile(),
1463 app_identifier.app_id()); 1440 app_identifier.app_id());
1464 EXPECT_TRUE(stored_app_identifier2.is_null()); 1441 EXPECT_TRUE(stored_app_identifier2.is_null());
1465 } 1442 }
1466 1443
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1596 ASSERT_FALSE(background_mode_manager->IsBackgroundModeActive()); 1573 ASSERT_FALSE(background_mode_manager->IsBackgroundModeActive());
1597 1574
1598 // After dropping the last subscription background mode is still inactive. 1575 // After dropping the last subscription background mode is still inactive.
1599 std::string script_result; 1576 std::string script_result;
1600 gcm_service()->AddExpectedUnregisterResponse(gcm::GCMClient::SUCCESS); 1577 gcm_service()->AddExpectedUnregisterResponse(gcm::GCMClient::SUCCESS);
1601 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result)); 1578 ASSERT_TRUE(RunScript("unsubscribePush()", &script_result));
1602 EXPECT_EQ("unsubscribe result: true", script_result); 1579 EXPECT_EQ("unsubscribe result: true", script_result);
1603 ASSERT_FALSE(background_mode_manager->IsBackgroundModeActive()); 1580 ASSERT_FALSE(background_mode_manager->IsBackgroundModeActive());
1604 } 1581 }
1605 #endif // BUILDFLAG(ENABLE_BACKGROUND) && !defined(OS_CHROMEOS) 1582 #endif // BUILDFLAG(ENABLE_BACKGROUND) && !defined(OS_CHROMEOS)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698