OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 }); |
OLD | NEW |