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

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

Issue 15091002: Lazily load API schemas from resource files and convert all APIs to features (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more comments and fixed tests 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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 // chrome.bookmarks is a optional permission, so the API definition should
131 // exist but its use disallowed. 128 // exist but its use disallowed.
132 assertTrue(!!chrome.bookmarks); 129 assertTrue(!!chrome.bookmarks);
133 try { 130 assertTrue(chrome.runtime.lastError === undefined);
134 chrome.bookmarks.getTree(function() { 131 chrome.bookmarks.getTree(function() {
135 chrome.test.fail("Should not have bookmarks API permission."); 132 assertFalse(chrome.runtime.lastError === undefined);
not at google - send to devlin 2013/05/30 16:38:52 What fails? You should use chrome.test.callbackFai
cduvall 2013/06/12 01:22:19 Fixed in optional permission reload.
136 }); 133 });
137 } catch (e) { 134
138 assertTrue(e.message.indexOf(NO_BOOKMARKS_PERMISSION) == 0);
139 }
140 listenOnce(chrome.permissions.onAdded, 135 listenOnce(chrome.permissions.onAdded,
141 function(permissions) { 136 function(permissions) {
142 assertTrue(permissions.permissions.length == 1); 137 assertTrue(permissions.permissions.length == 1);
143 assertTrue(permissions.permissions[0] == 'bookmarks'); 138 assertTrue(permissions.permissions[0] == 'bookmarks');
144 }); 139 });
145 chrome.permissions.request( 140 chrome.permissions.request(
146 {permissions:['bookmarks']}, 141 {permissions:['bookmarks']},
147 pass(function(granted) { 142 pass(function(granted) {
148 assertTrue(granted); 143 assertTrue(granted);
149 chrome.bookmarks.getTree(pass(function(result) { 144 chrome.bookmarks.getTree(pass(function(result) {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 function(permissions) { 193 function(permissions) {
199 assertTrue(permissions.permissions.length == 1); 194 assertTrue(permissions.permissions.length == 1);
200 assertTrue(permissions.permissions[0] == 'bookmarks'); 195 assertTrue(permissions.permissions[0] == 'bookmarks');
201 }); 196 });
202 chrome.permissions.remove( 197 chrome.permissions.remove(
203 {permissions:['bookmarks']}, 198 {permissions:['bookmarks']},
204 pass(function() { 199 pass(function() {
205 chrome.permissions.getAll(pass(function(permissions) { 200 chrome.permissions.getAll(pass(function(permissions) {
206 assertTrue(checkPermSetsEq(initialPermissions, permissions)); 201 assertTrue(checkPermSetsEq(initialPermissions, permissions));
207 })); 202 }));
208 try { 203
209 chrome.bookmarks.getTree(function() { 204 assertTrue(chrome.runtime.lastError === undefined);
210 chrome.test.fail("Should not have bookmarks API permission."); 205 chrome.bookmarks.getTree(function() {
211 }); 206 assertFalse(chrome.runtime.lastError === undefined);
212 } catch (e) { 207 });
213 assertTrue(e.message.indexOf(NO_BOOKMARKS_PERMISSION) == 0);
214 }
215 })); 208 }));
216 }, 209 },
217 210
218 // The user shouldn't have to approve permissions that have no warnings. 211 // The user shouldn't have to approve permissions that have no warnings.
219 function noPromptForNoWarnings() { 212 function noPromptForNoWarnings() {
220 chrome.permissions.request( 213 chrome.permissions.request(
221 {permissions: ['notifications']}, 214 {permissions: ['notifications']},
222 pass(function(granted) { 215 pass(function(granted) {
223 assertTrue(granted); 216 assertTrue(granted);
224 217
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 // onAdded and onRemoved event listeners. 291 // onAdded and onRemoved event listeners.
299 function eventListenerPermissions() { 292 function eventListenerPermissions() {
300 listenOnce(chrome.permissions.onAdded, 293 listenOnce(chrome.permissions.onAdded,
301 function(permissions) { 294 function(permissions) {
302 chrome.bookmarks.getTree(pass(function() { 295 chrome.bookmarks.getTree(pass(function() {
303 assertTrue(true); 296 assertTrue(true);
304 })); 297 }));
305 }); 298 });
306 listenOnce(chrome.permissions.onRemoved, 299 listenOnce(chrome.permissions.onRemoved,
307 function(permissions) { 300 function(permissions) {
308 try { 301 assertTrue(chrome.runtime.lastError === undefined);
309 chrome.bookmarks.getTree(function() { 302 chrome.bookmarks.getTree(function() {
310 chrome.test.fail("Should not have bookmakrs API permission."); 303 assertFalse(chrome.runtime.lastError === undefined);
311 }); 304 });
312 } catch (e) {
313 assertTrue(e.message.indexOf(NO_BOOKMARKS_PERMISSION) == 0);
314 }
315 }); 305 });
316 306
317 chrome.permissions.request( 307 chrome.permissions.request(
318 {permissions: ['bookmarks', 'management']}, pass(function(granted) { 308 {permissions: ['bookmarks', 'management']}, pass(function(granted) {
319 assertTrue(granted); 309 assertTrue(granted);
320 chrome.permissions.remove( 310 chrome.permissions.remove(
321 {permissions: ['bookmarks']}, pass(function() { 311 {permissions: ['bookmarks']}, pass(function() {
322 assertTrue(true); 312 assertTrue(true);
323 })); 313 }));
324 })); 314 }));
325 } 315 }
326 316
327 ]); 317 ]);
328 }); 318 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698