| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 import json | 6 import json |
| 7 import os | 7 import os |
| 8 import sys | 8 import sys |
| 9 import unittest | 9 import unittest |
| 10 | 10 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 from test_util import Server2Path | 31 from test_util import Server2Path |
| 32 from third_party.json_schema_compiler.memoize import memoize | 32 from third_party.json_schema_compiler.memoize import memoize |
| 33 | 33 |
| 34 | 34 |
| 35 class _FakeTemplateCache(object): | 35 class _FakeTemplateCache(object): |
| 36 | 36 |
| 37 def GetFromFile(self, key): | 37 def GetFromFile(self, key): |
| 38 return Future(value='handlebar %s' % key) | 38 return Future(value='handlebar %s' % key) |
| 39 | 39 |
| 40 | 40 |
| 41 class _FakeAvailabilityFinder(object): | |
| 42 def __init__(self, fake_availability): | |
| 43 self._fake_availability = fake_availability | |
| 44 | |
| 45 def GetAPIAvailability(self, api_name): | |
| 46 return self._fake_availability | |
| 47 | |
| 48 def GetAPINodeAvailability(self, api_name): | |
| 49 '''The tests that use this fake class don't | |
| 50 use the node availability, so just return a | |
| 51 dummy graph. | |
| 52 ''' | |
| 53 return APISchemaGraph(_graph={'dummy': 'graph'}) | |
| 54 | |
| 55 | |
| 56 class _FakeFeaturesBundle(object): | 41 class _FakeFeaturesBundle(object): |
| 57 def GetAPIFeatures(self): | 42 def GetAPIFeatures(self): |
| 58 return Future(value={ | 43 return Future(value={ |
| 59 'bluetooth': {'value': True}, | 44 'bluetooth': {'value': True}, |
| 60 'contextMenus': {'value': True}, | 45 'contextMenus': {'value': True}, |
| 61 'jsonStableAPI': {'value': True}, | 46 'jsonStableAPI': {'value': True}, |
| 62 'idle': {'value': True}, | 47 'idle': {'value': True}, |
| 63 'input.ime': {'value': True}, | 48 'input.ime': {'value': True}, |
| 64 'tabs': {'value': True} | 49 'tabs': {'value': True} |
| 65 }) | 50 }) |
| 66 | 51 |
| 67 | 52 |
| 68 class _FakeAvailabilityFinder(object): | 53 class _FakeAvailabilityFinder(object): |
| 69 def __init__(self, fake_availability): | 54 def __init__(self, fake_availability): |
| 70 self._fake_availability = fake_availability | 55 self._fake_availability = fake_availability |
| 71 | 56 |
| 72 def GetAPIAvailability(self, api_name): | 57 def GetAPIAvailability(self, api_name): |
| 73 return self._fake_availability | 58 return self._fake_availability |
| 74 | 59 |
| 75 def GetAPINodeAvailability(self, api_name): | 60 def GetAPINodeAvailability(self, api_name): |
| 76 '''The tests that use this fake class don't | 61 schema_graph = APISchemaGraph() |
| 77 use the node availability, so just return a | 62 api_graph = APISchemaGraph(json.loads( |
| 78 dummy graph. | 63 CANNED_TRUNK_FS_DATA['api'][api_name + '.json'])) |
| 79 ''' | 64 # Give the graph fake ChannelInfo; it's not used in tests. |
| 80 return APISchemaGraph(_graph={'dummy': 'graph'}) | 65 schema_graph.Update(api_graph, annotation=ChannelInfo('stable', '28', 28)) |
| 66 return schema_graph |
| 81 | 67 |
| 82 | 68 |
| 83 class APIDataSourceTest(unittest.TestCase): | 69 class APIDataSourceTest(unittest.TestCase): |
| 84 def setUp(self): | 70 def setUp(self): |
| 85 self._base_path = Server2Path('test_data', 'test_json') | 71 self._base_path = Server2Path('test_data', 'test_json') |
| 86 | 72 |
| 87 server_instance = ServerInstance.ForTest( | 73 server_instance = ServerInstance.ForTest( |
| 88 TestFileSystem(CANNED_TRUNK_FS_DATA, relative_to=CHROME_EXTENSIONS)) | 74 TestFileSystem(CANNED_TRUNK_FS_DATA, relative_to=CHROME_EXTENSIONS)) |
| 89 file_system = server_instance.host_file_system_provider.GetTrunk() | 75 file_system = server_instance.host_file_system_provider.GetTrunk() |
| 90 self._json_cache = server_instance.compiled_fs_factory.ForJson(file_system) | 76 self._json_cache = server_instance.compiled_fs_factory.ForJson(file_system) |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 self._json_cache, | 141 self._json_cache, |
| 156 _FakeTemplateCache(), | 142 _FakeTemplateCache(), |
| 157 self._features_bundle, | 143 self._features_bundle, |
| 158 None).ToDict() | 144 None).ToDict() |
| 159 self.assertEquals(expected_json, dict_) | 145 self.assertEquals(expected_json, dict_) |
| 160 | 146 |
| 161 def testAddRules(self): | 147 def testAddRules(self): |
| 162 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability) | 148 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability) |
| 163 dict_ = _JSCModel(self._api_models.GetModel('add_rules_tester').Get(), | 149 dict_ = _JSCModel(self._api_models.GetModel('add_rules_tester').Get(), |
| 164 fake_avail_finder, | 150 fake_avail_finder, |
| 165 #self._fake_availability, | |
| 166 self._json_cache, | 151 self._json_cache, |
| 167 _FakeTemplateCache(), | 152 _FakeTemplateCache(), |
| 168 self._features_bundle, | 153 self._features_bundle, |
| 169 self._FakeLoadAddRulesSchema()).ToDict() | 154 self._FakeLoadAddRulesSchema()).ToDict() |
| 170 | 155 |
| 171 # Check that the first event has the addRulesFunction defined. | 156 # Check that the first event has the addRulesFunction defined. |
| 172 self.assertEquals('add_rules_tester', dict_['name']) | 157 self.assertEquals('add_rules_tester', dict_['name']) |
| 173 self.assertEquals('rules', dict_['events'][0]['name']) | 158 self.assertEquals('rules', dict_['events'][0]['name']) |
| 174 self.assertEquals('notable_name_to_check_for', | 159 self.assertEquals('notable_name_to_check_for', |
| 175 dict_['events'][0]['byName']['addRules'][ | 160 dict_['events'][0]['byName']['addRules'][ |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 | 338 |
| 354 # Test nodes that have the same availability as their parent. | 339 # Test nodes that have the same availability as their parent. |
| 355 assertEquals('tabs.get', model_dict['functions'][1]['availability']) | 340 assertEquals('tabs.get', model_dict['functions'][1]['availability']) |
| 356 # Test nodes with varying availabilities. | 341 # Test nodes with varying availabilities. |
| 357 assertEquals('tabs.getCurrent', | 342 assertEquals('tabs.getCurrent', |
| 358 model_dict['functions'][0]['availability']['version']) | 343 model_dict['functions'][0]['availability']['version']) |
| 359 | 344 |
| 360 | 345 |
| 361 if __name__ == '__main__': | 346 if __name__ == '__main__': |
| 362 unittest.main() | 347 unittest.main() |
| OLD | NEW |