- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / test / data / extensions / api_test / bindings / unavailable_bindings_never_registered / background.js
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.
4
5 function assertAlarmsIsNotRegistered() {
6   chrome.test.assertFalse('alarms' in chrome, 'alarms is registered');
7 }
8
9 function assertRuntimeIsRegistered() {
10   var runtime = chrome.runtime;
11   chrome.test.assertTrue(!!(runtime && runtime.reload && runtime.connect),
12                          'runtime is not registered');
13 }
14
15 function assertStorageIsNotRegistered() {
16   chrome.test.assertFalse('storage' in chrome, 'storage is registered');
17 }
18
19 function assertStorageIsRegistered() {
20   var storage = chrome.storage;
21   chrome.test.assertTrue(!!(storage && storage.local && storage.local.get),
22                          'storage is not registered');
23 }
24
25 function test() {
26   assertAlarmsIsNotRegistered();
27   assertRuntimeIsRegistered();
28   assertStorageIsNotRegistered();
29
30   chrome.permissions.request({permissions: ['storage']},
31                              chrome.test.callbackPass(function() {
32     assertAlarmsIsNotRegistered();
33     assertRuntimeIsRegistered();
34     assertStorageIsRegistered();
35
36     chrome.permissions.remove({permissions: ['storage']},
37                               chrome.test.callbackPass(function() {
38       assertAlarmsIsNotRegistered();
39       assertRuntimeIsRegistered();
40       assertStorageIsRegistered();
41
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.");
46
47       chrome.test.succeed();
48     }));
49   }));
50 }
51
52 chrome.test.runTests([test]);