Chromium Code Reviews| Index: chrome/common/extensions/docs/server2/availability_data_source_test.py |
| diff --git a/chrome/common/extensions/docs/server2/availability_data_source_test.py b/chrome/common/extensions/docs/server2/availability_data_source_test.py |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..2eba2a45f9b9ace8e94c7e33a78b8a2321331457 |
| --- /dev/null |
| +++ b/chrome/common/extensions/docs/server2/availability_data_source_test.py |
| @@ -0,0 +1,96 @@ |
| +#!/usr/bin/env python |
| +# Copyright (c) 2012 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. |
| + |
| +from api_data_source import APIDataSource |
| +from availability_data_source import AvailabilityDataSource |
| +from compiled_file_system import CompiledFileSystem |
| +from in_memory_object_store import InMemoryObjectStore |
| +import json |
|
cduvall
2013/03/21 18:43:53
separate python stdlib includes from your own
epeterson
2013/03/25 19:35:11
Done.
|
| +from memcache_file_system import MemcacheFileSystem |
| +import os |
| +from test_file_system import TestFileSystem |
| +import unittest |
| + |
| +_TEST_DIR = 'test_data/test_avail/' |
| + |
| +_FILE_SYSTEMS = json.load( |
| + open(os.path.join(_TEST_DIR, 'test_avail_file_system.json'), 'r')) |
| + |
| +_BRANCH_DICT = json.load( |
| + open(os.path.join(_TEST_DIR, 'test_avail_branch_list.json'), 'r')) |
| + |
| +class _FakeSamplesDataSource(object): |
| + def Create(self, request): |
| + return {} |
| + |
| +class _FakeRefResolver(object): |
| + def Create(self, request): |
| + return {} |
| + |
| +class _FakeChromeVersionDataSource(object): |
| + def GetDataSourceForVersion(self, version_number): |
| + branch_number = _BRANCH_DICT[version_number] |
| + branch_api_data_source = self._CreateMemcacheForBranch(branch_number) |
| + return branch_api_data_source |
| + |
| + def _CreateMemcacheForBranch(self, branch_number): |
| + branch_memcache = InMemoryObjectStore(branch_number) |
| + file_system = MemcacheFileSystem( |
| + TestFileSystem(_FILE_SYSTEMS[branch_number]), |
| + branch_memcache) |
| + cache_factory = CompiledFileSystem.Factory( |
| + file_system, |
| + branch_memcache, |
| + branch_number) |
| + api_data_source_factory = APIDataSource.Factory(cache_factory, 'api') |
| + api_data_source_factory.SetReferenceResolverFactory(_FakeRefResolver()) |
| + api_data_source_factory.SetSamplesDataSourceFactory( |
| + _FakeSamplesDataSource()) |
| + return api_data_source_factory.Create(None) |
| + |
| +class AvailabilityDataSourceTest(unittest.TestCase): |
| + def setUp(self): |
| + self._availability_ds = AvailabilityDataSource( |
| + _FakeChromeVersionDataSource(), |
| + '26', |
| + InMemoryObjectStore('')) |
| + APIDataSource.Factory._LoadJsonAPI = self._LoadJsonAPI |
| + APIDataSource.Factory._LoadIdlAPI = self._LoadIdlAPI |
| + |
| + ''' These will prevent an api_data_source from actually loading an api, |
| + since that doesn't need to happen here; we're only interested in whether or |
| + not the api is available to be loaded. |
| + ''' |
| + def _LoadJsonAPI(self, api, disable_refs): |
|
cduvall
2013/03/21 18:43:53
Move these out of the class
epeterson
2013/03/25 19:35:11
Done.
|
| + return {} |
| + def _LoadIdlAPI(self, api, disable_refs): |
| + return {} |
| + |
| + def testFindEarliestAvailability(self): |
| + self.assertEquals('27', |
| + self._availability_ds.FindEarliestAvailability('gobblediegook')) |
| + self.assertEquals('21', |
| + self._availability_ds.FindEarliestAvailability('alarms')) |
| + self.assertEquals('18', |
| + self._availability_ds.FindEarliestAvailability('bookmarks')) |
| + self.assertEquals('18', |
| + self._availability_ds.FindEarliestAvailability('browserAction')) |
| + self.assertEquals('18', |
| + self._availability_ds.FindEarliestAvailability('contextMenus')) |
| + self.assertEquals('18', |
| + self._availability_ds.FindEarliestAvailability('cookies')) |
| + self.assertEquals('21', |
| + self._availability_ds.FindEarliestAvailability('fileSystem')) |
| + self.assertEquals('24', |
| + self._availability_ds.FindEarliestAvailability('pushMessaging')) |
| + self.assertEquals('21', |
| + self._availability_ds.FindEarliestAvailability('runtime')) |
| + self.assertEquals('19', |
| + self._availability_ds.FindEarliestAvailability('storage')) |
| + self.assertEquals('18', |
| + self._availability_ds.FindEarliestAvailability('tabs')) |
| + |
| +if __name__ == '__main__': |
| + unittest.main() |