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

Side by Side 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, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 import os
7 import json
8 import unittest
9
10 from api_models import APIModels
11 from compiled_file_system import CompiledFileSystem
12 from features_bundle import FeaturesBundle
13 from file_system import FileNotFoundError
14 from object_store_creator import ObjectStoreCreator
15 from test_file_system import TestFileSystem
16 from test_util import ReadFile
17
18
19 _TEST_DATA = {
20 'api': {
21 'devtools': {
22 'inspected_window.json': ReadFile(os.path.join(
23 'api', 'devtools', 'inspected_window.json')),
24 },
25 '_api_features.json': json.dumps({
26 'alarms': {},
27 'declarativeWebRequest': {},
28 'devtools.inspectedWindow': {},
29 'experimental.accessibility': {},
30 'storage': {},
31 }),
32 '_manifest_features.json': '{}',
33 '_permission_features.json': '{}',
34 'alarms.idl': ReadFile(os.path.join('api', 'alarms.idl')),
35 'declarative_web_request.json': ReadFile(os.path.join(
36 'api', 'declarative_web_request.json')),
37 'experimental_accessibility.json': ReadFile(os.path.join(
38 'api', 'experimental_accessibility.json')),
39 'page_action.json': ReadFile(os.path.join('api', 'page_action.json')),
40 },
41 'docs': {
42 'templates': {
43 'json': {
44 'manifest.json': '{}',
45 'permissions.json': '{}',
46 }
47 }
48 },
49 }
50
51
52 class APIModelsTest(unittest.TestCase):
53 def setUp(self):
54 object_store_creator = ObjectStoreCreator.ForTest()
55 compiled_fs_factory = CompiledFileSystem.Factory(object_store_creator)
56 file_system = TestFileSystem(_TEST_DATA)
57 features_bundle = FeaturesBundle(
58 file_system, compiled_fs_factory, object_store_creator)
59 self._api_models = APIModels(
60 features_bundle, compiled_fs_factory, file_system)
61
62 def testGetNames(self):
63 self.assertEqual(
64 ['alarms', 'declarativeWebRequest', 'devtools.inspectedWindow',
65 'experimental.accessibility', 'storage'],
66 sorted(self._api_models.GetNames()))
67
68 def testGetModel(self):
69 def get_model_name(api_name):
70 return self._api_models.GetModel(api_name).Get().name
71 self.assertEqual('devtools.inspectedWindow',
72 get_model_name('devtools.inspectedWindow'))
73 self.assertEqual('devtools.inspectedWindow',
74 get_model_name('devtools/inspected_window.json'))
75 self.assertEqual('devtools.inspectedWindow',
76 get_model_name('api/devtools/inspected_window.json'))
77 self.assertEqual('alarms', get_model_name('alarms'))
78 self.assertEqual('alarms', get_model_name('alarms.idl'))
79 self.assertEqual('alarms', get_model_name('api/alarms.idl'))
80 self.assertEqual('declarativeWebRequest',
81 get_model_name('declarativeWebRequest'))
82 self.assertEqual('declarativeWebRequest',
83 get_model_name('declarative_web_request.json'))
84 self.assertEqual('declarativeWebRequest',
85 get_model_name('api/declarative_web_request.json'))
86 self.assertEqual('experimental.accessibility',
87 get_model_name('experimental.accessibility'))
88 self.assertEqual('experimental.accessibility',
89 get_model_name('experimental_accessibility.json'))
90 self.assertEqual('experimental.accessibility',
91 get_model_name('api/experimental_accessibility.json'))
92 self.assertEqual('pageAction', get_model_name('pageAction'))
93 self.assertEqual('pageAction', get_model_name('page_action.json'))
94 self.assertEqual('pageAction', get_model_name('api/page_action.json'))
95
96 def testGetNonexistentModel(self):
97 self.assertRaises(FileNotFoundError,
98 self._api_models.GetModel('notfound').Get)
99 self.assertRaises(FileNotFoundError,
100 self._api_models.GetModel('notfound.json').Get)
101 self.assertRaises(FileNotFoundError,
102 self._api_models.GetModel('api/notfound.json').Get)
103 self.assertRaises(FileNotFoundError,
104 self._api_models.GetModel('api/alarms.json').Get)
105 self.assertRaises(FileNotFoundError,
106 self._api_models.GetModel('storage').Get)
107 self.assertRaises(FileNotFoundError,
108 self._api_models.GetModel('api/storage.json').Get)
109 self.assertRaises(FileNotFoundError,
110 self._api_models.GetModel('api/storage.idl').Get)
111
112
113 if __name__ == '__main__':
114 unittest.main()
OLDNEW
« 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