Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(387)

Side by Side Diff: chrome/test/data/extensions/api_test/management/management_policy/prohibited.js

Issue 10382149: Refactor the various ways to control what users can do to extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(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);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698