| OLD | NEW |
| (Empty) | |
| 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 |
| 3 // found in the LICENSE file. |
| 4 |
| 5 var callback = chrome.test.callback; |
| 6 |
| 7 // The names of the extensions to operate on, from their manifest.json files. |
| 8 var ENABLED_NAME = 'enabled_extension'; |
| 9 var DISABLED_NAME = 'disabled_extension'; |
| 10 var UNINSTALL_NAME = 'enabled_extension'; |
| 11 |
| 12 var EXPECTED_ERROR = 'Extension * cannot be modified by user'; |
| 13 |
| 14 // Given a list of extension items, finds the one with the given name. |
| 15 function findByName(items, name) { |
| 16 var item; |
| 17 for (var i = 0; i < items.length; i++) { |
| 18 item = items[i]; |
| 19 if (item.name == name) |
| 20 break; |
| 21 } |
| 22 if (name != item.name) |
| 23 chrome.test.fail('Couldn\'t find installed extension ' + name); |
| 24 return item; |
| 25 } |
| 26 |
| 27 // Verifies that the extension with the given |id| has the expected |enabled| |
| 28 // status. |
| 29 function checkEnabled(id, enabled) { |
| 30 chrome.management.get(id, callback(function(result) { |
| 31 chrome.test.assertEq(enabled, result.enabled); |
| 32 })); |
| 33 } |
| 34 |
| 35 var tests = [ |
| 36 // Tests disabling an extension, expecting it to fail. |
| 37 function prohibitedDisable() { |
| 38 chrome.management.getAll(callback(function(items) { |
| 39 var item = findByName(items, ENABLED_NAME); |
| 40 chrome.test.assertEq(false, item.mayDisable); |
| 41 chrome.test.assertEq(true, item.enabled); |
| 42 |
| 43 var id = item.id; |
| 44 var expectedError = EXPECTED_ERROR.replace('*', id); |
| 45 chrome.management.setEnabled(id, false, |
| 46 callback(function() { checkEnabled(id, true); }, expectedError)); |
| 47 })); |
| 48 }, |
| 49 |
| 50 // Tests enabling an extension, expecting it to fail. |
| 51 function prohibitedEnable() { |
| 52 chrome.management.getAll(callback(function(items) { |
| 53 var item = findByName(items, DISABLED_NAME); |
| 54 chrome.test.assertEq(false, item.mayDisable); |
| 55 chrome.test.assertEq(false, item.enabled); |
| 56 |
| 57 var id = item.id; |
| 58 var expectedError = EXPECTED_ERROR.replace('*', id); |
| 59 chrome.management.setEnabled(id, true, |
| 60 callback(function() { checkEnabled(id, false); }, expectedError)); |
| 61 })); |
| 62 }, |
| 63 |
| 64 // Tests uninstalling an extension, expecting it to fail. |
| 65 function prohibitedUninstall() { |
| 66 chrome.management.getAll(callback(function(items) { |
| 67 var item = findByName(items, UNINSTALL_NAME); |
| 68 chrome.test.assertEq(false, item.mayDisable); |
| 69 |
| 70 var id = item.id; |
| 71 var expectedError = EXPECTED_ERROR.replace('*', id); |
| 72 chrome.management.uninstall(id, |
| 73 callback(function() { checkEnabled(id, true); }, expectedError)); |
| 74 })); |
| 75 } |
| 76 ]; |
| 77 |
| 78 chrome.test.runTests(tests); |
| OLD | NEW |