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 |
new file mode 100755 |
index 0000000000000000000000000000000000000000..7a710d0715477db7c008e9644e91e34578296b5a |
--- /dev/null |
+++ b/chrome/common/extensions/docs/server2/api_list_data_source_test.py |
@@ -0,0 +1,86 @@ |
+#!/usr/bin/env python |
+# 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 unittest |
+from api_list_data_source import APIListDataSource |
+from compiled_file_system import CompiledFileSystem |
+from copy import deepcopy |
+from test_file_system import TestFileSystem |
+ |
+def _ToTestData(obj): |
+ '''Transforms |obj| into test data by turning a list of files into an object |
+ mapping that file to its contents (derived from its name). |
+ ''' |
+ return (dict((name, name) for name in obj) if isinstance(obj, list) else |
+ dict((key, _ToTestData(value)) for key, value in obj.items())) |
+ |
+_TEST_DATA = _ToTestData({ |
+ 'api': [ |
+ 'alarms.idl', |
+ 'app_window.idl', |
+ 'browser_action.json', |
+ 'experimental_bluetooth.idl', |
+ 'experimental_history.idl', |
+ 'experimental_infobars.idl', |
+ 'experimental_power.idl', |
+ 'something_internal.idl', |
+ 'something_else_internal.json', |
+ 'storage.json', |
+ ], |
+ 'public': { |
+ 'apps': [ |
+ 'alarms.html', |
+ 'app_window.html', |
+ 'experimental_bluetooth.html', |
+ 'experimental_power.html', |
+ 'storage.html', |
+ ], |
+ 'extensions': [ |
+ 'alarms.html', |
+ 'browserAction.html', |
+ 'experimental_history.html', |
+ 'experimental_infobars.html', |
+ 'experimental_power.html', |
+ 'storage.html', |
+ ], |
+ }, |
+}) |
+ |
+class APIListDataSourceTest(unittest.TestCase): |
+ def setUp(self): |
+ self._factory = APIListDataSource.Factory( |
+ CompiledFileSystem.Factory(TestFileSystem(deepcopy(_TEST_DATA))), |
+ 'api', |
+ 'public') |
+ |
+ def testApps(self): |
+ api_list = self._factory.Create() |
+ self.assertEqual([{'name': 'alarms'}, |
+ {'name': 'app.window'}, |
+ {'name': 'storage', 'last': True}], |
+ api_list.get('apps').get('chrome')) |
+ |
+ def testExperimentalApps(self): |
+ api_list = self._factory.Create() |
+ self.assertEqual([{'name': 'experimental.bluetooth'}, |
+ {'name': 'experimental.power', 'last': True}], |
+ sorted(api_list.get('apps').get('experimental'))) |
+ |
+ def testExtensions(self): |
+ api_list = self._factory.Create() |
+ self.assertEqual([{'name': 'alarms'}, |
+ {'name': 'browserAction'}, |
+ {'name': 'storage', 'last': True}], |
+ sorted(api_list.get('extensions').get('chrome'))) |
+ |
+ def testExperimentalApps(self): |
+ api_list = self._factory.Create() |
+ self.assertEqual([{'name': 'experimental.history'}, |
+ {'name': 'experimental.infobars'}, |
+ {'name': 'experimental.power', 'last': True}], |
+ sorted(api_list.get('extensions').get('experimental'))) |
+ |
+if __name__ == '__main__': |
+ unittest.main() |