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 32879f6012e320681d1fa0bedd0a14dcf14f3732..a9a85e037bbe6d3005d61c80cf0fcf5f9be4d2eb 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 |
@@ -2,15 +2,15 @@ |
# Copyright 2013 The Chromium Authors. All rights reserved. |
# 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 |
+from file_system import FileNotFoundError |
+from branch_utility import ChannelInfo |
def _ToTestData(obj): |
'''Transforms |obj| into test data by turning a list of files into an object |
@@ -59,89 +59,205 @@ _TEST_API_FEATURES = _ToTestFeatures([ |
('storage', ['apps', 'extensions']) |
]) |
+_TEST_API_Data = { |
+ 'alarms': |
+ {'introList': |
+ [{'title': 'Description', |
+ 'content':[{'text': u'<code>alarms</code>'}]} |
+ ] |
+ }, |
+ 'app.window': |
+ {'introList': |
+ [{'title': 'Description', |
+ 'content':[{'text': u'<code>app.window</code>'}]} |
+ ] |
+ }, |
+ 'browserAction': |
+ {'introList': |
+ [{'title': 'Description', |
+ 'content':[{'text': u'<code>browserAction</code>'}] |
+ } |
+ ] |
+ }, |
+ 'experimental.bluetooth': |
+ {'introList': |
+ [{'title': 'Description', |
+ 'content':[{'text': u'<code>experimental.bluetooth</code>'}] |
+ } |
+ ] |
+ }, |
+ 'experimental.history': |
+ {'introList': |
+ [{'title': 'Description', |
+ 'content':[{'text': u'<code>experimental.history</code>'}] |
+ } |
+ ] |
+ }, |
+ 'experimental.power': |
+ {'introList': |
+ [{'title': 'Description', |
+ 'content':[{'text': u'<code>experimental.power</code>'}] |
+ } |
+ ] |
+ }, |
+ 'infobars': |
+ {'introList': |
+ [{'title': 'Description', |
+ 'content':[{'text': u'<code>infobars</code>'}] |
+ } |
+ ] |
+ }, |
+ 'something_internal': |
+ {'introList': |
+ [{'title': 'Description', |
+ 'content':[{'text': u'<code>something_internal</code>'}] |
+ } |
+ ] |
+ }, |
+ 'something_else_internal': |
+ {'introList': |
+ [{'title': 'Description', |
+ 'content':[{'text': u'<code>something_else_internal</code>'}] |
+ } |
+ ] |
+ }, |
+ 'storage': |
+ {'introList': |
+ [{'title': 'Description', |
+ 'content':[{'text': u'<code>storage</code>'}] |
+ } |
+ ] |
+ }, |
+ } |
+ |
class _FakeFeaturesBundle(object): |
def GetAPIFeatures(self): |
return _TEST_API_FEATURES |
+class FakeAPIDataSource(): |
+ |
+ class Factory(): |
+ def Create(self, request, disable_refs=False): |
+ return FakeAPIDataSource() |
+ |
+ def __init__(self): |
+ self.data = _TEST_API_Data |
+ |
+ def get(self, key): |
+ if key not in self.data: |
+ raise FileNotFoundError(key) |
+ return self.data[key] |
+ |
+ def GetAllNames(self): |
+ return self._json.keys() |
+ |
+class FakeAvailabilityFinder(object): |
+ def GetApiAvailability(self, version): |
+ return ChannelInfo('stable', '396', 5) |
class APIListDataSourceTest(unittest.TestCase): |
def setUp(self): |
object_store_creator = ObjectStoreCreator.ForTest() |
+ |
self._factory = APIListDataSource.Factory( |
CompiledFileSystem.Factory(object_store_creator), |
TestFileSystem(deepcopy(_TEST_DATA)), |
'public', |
_FakeFeaturesBundle(), |
- object_store_creator) |
+ object_store_creator, |
+ FakeAPIDataSource.Factory(), |
+ FakeAvailabilityFinder()) |
def testApps(self): |
api_list = self._factory.Create() |
self.assertEqual([ |
{ |
'name': 'alarms', |
- 'platforms': ['apps', 'extensions'] |
+ 'platforms': ['apps', 'extensions'], |
+ 'version': 5, |
+ 'description': u'<code>alarms</code>' |
}, |
{ |
'name': 'app.window', |
- 'platforms': ['apps'] |
+ 'platforms': ['apps'], |
+ 'version': 5, |
+ 'description': u'<code>app.window</code>' |
}, |
{ |
'name': 'storage', |
'platforms': ['apps', 'extensions'], |
- 'last': True |
+ 'last': True, |
+ 'version': 5, |
+ 'description': u'<code>storage</code>' |
}], |
- api_list.get('apps').get('chrome')) |
+ api_list.get('apps').get('chrome').get("stable")) |
def testExperimentalApps(self): |
api_list = self._factory.Create() |
self.assertEqual([ |
{ |
'name': 'experimental.bluetooth', |
- 'platforms': ['apps'] |
+ 'platforms': ['apps'], |
+ 'version': 5, |
+ 'description': u'<code>experimental.bluetooth</code>' |
}, |
{ |
'name': 'experimental.power', |
'platforms': ['apps', 'extensions'], |
- 'last': True |
+ 'last': True, |
+ 'version': 5, |
+ 'description': u'<code>experimental.power</code>' |
}], |
- sorted(api_list.get('apps').get('experimental'))) |
+ sorted(api_list.get('apps').get('experimental').get('stable'))) |
def testExtensions(self): |
api_list = self._factory.Create() |
self.assertEqual([ |
{ |
'name': 'alarms', |
- 'platforms': ['apps', 'extensions'] |
+ 'platforms': ['apps', 'extensions'], |
+ 'version': 5, |
+ 'description': u'<code>alarms</code>' |
}, |
{ |
'name': 'browserAction', |
- 'platforms': ['extensions'] |
+ 'platforms': ['extensions'], |
+ 'version': 5, |
+ 'description': u'<code>browserAction</code>' |
}, |
{ |
'name': 'infobars', |
- 'platforms': ['extensions'] |
+ 'platforms': ['extensions'], |
+ 'version': 5, |
+ 'description': u'<code>infobars</code>' |
}, |
{ |
'name': 'storage', |
'platforms': ['apps', 'extensions'], |
- 'last': True |
+ 'last': True, |
+ 'version': 5, |
+ 'description': u'<code>storage</code>' |
}], |
- sorted(api_list.get('extensions').get('chrome'))) |
+ sorted(api_list.get('extensions').get('chrome').get('stable'))) |
def testExperimentalExtensions(self): |
api_list = self._factory.Create() |
self.assertEqual([ |
{ |
'name': 'experimental.history', |
- 'platforms': ['extensions'] |
+ 'platforms': ['extensions'], |
+ 'version': 5, |
+ 'description': u'<code>experimental.history</code>' |
}, |
{ |
'name': 'experimental.power', |
'platforms': ['apps', 'extensions'], |
+ 'version': 5, |
+ 'description': u'<code>experimental.power</code>', |
'last': True |
}], |
- sorted(api_list.get('extensions').get('experimental'))) |
+ sorted(api_list.get('extensions').get('experimental').get('stable'))) |
if __name__ == '__main__': |
unittest.main() |