Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5317)

Unified Diff: chrome/common/extensions/docs/server2/api_list_data_source_test.py

Issue 23867003: Docserver: Consolidate features caching and access. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: no version bump Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..91defbac4b45ef80d4f154ac2c9b052cad2030eb 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,129 @@ 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,
+ 'extension_types': extension_types
+ }) for name, extension_types in names)
+
+_TEST_DATA = {
+ 'api_features.json': json.dumps(_ToTestFeatures([
+ ('alarms', ['platform_app', 'extension']),
+ ('app.window', ['platform_app']),
+ ('browserAction', ['extension']),
+ ('experimental.bluetooth', ['platform_app']),
+ ('experimental.history', ['extension']),
+ ('experimental.power', ['platform_app', 'extension']),
+ ('infobars', ['extension']),
+ ('something_internal', ['platform_app']),
+ ('something_else_internal', ['extension']),
+ ('storage', ['platform_app', 'extension'])
+ ])),
'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',
- ],
+ ]),
},
-})
+}
class APIListDataSourceTest(unittest.TestCase):
def setUp(self):
file_system = TestFileSystem(deepcopy(_TEST_DATA))
+ compiled_fs_factory = CompiledFileSystem.Factory(
+ file_system, ObjectStoreCreator.ForTest())
+ features_bundle = FeaturesBundle(
+ file_system,
+ compiled_fs_factory,
+ { 'api': ('api_features.json',) })
self._factory = APIListDataSource.Factory(
- CompiledFileSystem.Factory(
- file_system, ObjectStoreCreator.ForTest()),
+ compiled_fs_factory,
file_system,
- 'api',
- 'public')
+ 'public',
+ features_bundle)
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()

Powered by Google App Engine
This is Rietveld 408576698