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

Side by Side Diff: chrome/test/data/extensions/api_test/permissions/optional/background.js

Issue 15961006: Regenerate Extensions API bindings when optional permissions change (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: try againto fix android Created 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 var assertEq = chrome.test.assertEq; 5 var assertEq = chrome.test.assertEq;
6 var assertFalse = chrome.test.assertFalse; 6 var assertFalse = chrome.test.assertFalse;
7 var assertTrue = chrome.test.assertTrue; 7 var assertTrue = chrome.test.assertTrue;
8 var fail = chrome.test.callbackFail; 8 var fail = chrome.test.callbackFail;
9 var pass = chrome.test.callbackPass; 9 var pass = chrome.test.callbackPass;
10 var listenOnce = chrome.test.listenOnce; 10 var listenOnce = chrome.test.listenOnce;
11 11
12 var NOT_OPTIONAL_ERROR = 12 var NOT_OPTIONAL_ERROR =
13 "Optional permissions must be listed in extension manifest."; 13 "Optional permissions must be listed in extension manifest.";
14 14
15 var NO_BOOKMARKS_PERMISSION =
16 "You do not have permission to use 'bookmarks.getTree'.";
17
18 var REQUIRED_ERROR = 15 var REQUIRED_ERROR =
19 "You cannot remove required permissions."; 16 "You cannot remove required permissions.";
20 17
21 var NOT_WHITE_LISTED_ERROR = 18 var NOT_WHITE_LISTED_ERROR =
22 "The optional permissions API does not support '*'."; 19 "The optional permissions API does not support '*'.";
23 20
24 var UNKNOWN_PERMISSIONS_ERROR = 21 var UNKNOWN_PERMISSIONS_ERROR =
25 "'*' is not a recognized permission."; 22 "'*' is not a recognized permission.";
26 23
27 var emptyPermissions = {permissions: [], origins: []}; 24 var emptyPermissions = {permissions: [], origins: []};
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 chrome.permissions.request( 117 chrome.permissions.request(
121 {origins: ['http://*.b.com/*']}, fail(NOT_OPTIONAL_ERROR)); 118 {origins: ['http://*.b.com/*']}, fail(NOT_OPTIONAL_ERROR));
122 chrome.permissions.request( 119 chrome.permissions.request(
123 {permissions: ['history'], origins: ['http://*.b.com/*']}, 120 {permissions: ['history'], origins: ['http://*.b.com/*']},
124 fail(NOT_OPTIONAL_ERROR)); 121 fail(NOT_OPTIONAL_ERROR));
125 }, 122 },
126 123
127 // We should be able to request the bookmarks API since it's in the granted 124 // We should be able to request the bookmarks API since it's in the granted
128 // permissions list (see permissions_apitest.cc). 125 // permissions list (see permissions_apitest.cc).
129 function requestBookmarks() { 126 function requestBookmarks() {
130 // chrome.bookmarks is a optional permission, so the API definition should 127 assertEq(undefined, chrome.bookmarks);
131 // exist but its use disallowed.
132 assertTrue(!!chrome.bookmarks);
133 try {
134 chrome.bookmarks.getTree(function() {
135 chrome.test.fail("Should not have bookmarks API permission.");
136 });
137 } catch (e) {
138 assertTrue(e.message.indexOf(NO_BOOKMARKS_PERMISSION) == 0);
139 }
140 listenOnce(chrome.permissions.onAdded, 128 listenOnce(chrome.permissions.onAdded,
141 function(permissions) { 129 function(permissions) {
142 assertTrue(permissions.permissions.length == 1); 130 assertTrue(permissions.permissions.length == 1);
143 assertTrue(permissions.permissions[0] == 'bookmarks'); 131 assertTrue(permissions.permissions[0] == 'bookmarks');
144 }); 132 });
145 chrome.permissions.request( 133 chrome.permissions.request(
146 {permissions:['bookmarks']}, 134 {permissions:['bookmarks']},
147 pass(function(granted) { 135 pass(function(granted) {
148 assertTrue(granted); 136 assertTrue(granted);
149 chrome.bookmarks.getTree(pass(function(result) { 137 chrome.bookmarks.getTree(pass(function(result) {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 function(permissions) { 186 function(permissions) {
199 assertTrue(permissions.permissions.length == 1); 187 assertTrue(permissions.permissions.length == 1);
200 assertTrue(permissions.permissions[0] == 'bookmarks'); 188 assertTrue(permissions.permissions[0] == 'bookmarks');
201 }); 189 });
202 chrome.permissions.remove( 190 chrome.permissions.remove(
203 {permissions:['bookmarks']}, 191 {permissions:['bookmarks']},
204 pass(function() { 192 pass(function() {
205 chrome.permissions.getAll(pass(function(permissions) { 193 chrome.permissions.getAll(pass(function(permissions) {
206 assertTrue(checkPermSetsEq(initialPermissions, permissions)); 194 assertTrue(checkPermSetsEq(initialPermissions, permissions));
207 })); 195 }));
208 try { 196 assertEq(undefined, chrome.bookmarks);
209 chrome.bookmarks.getTree(function() {
210 chrome.test.fail("Should not have bookmarks API permission.");
211 });
212 } catch (e) {
213 assertTrue(e.message.indexOf(NO_BOOKMARKS_PERMISSION) == 0);
214 }
215 })); 197 }));
216 }, 198 },
217 199
218 // The user shouldn't have to approve permissions that have no warnings. 200 // The user shouldn't have to approve permissions that have no warnings.
219 function noPromptForNoWarnings() { 201 function noPromptForNoWarnings() {
220 chrome.permissions.request( 202 chrome.permissions.request(
221 {permissions: ['notifications']}, 203 {permissions: ['notifications']},
222 pass(function(granted) { 204 pass(function(granted) {
223 assertTrue(granted); 205 assertTrue(granted);
224 206
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 // onAdded and onRemoved event listeners. 280 // onAdded and onRemoved event listeners.
299 function eventListenerPermissions() { 281 function eventListenerPermissions() {
300 listenOnce(chrome.permissions.onAdded, 282 listenOnce(chrome.permissions.onAdded,
301 function(permissions) { 283 function(permissions) {
302 chrome.bookmarks.getTree(pass(function() { 284 chrome.bookmarks.getTree(pass(function() {
303 assertTrue(true); 285 assertTrue(true);
304 })); 286 }));
305 }); 287 });
306 listenOnce(chrome.permissions.onRemoved, 288 listenOnce(chrome.permissions.onRemoved,
307 function(permissions) { 289 function(permissions) {
308 try { 290 assertEq(undefined, chrome.bookmarks);
309 chrome.bookmarks.getTree(function() {
310 chrome.test.fail("Should not have bookmakrs API permission.");
311 });
312 } catch (e) {
313 assertTrue(e.message.indexOf(NO_BOOKMARKS_PERMISSION) == 0);
314 }
315 }); 291 });
316 292
317 chrome.permissions.request( 293 chrome.permissions.request(
318 {permissions: ['bookmarks', 'management']}, pass(function(granted) { 294 {permissions: ['bookmarks', 'management']}, pass(function(granted) {
319 assertTrue(granted); 295 assertTrue(granted);
320 chrome.permissions.remove( 296 chrome.permissions.remove(
321 {permissions: ['bookmarks']}, pass(function() { 297 {permissions: ['bookmarks']}, pass(function() {
322 assertTrue(true); 298 assertTrue(true);
323 })); 299 }));
324 })); 300 }));
325 } 301 }
326 302
327 ]); 303 ]);
328 }); 304 });
OLDNEW
« no previous file with comments | « chrome/renderer/extensions/dispatcher.cc ('k') | chrome/test/data/extensions/api_test/permissions/optional_deny/background.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698