Index: chrome/common/extensions/docs/server2/api_models_test.py |
diff --git a/chrome/common/extensions/docs/server2/api_models_test.py b/chrome/common/extensions/docs/server2/api_models_test.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..ff191d001aaa4feb20d7fa6fc85c7f3676376420 |
--- /dev/null |
+++ b/chrome/common/extensions/docs/server2/api_models_test.py |
@@ -0,0 +1,114 @@ |
+#!/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 os |
+import json |
+import unittest |
+ |
+from api_models import APIModels |
+from compiled_file_system import CompiledFileSystem |
+from features_bundle import FeaturesBundle |
+from file_system import FileNotFoundError |
+from object_store_creator import ObjectStoreCreator |
+from test_file_system import TestFileSystem |
+from test_util import ReadFile |
+ |
+ |
+_TEST_DATA = { |
+ 'api': { |
+ 'devtools': { |
+ 'inspected_window.json': ReadFile(os.path.join( |
+ 'api', 'devtools', 'inspected_window.json')), |
+ }, |
+ '_api_features.json': json.dumps({ |
+ 'alarms': {}, |
+ 'declarativeWebRequest': {}, |
+ 'devtools.inspectedWindow': {}, |
+ 'experimental.accessibility': {}, |
+ 'storage': {}, |
+ }), |
+ '_manifest_features.json': '{}', |
+ '_permission_features.json': '{}', |
+ 'alarms.idl': ReadFile(os.path.join('api', 'alarms.idl')), |
+ 'declarative_web_request.json': ReadFile(os.path.join( |
+ 'api', 'declarative_web_request.json')), |
+ 'experimental_accessibility.json': ReadFile(os.path.join( |
+ 'api', 'experimental_accessibility.json')), |
+ 'page_action.json': ReadFile(os.path.join('api', 'page_action.json')), |
+ }, |
+ 'docs': { |
+ 'templates': { |
+ 'json': { |
+ 'manifest.json': '{}', |
+ 'permissions.json': '{}', |
+ } |
+ } |
+ }, |
+} |
+ |
+ |
+class APIModelsTest(unittest.TestCase): |
+ def setUp(self): |
+ object_store_creator = ObjectStoreCreator.ForTest() |
+ compiled_fs_factory = CompiledFileSystem.Factory(object_store_creator) |
+ file_system = TestFileSystem(_TEST_DATA) |
+ features_bundle = FeaturesBundle( |
+ file_system, compiled_fs_factory, object_store_creator) |
+ self._api_models = APIModels( |
+ features_bundle, compiled_fs_factory, file_system) |
+ |
+ def testGetNames(self): |
+ self.assertEqual( |
+ ['alarms', 'declarativeWebRequest', 'devtools.inspectedWindow', |
+ 'experimental.accessibility', 'storage'], |
+ sorted(self._api_models.GetNames())) |
+ |
+ def testGetModel(self): |
+ def get_model_name(api_name): |
+ return self._api_models.GetModel(api_name).Get().name |
+ self.assertEqual('devtools.inspectedWindow', |
+ get_model_name('devtools.inspectedWindow')) |
+ self.assertEqual('devtools.inspectedWindow', |
+ get_model_name('devtools/inspected_window.json')) |
+ self.assertEqual('devtools.inspectedWindow', |
+ get_model_name('api/devtools/inspected_window.json')) |
+ self.assertEqual('alarms', get_model_name('alarms')) |
+ self.assertEqual('alarms', get_model_name('alarms.idl')) |
+ self.assertEqual('alarms', get_model_name('api/alarms.idl')) |
+ self.assertEqual('declarativeWebRequest', |
+ get_model_name('declarativeWebRequest')) |
+ self.assertEqual('declarativeWebRequest', |
+ get_model_name('declarative_web_request.json')) |
+ self.assertEqual('declarativeWebRequest', |
+ get_model_name('api/declarative_web_request.json')) |
+ self.assertEqual('experimental.accessibility', |
+ get_model_name('experimental.accessibility')) |
+ self.assertEqual('experimental.accessibility', |
+ get_model_name('experimental_accessibility.json')) |
+ self.assertEqual('experimental.accessibility', |
+ get_model_name('api/experimental_accessibility.json')) |
+ self.assertEqual('pageAction', get_model_name('pageAction')) |
+ self.assertEqual('pageAction', get_model_name('page_action.json')) |
+ self.assertEqual('pageAction', get_model_name('api/page_action.json')) |
+ |
+ def testGetNonexistentModel(self): |
+ self.assertRaises(FileNotFoundError, |
+ self._api_models.GetModel('notfound').Get) |
+ self.assertRaises(FileNotFoundError, |
+ self._api_models.GetModel('notfound.json').Get) |
+ self.assertRaises(FileNotFoundError, |
+ self._api_models.GetModel('api/notfound.json').Get) |
+ self.assertRaises(FileNotFoundError, |
+ self._api_models.GetModel('api/alarms.json').Get) |
+ self.assertRaises(FileNotFoundError, |
+ self._api_models.GetModel('storage').Get) |
+ self.assertRaises(FileNotFoundError, |
+ self._api_models.GetModel('api/storage.json').Get) |
+ self.assertRaises(FileNotFoundError, |
+ self._api_models.GetModel('api/storage.idl').Get) |
+ |
+ |
+if __name__ == '__main__': |
+ unittest.main() |