Index: chrome/common/extensions/docs/server2/api_list_data_source_test.py |
diff --git a/chrome/common/extensions/docs/server2/api_list_data_source_test.py b/chrome/common/extensions/docs/server2/api_list_data_source_test.py |
index fdba6dc0c095337ae116697396a51c3a4252d956..1ffbe33ff76a36814e58856c0ea6d59b4f5a3ab4 100755 |
--- a/chrome/common/extensions/docs/server2/api_list_data_source_test.py |
+++ b/chrome/common/extensions/docs/server2/api_list_data_source_test.py |
@@ -3,10 +3,12 @@ |
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
+import json |
import unittest |
from api_list_data_source import APIListDataSource |
from compiled_file_system import CompiledFileSystem |
from copy import deepcopy |
+from features_bundle import FeaturesBundle |
from object_store_creator import ObjectStoreCreator |
from test_file_system import TestFileSystem |
@@ -14,77 +16,137 @@ def _ToTestData(obj): |
'''Transforms |obj| into test data by turning a list of files into an object |
mapping that file to its contents (derived from its name). |
''' |
- return (dict((name, name) for name in obj) if isinstance(obj, list) else |
- dict((key, _ToTestData(value)) for key, value in obj.items())) |
+ return dict((name, name) for name in obj) |
-_TEST_DATA = _ToTestData({ |
- 'api': [ |
- 'alarms.idl', |
- 'app_window.idl', |
- 'browser_action.json', |
- 'experimental_bluetooth.idl', |
- 'experimental_history.idl', |
- 'experimental_power.idl', |
- 'infobars.idl', |
- 'something_internal.idl', |
- 'something_else_internal.json', |
- 'storage.json', |
- ], |
+def _ToTestFeatures(names): |
+ '''Transforms a list of strings into a minimal JSON features object. |
+ ''' |
+ return dict((name, { |
+ 'name': name, |
+ 'platforms': platforms |
+ }) for name, platforms in names) |
+ |
+_TEST_DATA = { |
'public': { |
- 'apps': [ |
+ 'apps': _ToTestData([ |
'alarms.html', |
'app_window.html', |
'experimental_bluetooth.html', |
'experimental_power.html', |
'storage.html', |
- ], |
- 'extensions': [ |
+ ]), |
+ 'extensions': _ToTestData([ |
'alarms.html', |
'browserAction.html', |
'experimental_history.html', |
'experimental_power.html', |
'infobars.html', |
'storage.html', |
- ], |
+ ]), |
}, |
-}) |
+} |
+ |
+_TEST_API_FEATURES = _ToTestFeatures([ |
+ ('alarms', ['apps', 'extensions']), |
+ ('app.window', ['apps']), |
+ ('browserAction', ['extensions']), |
+ ('experimental.bluetooth', ['apps']), |
+ ('experimental.history', ['extensions']), |
+ ('experimental.power', ['apps', 'extensions']), |
+ ('infobars', ['extensions']), |
+ ('something_internal', ['apps']), |
+ ('something_else_internal', ['extensions']), |
+ ('storage', ['apps', 'extensions']) |
+]) |
+ |
+ |
+class _FakeFeaturesBundle(object): |
+ def GetAPIFeatures(self): |
+ return _TEST_API_FEATURES |
+ |
class APIListDataSourceTest(unittest.TestCase): |
def setUp(self): |
file_system = TestFileSystem(deepcopy(_TEST_DATA)) |
+ object_store_creator = ObjectStoreCreator.ForTest() |
+ compiled_fs_factory = CompiledFileSystem.Factory( |
+ file_system, |
+ object_store_creator) |
+ features_bundle = _FakeFeaturesBundle() |
self._factory = APIListDataSource.Factory( |
- CompiledFileSystem.Factory( |
- file_system, ObjectStoreCreator.ForTest()), |
+ compiled_fs_factory, |
file_system, |
- 'api', |
- 'public') |
+ 'public', |
+ features_bundle, |
+ object_store_creator) |
def testApps(self): |
api_list = self._factory.Create() |
- self.assertEqual([{'name': 'alarms'}, |
- {'name': 'app.window'}, |
- {'name': 'storage', 'last': True}], |
- api_list.get('apps').get('chrome')) |
+ self.assertEqual([ |
+ { |
+ 'name': 'alarms', |
+ 'platforms': ['apps', 'extensions'] |
+ }, |
+ { |
+ 'name': 'app.window', |
+ 'platforms': ['apps'] |
+ }, |
+ { |
+ 'name': 'storage', |
+ 'platforms': ['apps', 'extensions'], |
+ 'last': True |
+ }], |
+ api_list.get('apps').get('chrome')) |
def testExperimentalApps(self): |
api_list = self._factory.Create() |
- self.assertEqual([{'name': 'experimental.bluetooth'}, |
- {'name': 'experimental.power', 'last': True}], |
- sorted(api_list.get('apps').get('experimental'))) |
+ self.assertEqual([ |
+ { |
+ 'name': 'experimental.bluetooth', |
+ 'platforms': ['apps'] |
+ }, |
+ { |
+ 'name': 'experimental.power', |
+ 'platforms': ['apps', 'extensions'], |
+ 'last': True |
+ }], |
+ sorted(api_list.get('apps').get('experimental'))) |
def testExtensions(self): |
api_list = self._factory.Create() |
- self.assertEqual([{'name': 'alarms'}, |
- {'name': 'browserAction'}, |
- {'name': 'infobars'}, |
- {'name': 'storage', 'last': True}], |
- sorted(api_list.get('extensions').get('chrome'))) |
+ self.assertEqual([ |
+ { |
+ 'name': 'alarms', |
+ 'platforms': ['apps', 'extensions'] |
+ }, |
+ { |
+ 'name': 'browserAction', |
+ 'platforms': ['extensions'] |
+ }, |
+ { |
+ 'name': 'infobars', |
+ 'platforms': ['extensions'] |
+ }, |
+ { |
+ 'name': 'storage', |
+ 'platforms': ['apps', 'extensions'], |
+ 'last': True |
+ }], |
+ sorted(api_list.get('extensions').get('chrome'))) |
- def testExperimentalApps(self): |
+ def testExperimentalExtensions(self): |
api_list = self._factory.Create() |
- self.assertEqual([{'name': 'experimental.history'}, |
- {'name': 'experimental.power', 'last': True}], |
- sorted(api_list.get('extensions').get('experimental'))) |
+ self.assertEqual([ |
+ { |
+ 'name': 'experimental.history', |
+ 'platforms': ['extensions'] |
+ }, |
+ { |
+ 'name': 'experimental.power', |
+ 'platforms': ['apps', 'extensions'], |
+ 'last': True |
+ }], |
+ sorted(api_list.get('extensions').get('experimental'))) |
if __name__ == '__main__': |
unittest.main() |