diff options
author | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-18 23:40:40 +0000 |
---|---|---|
committer | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-18 23:40:40 +0000 |
commit | 47982c2898553db265750b5a5a9b1c19c9d22199 (patch) | |
tree | 876fb9fd16b545aa68cee7c40b81aa05abb353a6 /chrome/test | |
parent | 1e8a0020bac9d87fc123746ec210aa5b3d4ef2e2 (diff) | |
download | chromium_src-47982c2898553db265750b5a5a9b1c19c9d22199.zip chromium_src-47982c2898553db265750b5a5a9b1c19c9d22199.tar.gz chromium_src-47982c2898553db265750b5a5a9b1c19c9d22199.tar.bz2 |
Adding support for optional description in to the callback of the management API
Adding a list of API Permissions with the name "permissions" and adding a seperate list of Host permissions (i.e, http://*/*) so that developers can navigate them seperatly with ease.
The permissions and hosttPermissions attributes are always visible in this object even if not supplied. Likewise the description attribute is also now "" if not defined in the manifest. As well as the options_url.
Contributed by paulkinlan@chromium.org
Original review: http://codereview.chromium.org/4585001
BUG=58388
TEST=chrome/test/data/extensions/api_test/management/*
Review URL: http://codereview.chromium.org/5211003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66701 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test')
3 files changed, 49 insertions, 3 deletions
diff --git a/chrome/test/data/extensions/api_test/management/description/manifest.json b/chrome/test/data/extensions/api_test/management/description/manifest.json new file mode 100644 index 0000000..ed29f34 --- /dev/null +++ b/chrome/test/data/extensions/api_test/management/description/manifest.json @@ -0,0 +1,5 @@ +{ + "name": "description", + "version": "0.1", + "description" : "a short description" +} diff --git a/chrome/test/data/extensions/api_test/management/permissions/manifest.json b/chrome/test/data/extensions/api_test/management/permissions/manifest.json new file mode 100644 index 0000000..82e994e --- /dev/null +++ b/chrome/test/data/extensions/api_test/management/permissions/manifest.json @@ -0,0 +1,5 @@ +{ + "name": "permissions", + "version": "0.1", + "permissions": ["unlimitedStorage", "notifications", "http://*/*"] +} diff --git a/chrome/test/data/extensions/api_test/management/test/basics.js b/chrome/test/data/extensions/api_test/management/test/basics.js index 1836775..c9cfe33 100644 --- a/chrome/test/data/extensions/api_test/management/test/basics.js +++ b/chrome/test/data/extensions/api_test/management/test/basics.js @@ -15,13 +15,40 @@ function checkIcon(item, size, path) { fail("didn't find icon of size " + size + " at path " + path); } +function checkPermission(item, perm) { + var permissions = item.permissions; + console.log("permissions for " + item.name); + for (var i = 0; i < permissions.length; i++) { + var permission = permissions[i]; + console.log(" " + permission); + if (permission == perm) { + assertEq(perm, permission); + return; + } + } + fail("didn't find permission " + perm); +} + +function checkHostPermission(item, perm) { + var permissions = item.hostPermissions; + for (var i = 0; i < permissions.length; i++) { + var permission = permissions[i]; + if (permission == perm) { + assertEq(perm, permission); + return; + } + } + fail("didn't find permission " + perm); +} + var tests = [ function simple() { chrome.management.getAll(callback(function(items) { - chrome.test.assertEq(5, items.length); + chrome.test.assertEq(7, items.length); checkItemInList(items, "Extension Management API Test", true, false); - + checkItemInList(items, "description", true, false, + { "description": "a short description" }); checkItemInList(items, "enabled_app", true, true, {"appLaunchUrl": "http://www.google.com/"}); checkItemInList(items, "disabled_app", false, true); @@ -39,8 +66,17 @@ var tests = [ // Check that we can retrieve this extension by ID. chrome.management.get(extension.id, callback(function(same_extension) { checkItem(same_extension, extension.name, extension.enabled, - extension.isApp, extension.additional_properties) + extension.isApp, extension.additional_properties); })); + + // Check that we have a permission defined. + var testExtension = getItemNamed(items, "Extension Management API Test"); + checkPermission(testExtension, "management"); + + var permExtension = getItemNamed(items, "permissions"); + checkPermission(permExtension, "unlimitedStorage"); + checkPermission(permExtension, "notifications"); + checkHostPermission(permExtension, "http://*/*"); })); }, |