2 # Copyright 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
9 from api_list_data_source import APIListDataSource
10 from server_instance import ServerInstance
11 from test_file_system import TestFileSystem
15 '''Transforms |obj| into test data by turning a list of files into an object
16 mapping that file to its contents (derived from its name).
18 return dict((name, name) for name in obj)
21 def _ToTestFeatures(names):
22 '''Transforms a list of strings into a minimal JSON features object.
24 return dict((name, {'name': name, 'platforms': platforms})
25 for name, platforms in names)
28 _TEST_API_FEATURES = _ToTestFeatures([
29 ('alarms', ['apps', 'extensions']),
30 ('app.window', ['apps']),
31 ('browserAction', ['extensions']),
32 ('experimental.bluetooth', ['apps']),
33 ('experimental.history', ['extensions']),
34 ('experimental.power', ['apps', 'extensions']),
35 ('infobars', ['extensions']),
36 ('something_internal', ['apps']),
37 ('something_else_internal', ['extensions']),
38 ('storage', ['apps', 'extensions'])
44 '_api_features.json': json.dumps(_TEST_API_FEATURES),
45 '_manifest_features.json': '{}',
46 '_permission_features.json': '{}',
51 'manifest.json': '{}',
52 'permissions.json': '{}',
58 'experimental_bluetooth.html',
59 'experimental_power.html',
62 'extensions': _ToTestData([
65 'experimental_history.html',
66 'experimental_power.html',
76 class APIListDataSourceTest(unittest.TestCase):
78 server_instance = ServerInstance.ForTest(TestFileSystem(_TEST_DATA))
79 self._factory = APIListDataSource.Factory(
80 server_instance.compiled_fs_factory,
81 server_instance.host_file_system_provider.GetTrunk(),
82 server_instance.features_bundle,
83 server_instance.object_store_creator)
86 api_list = self._factory.Create()
90 'platforms': ['apps', 'extensions']
98 'platforms': ['apps', 'extensions'],
101 api_list.get('apps').get('chrome'))
103 def testExperimentalApps(self):
104 api_list = self._factory.Create()
107 'name': 'experimental.bluetooth',
108 'platforms': ['apps']
111 'name': 'experimental.power',
112 'platforms': ['apps', 'extensions'],
115 sorted(api_list.get('apps').get('experimental')))
117 def testExtensions(self):
118 api_list = self._factory.Create()
122 'platforms': ['apps', 'extensions']
125 'name': 'browserAction',
126 'platforms': ['extensions']
130 'platforms': ['extensions']
134 'platforms': ['apps', 'extensions'],
137 sorted(api_list.get('extensions').get('chrome')))
139 def testExperimentalExtensions(self):
140 api_list = self._factory.Create()
143 'name': 'experimental.history',
144 'platforms': ['extensions']
147 'name': 'experimental.power',
148 'platforms': ['apps', 'extensions'],
151 sorted(api_list.get('extensions').get('experimental')))
153 if __name__ == '__main__':