1 // Copyright 2013 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.
5 function assertAlarmsIsNotRegistered() {
6 chrome.test.assertFalse('alarms' in chrome, 'alarms is registered');
9 function assertRuntimeIsRegistered() {
10 var runtime = chrome.runtime;
11 chrome.test.assertTrue(!!(runtime && runtime.reload && runtime.connect),
12 'runtime is not registered');
15 function assertStorageIsNotRegistered() {
16 chrome.test.assertFalse('storage' in chrome, 'storage is registered');
19 function assertStorageIsRegistered() {
20 var storage = chrome.storage;
21 chrome.test.assertTrue(!!(storage && storage.local && storage.local.get),
22 'storage is not registered');
26 assertAlarmsIsNotRegistered();
27 assertRuntimeIsRegistered();
28 assertStorageIsNotRegistered();
30 chrome.permissions.request({permissions: ['storage']},
31 chrome.test.callbackPass(function() {
32 assertAlarmsIsNotRegistered();
33 assertRuntimeIsRegistered();
34 assertStorageIsRegistered();
36 chrome.permissions.remove({permissions: ['storage']},
37 chrome.test.callbackPass(function() {
38 assertAlarmsIsNotRegistered();
39 assertRuntimeIsRegistered();
40 assertStorageIsRegistered();
42 // Although storage should throw an error on use since it's removed.
43 chrome.test.assertThrows(
44 chrome.storage.local.get, chrome.storage.local, [function(){}],
45 "'storage' requires a different Feature that is not present.");
47 chrome.test.succeed();
52 chrome.test.runTests([test]);