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

Side by Side Diff: LayoutTests/http/tests/permissions/chromium/resources/test-revoke.js

Issue 1241133002: blink: permissions: cleanup and add tests for revoke (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@permissions-revoke
Patch Set: Fix comments Created 5 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
« no previous file with comments | « no previous file | LayoutTests/http/tests/permissions/chromium/test-revoke-sharedworker.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 if (self.importScripts) {
2 importScripts('../../resources/helpers.js');
3 importScripts('testrunner-helpers.js');
4
5 if (get_current_scope() == 'ServiceWorker')
6 importScripts('../../../serviceworker/resources/worker-testharness.js');
7 else
8 importScripts('../../../resources/testharness.js');
9 }
10
11 var DEFAULT_PERMISSION_STATE = 'denied';
12 var tests = [
13 {
14 test: async_test('Test PermissionDescription WebIDL rules in ' + get_current _scope() + ' scope.'),
15 fn: function(callback) {
16 // Revoking a random permission name should fail.
17 navigator.permissions.revoke({name:'foobar'}).then(function(result) {
18 assert_unreached('revoking a random permission should fail');
19 }, function(error) {
20 assert_equals(error.name, 'TypeError');
21
22 // Querying a permission without a name should fail.
23 return navigator.permissions.query({});
24 }).then(function(result) {
25 assert_unreached('revoking a permission without a name should fail') ;
26 }, function(error) {
27 assert_equals(error.name, 'TypeError');
28 callback();
29 });
30 }
31 },
32 {
33 test: async_test('Test geolocation permission in ' + get_current_scope() + ' scope.'),
34 fn: function(callback) {
35 setPermission('geolocation', 'granted', location.origin, location.origin). then(function() {
36 navigator.permissions.revoke({name:'geolocation'}).then(function(resul t) {
37 assert_true(result instanceof PermissionStatus);
38 assert_equals(result.state, DEFAULT_PERMISSION_STATE);
39 callback();
40 }).catch(function() {
41 assert_unreached('revoking geolocation permission should not fail. ')
42 });
43 });
44 }
45 },
46 {
47 test: async_test('Test midi permission in ' + get_current_scope() + ' scope. '),
48 fn: function(callback) {
49 setPermission('midi-sysex', 'granted', location.origin, location.origin) .then(function() {
50 navigator.permissions.revoke({name:'midi'}).then(function(result) {
mlamouri (slow - plz ping) 2015/07/21 23:29:36 {name:'midi',sysex:true} I wasn't able to check w
51 assert_true(result instanceof PermissionStatus);
52 assert_equals(result.state, DEFAULT_PERMISSION_STATE);
53 callback();
54 }).catch(function() {
55 assert_unreached('revoking geolocation permission should not fai l.')
56 });
57 });
58 }
59 },
60 {
61 test: async_test('Test push permission in ' + get_current_scope() + ' scope. '),
62 fn: function(callback) {
63 setPermission('push-messaging', 'granted', location.origin, location.ori gin).then(function() {
64 navigator.permissions.revoke({name:'push'}).catch(function(e) {
65 // By default, the permission query is rejected if "userVisibleO nly" option
66 // isn't set or set to true.
67 assert_equals(e.name, "NotSupportedError");
68
69 // Test for userVisibleOnly=false.
70 return navigator.permissions.revoke({name:'push', userVisibleOnl y: false});
71 }).catch(function(e) {
72 // By default, the permission query is rejected if "userVisibleO nly" option
mlamouri (slow - plz ping) 2015/07/21 23:29:36 s/query/revocation/
73 // isn't set or set to true.
74 assert_equals(e.name, "NotSupportedError");
75
76 // Test for userVisibleOnly=true.
77 return navigator.permissions.revoke({name:'push', userVisibleOnl y: true});
78 }).then(function(result) {
79 assert_true(result instanceof PermissionStatus);
80 assert_equals(result.state, DEFAULT_PERMISSION_STATE);
81 callback();
82 }).catch(function() {
83 assert_unreached('querying push permission should not fail.')
84 });
85 });
86 }
87 },
88 {
89 test: async_test('Test notifications permission in ' + get_current_scope() + ' scope.'),
90 fn: function(callback) {
91 setPermission('notifications', 'granted', location.origin, location.orig in).then(function() {
92 navigator.permissions.revoke({name:'notifications'}).then(function(r esult) {
93 assert_true(result instanceof PermissionStatus);
94 assert_equals(result.state, DEFAULT_PERMISSION_STATE);
95 callback();
96 }).catch(function() {
97 assert_unreached('querying notifications permission should not f ail.')
98 });
99 });
100 }
101 }];
102
103 function runTest(i) {
104 tests[i].test.step(function() {
105 tests[i].fn(function() {
106 tests[i].test.done();
107 if (i + 1 < tests.length) {
108 runTest(i + 1);
109 } else {
110 done();
111 }
112 });
113 });
114 }
115 runTest(0);
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/http/tests/permissions/chromium/test-revoke-sharedworker.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698