Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4424)

Unified Diff: chrome/common/extensions/docs/server2/api_models_test.py

Issue 46243003: Docserver: Add an APIModels class which tracks both the list of available APIs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: yoz Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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()
« no previous file with comments | « chrome/common/extensions/docs/server2/api_models.py ('k') | chrome/common/extensions/docs/server2/server_instance.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698