| 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()
|
|
|