Chromium Code Reviews| 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..56d87ac8dee5ef7ea3cbb00e47f99d237448cde1 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,51 +59,98 @@ _TEST_API_FEATURES = _ToTestFeatures([ |
| ('storage', ['apps', 'extensions']) |
| ]) |
| +_TEST_API_Data = { |
| + 'alarms': {'description': u'<code>alarms</code>'}, |
| + 'app.window': {'description': u'<code>app.window</code>'}, |
| + 'browserAction': {'description': u'<code>browserAction</code>'}, |
| + 'experimental.bluetooth': {'description': |
| + u'<code>experimental.bluetooth</code>'}, |
| + 'experimental.history': {'description': |
| + u'<code>experimental.history</code>'}, |
| + 'experimental.power': {'description': |
| + u'<code>experimental.power</code>'}, |
| + 'infobars': {'description': u'<code>infobars</code>'}, |
| + 'something_internal': {'description': u'<code>something_internal</code>'}, |
| + 'something_else_internal': {'description': |
| + u'<code>something_else_internal</code>'}, |
| + 'storage': {'description': u'<code>storage</code>'} |
| + } |
| + |
| class _FakeFeaturesBundle(object): |
| def GetAPIFeatures(self): |
| return _TEST_API_FEATURES |
| +class FakeModel(): |
| + def __init__(self, key): |
| + self.data = _TEST_API_Data |
| + self.key = key |
| + |
| + def Get(self): |
| + if self.key not in self.data: |
| + raise FileNotFoundError(self.key) |
| + self.description = self.data[self.key]['description'] |
| + return self |
| + |
| +class FakeAPIModels(): |
| + def GetModel(self, key): |
| + return FakeModel(key) |
| + |
| + |
| +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, |
| + FakeAPIModels(), |
| + FakeAvailabilityFinder()) |
|
not at google - send to devlin
2013/11/05 01:02:02
Ok, so prompted by this I've rewritten this test a
hukun
2013/11/06 08:56:19
OK, have merged.
|
| 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>' |
|
not at google - send to devlin
2013/11/05 01:02:02
Modify the test data (_api_features.json file) so
hukun
2013/11/06 08:56:19
Done
|
| }, |
| { |
| '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'], |
| + 'description': u'<code>experimental.bluetooth</code>' |
| }, |
| { |
| 'name': 'experimental.power', |
| 'platforms': ['apps', 'extensions'], |
| - 'last': True |
| + 'last': True, |
| + 'description': u'<code>experimental.power</code>' |
| }], |
| sorted(api_list.get('apps').get('experimental'))) |
| @@ -112,33 +159,43 @@ class APIListDataSourceTest(unittest.TestCase): |
| 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'], |
| + 'description': u'<code>experimental.history</code>' |
| }, |
| { |
| 'name': 'experimental.power', |
| 'platforms': ['apps', 'extensions'], |
| + 'description': u'<code>experimental.power</code>', |
| 'last': True |
| }], |
| sorted(api_list.get('extensions').get('experimental'))) |