summaryrefslogtreecommitdiffstats
path: root/chrome/test
diff options
context:
space:
mode:
authorasargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-18 23:40:40 +0000
committerasargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-18 23:40:40 +0000
commit47982c2898553db265750b5a5a9b1c19c9d22199 (patch)
tree876fb9fd16b545aa68cee7c40b81aa05abb353a6 /chrome/test
parent1e8a0020bac9d87fc123746ec210aa5b3d4ef2e2 (diff)
downloadchromium_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')
-rw-r--r--chrome/test/data/extensions/api_test/management/description/manifest.json5
-rw-r--r--chrome/test/data/extensions/api_test/management/permissions/manifest.json5
-rw-r--r--chrome/test/data/extensions/api_test/management/test/basics.js42
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://*/*");
}));
},