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

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: let's try this again, shall we? Created 7 years, 2 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..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()
« no previous file with comments | « chrome/common/extensions/docs/server2/api_list_data_source.py ('k') | chrome/common/extensions/docs/server2/app.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698