diff options
author | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-30 05:10:46 +0000 |
---|---|---|
committer | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-30 05:10:46 +0000 |
commit | 7596ce72af88e6934be4aaa9d38a2deca96b095d (patch) | |
tree | c18fb9f40fa61d7dcfc70c6f8687289cf93d233a /chrome/test/data/extensions | |
parent | 13a33c1a7d2a0707fc2df1e76d14685ce944281b (diff) | |
download | chromium_src-7596ce72af88e6934be4aaa9d38a2deca96b095d.zip chromium_src-7596ce72af88e6934be4aaa9d38a2deca96b095d.tar.gz chromium_src-7596ce72af88e6934be4aaa9d38a2deca96b095d.tar.bz2 |
Implement events for extensions management API.
BUG=51178
TEST=The events described in the experimental.management API should fire for
extensions and apps being installed, uninstalled, enabled, and disabled.
Review URL: http://codereview.chromium.org/3278003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57831 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/data/extensions')
6 files changed, 47 insertions, 18 deletions
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 ea5fc23..c998ca3d 100644 --- a/chrome/test/data/extensions/api_test/management/test/basics.js +++ b/chrome/test/data/extensions/api_test/management/test/basics.js @@ -17,8 +17,7 @@ function checkIcon(item, size, path) { var tests = [ function simple() { - chrome.management.getAll(function(items) { - assertNoLastError(); + chrome.management.getAll(callback(function(items) { chrome.test.assertEq(5, items.length); checkItem(items, "Extension Management API Test", true, false); @@ -36,33 +35,35 @@ var tests = [ checkIcon(extension, 128, "icon_128.png"); checkIcon(extension, 48, "icon_48.png"); checkIcon(extension, 16, "icon_16.png"); - - succeed(); - }); + })); }, // Disables an enabled app. function disable() { - chrome.management.getAll(function(items) { - assertNoLastError(); + listenOnce(chrome.management.onDisabled, function(info) { + assertEq(info.name, "enabled_app"); + }); + + chrome.management.getAll(callback(function(items) { checkItem(items, "enabled_app", true, true); var enabled_app = getItemNamed(items, "enabled_app"); chrome.management.setEnabled(enabled_app.id, false, function() { assertNoLastError(); chrome.management.getAll(function(items2) { assertNoLastError(); - chrome.test.log("re-checking enabled_app"); checkItem(items2, "enabled_app", false, true); - succeed(); + assertTrue(event_fired); }); }); - }); + })); }, // Enables a disabled extension. function enable() { - chrome.management.getAll(function(items) { - assertNoLastError(); + listenOnce(chrome.management.onEnabled, function(info) { + assertEq(info.name, "disabled_extension"); + }); + chrome.management.getAll(callback(function(items) { checkItem(items, "disabled_extension", false, false); var disabled = getItemNamed(items, "disabled_extension"); chrome.management.setEnabled(disabled.id, true, function() { @@ -70,10 +71,10 @@ var tests = [ chrome.management.getAll(function(items2) { assertNoLastError(); checkItem(items2, "disabled_extension", true, false); - succeed(); + assertTrue(event_fired); }); }); - }); + })); } ]; diff --git a/chrome/test/data/extensions/api_test/management/test/common.js b/chrome/test/data/extensions/api_test/management/test/common.js index 6385599..744ced4 100644 --- a/chrome/test/data/extensions/api_test/management/test/common.js +++ b/chrome/test/data/extensions/api_test/management/test/common.js @@ -12,6 +12,8 @@ var assertNoLastError = chrome.test.assertNoLastError; var assertTrue = chrome.test.assertTrue; var fail = chrome.test.fail; var succeed = chrome.test.succeed; +var listenOnce = chrome.test.listenOnce; +var callback = chrome.test.callback; function getItemNamed(list, name) { for (var i = 0; i < list.length; i++) { diff --git a/chrome/test/data/extensions/api_test/management/test/uninstall.js b/chrome/test/data/extensions/api_test/management/test/uninstall.js index e4a120b..f425c8e 100644 --- a/chrome/test/data/extensions/api_test/management/test/uninstall.js +++ b/chrome/test/data/extensions/api_test/management/test/uninstall.js @@ -3,8 +3,11 @@ // found in the LICENSE file. function uninstall(name) { - chrome.management.getAll(function(items) { - assertNoLastError(); + listenOnce(chrome.management.onUninstalled, function(info) { + assertEq(info.name, name); + }); + + chrome.management.getAll(callback(function(items) { var old_count = items.length; var item = getItemNamed(items, name); chrome.management.uninstall(item.id, function() { @@ -15,10 +18,10 @@ function uninstall(name) { for (var i = 0; i < items2.length; i++) { assertFalse(items2[i].name == name); } - succeed(); + assertTrue(event_fired); }); }); - }); + })); } var tests = [ diff --git a/chrome/test/data/extensions/management/install_event/background.html b/chrome/test/data/extensions/management/install_event/background.html new file mode 100644 index 0000000..46f4d74 --- /dev/null +++ b/chrome/test/data/extensions/management/install_event/background.html @@ -0,0 +1 @@ +<script src="test.js"></script> diff --git a/chrome/test/data/extensions/management/install_event/manifest.json b/chrome/test/data/extensions/management/install_event/manifest.json new file mode 100644 index 0000000..79a5831 --- /dev/null +++ b/chrome/test/data/extensions/management/install_event/manifest.json @@ -0,0 +1,7 @@ +{ + "name": "Install event test", + "version": "0.1", + "permissions": ["experimental"], + "background_page": "background.html" +} + diff --git a/chrome/test/data/extensions/management/install_event/test.js b/chrome/test/data/extensions/management/install_event/test.js new file mode 100644 index 0000000..09ef1c4 --- /dev/null +++ b/chrome/test/data/extensions/management/install_event/test.js @@ -0,0 +1,15 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +if (!chrome.management) { + chrome.management = chrome.experimental.management; +} + +chrome.management.onInstalled.addListener(function(info) { + if (info.name == "enabled_extension") { + chrome.test.sendMessage("got_event"); + } +}); + +chrome.test.sendMessage("ready"); |