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 020d19b9662a92f0efb40e9447390b5edcb10aea..3eb79964a017194a28692e2dbad5da5874353093 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,13 +2,16 @@ |
| # 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 |
| - |
| +import json |
| from api_list_data_source import APIListDataSource |
| from server_instance import ServerInstance |
| +from compiled_file_system import CompiledFileSystem |
| +from copy import deepcopy |
| +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): |
| @@ -35,9 +38,31 @@ _TEST_API_FEATURES = _ToTestFeatures([ |
| ('infobars', ['extensions']), |
| ('something_internal', ['apps']), |
| ('something_else_internal', ['extensions']), |
| - ('storage', ['apps', 'extensions']) |
| + ('storage', ['apps', 'extensions']), |
| + ('sockets.udp', ['apps', 'extensions']) |
| ]) |
| +_TEST_API_Data = { |
|
not at google - send to devlin
2013/11/07 23:52:18
DATA not Data
hukun
2013/11/08 06:23:39
Done
|
| + '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>'}, |
| + 'sockets.udp': {'description': u'<code>sockets.udp</code>'} |
| + } |
| + |
| +_TEST_API_CHANNEL = { |
| + 'sockets.udp': {'channel': 'dev'} |
| + } |
|
not at google - send to devlin
2013/11/07 23:52:18
each of these constants need 2 newlines between th
hukun
2013/11/08 06:23:39
Done
|
| _TEST_DATA = { |
| 'api': { |
| @@ -58,6 +83,7 @@ _TEST_DATA = { |
| 'experimental_bluetooth.html', |
| 'experimental_power.html', |
| 'storage.html', |
| + 'sockets_udp.html' |
| ]), |
| 'extensions': _ToTestData([ |
| 'alarms.html', |
| @@ -66,12 +92,40 @@ _TEST_DATA = { |
| 'experimental_power.html', |
| 'infobars.html', |
| 'storage.html', |
| + 'sockets_udp.html' |
| ]), |
| }, |
| }, |
| }, |
| } |
| +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) |
| + |
| + def GetNames(self): |
| + return _TEST_API_Data.keys() |
| + |
| + |
| +class FakeAvailabilityFinder(object): |
| + def __init__(self): |
| + self.data = _TEST_API_CHANNEL |
| + |
| + def GetApiAvailability(self, key): |
| + if key not in self.data: |
| + return ChannelInfo('stable', '396', 5) |
| + return ChannelInfo(self.data[key]['channel'], '', 0) |
| class APIListDataSourceTest(unittest.TestCase): |
| def setUp(self): |
| @@ -80,75 +134,108 @@ class APIListDataSourceTest(unittest.TestCase): |
| server_instance.compiled_fs_factory, |
| server_instance.host_file_system_provider.GetTrunk(), |
| server_instance.features_bundle, |
| - server_instance.object_store_creator) |
| + server_instance.object_store_creator, |
| + FakeAPIModels(), |
|
not at google - send to devlin
2013/11/07 23:52:18
can you use server_instance.api_models here?
hukun
2013/11/08 06:23:39
Done
|
| + FakeAvailabilityFinder()) |
|
not at google - send to devlin
2013/11/07 23:52:18
and server_instance.availability_finder here? you
hukun
2013/11/08 06:23:39
Done
|
| def testApps(self): |
| api_list = self._factory.Create() |
| - 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')) |
| + self.assertEqual({ |
| + 'stable': [ |
| + { |
| + 'name': 'alarms', |
| + 'platforms': ['apps', 'extensions'], |
| + 'version': 5, |
| + 'description': u'<code>alarms</code>' |
| + }, |
| + { |
| + 'name': 'app.window', |
| + 'platforms': ['apps'], |
| + 'version': 5, |
| + 'description': u'<code>app.window</code>' |
| + }, |
| + { |
| + 'name': 'storage', |
| + 'platforms': ['apps', 'extensions'], |
| + 'last': True, |
| + 'version': 5, |
| + 'description': u'<code>storage</code>' |
| + }], |
| + 'dev': [ |
| + { |
| + 'name': 'sockets.udp', |
| + 'platforms': ['apps', 'extensions'], |
| + 'last': True, |
| + 'description': u'<code>sockets.udp</code>' |
| + }], 'beta': [], 'trunk': []}, api_list.get('apps').get('chrome')) |
|
not at google - send to devlin
2013/11/07 23:52:18
nice to still ahve the 'beta' and 'trunk' lists on
hukun
2013/11/08 06:23:39
Done
|
| 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 |
| - }], |
| - sorted(api_list.get('apps').get('experimental'))) |
| + 'last': True, |
| + 'description': u'<code>experimental.power</code>' |
| + }], api_list.get('apps').get('experimental')) |
| def testExtensions(self): |
| api_list = self._factory.Create() |
| - 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'))) |
| + self.assertEqual({ |
| + 'stable': [ |
| + { |
| + 'name': 'alarms', |
| + 'platforms': ['apps', 'extensions'], |
| + 'version': 5, |
| + 'description': u'<code>alarms</code>' |
| + }, |
| + { |
| + 'name': 'browserAction', |
| + 'platforms': ['extensions'], |
| + 'version': 5, |
| + 'description': u'<code>browserAction</code>' |
| + }, |
| + { |
| + 'name': 'infobars', |
| + 'platforms': ['extensions'], |
| + 'version': 5, |
| + 'description': u'<code>infobars</code>' |
| + }, |
| + { |
| + 'name': 'storage', |
| + 'platforms': ['apps', 'extensions'], |
| + 'last': True, |
| + 'version': 5, |
| + 'description': u'<code>storage</code>' |
| + }], |
| + 'dev': [ |
| + { |
| + 'name': 'sockets.udp', |
| + 'platforms': ['apps', 'extensions'], |
| + 'last': True, |
| + 'description': u'<code>sockets.udp</code>' |
| + }], 'beta': [], 'trunk': []} , |
| + api_list.get('extensions').get('chrome')) |
| 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'))) |
| + }], api_list.get('extensions').get('experimental')) |
| if __name__ == '__main__': |
| unittest.main() |