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

Side by Side Diff: chrome/common/extensions/docs/server2/features_bundle_test.py

Issue 23867003: Docserver: Consolidate features caching and access. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: let's try this again, shall we? 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 unified diff | Download patch
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 json
7 import unittest
8
9 from server_instance import ServerInstance
10 from test_file_system import TestFileSystem
11
12 _TEST_FILESYSTEM = {
13 'api': {
14 '_api_features.json': json.dumps({
15 'audioCapture': {
16 'channel': 'stable',
17 'extension_types': ['platform_app']
18 },
19 'background': [
20 {
21 'channel': 'stable',
22 'extension_types': ['extension']
23 },
24 {
25 'channel': 'stable',
26 'extension_types': ['platform_app'],
27 'whitelist': ['im not here']
28 }
29 ],
30 'omnibox': {
31 'dependencies': ['manifest:omnibox'],
32 'contexts': ['blessed_extension']
33 },
34 'syncFileSystem': {
35 'dependencies': ['permission:syncFileSystem'],
36 'contexts': ['blessed_extension']
37 },
38 'tabs': {
39 'channel': 'stable',
40 'extension_types': ['extension', 'legacy_packaged_app'],
41 'contexts': ['blessed_extension']
42 },
43 'test': {
44 'channel': 'stable',
45 'extension_types': 'all',
46 'contexts': [
47 'blessed_extension', 'unblessed_extension', 'content_script']
48 },
49 'windows': {
50 'dependencies': ['api:tabs'],
51 'contexts': ['blessed_extension']
52 }
53 }),
54 '_manifest_features.json': json.dumps({
55 'app.content_security_policy': {
56 'channel': 'stable',
57 'extension_types': ['platform_app'],
58 'min_manifest_version': 2,
59 'whitelist': ['this isnt happening']
60 },
61 'background': {
62 'channel': 'stable',
63 'extension_types': ['extension', 'legacy_packaged_app', 'hosted_app']
64 },
65 'manifest_version': {
66 'channel': 'stable',
67 'extension_types': 'all'
68 },
69 'omnibox': {
70 'channel': 'stable',
71 'extension_types': ['extension']
72 },
73 'page_action': {
74 'channel': 'stable',
75 'extension_types': ['extension']
76 },
77 'sockets': {
78 'channel': 'dev',
79 'extension_types': ['platform_app']
80 }
81 }),
82 '_permission_features.json': json.dumps({
83 'bluetooth': {
84 'channel': 'dev',
85 'extension_types': ['platform_app']
86 },
87 'power': {
88 'channel': 'stable',
89 'extension_types': [
90 'extension', 'legacy_packaged_app', 'platform_app'
91 ]
92 },
93 'syncFileSystem': {
94 'channel': 'stable',
95 'extension_types': ['platform_app']
96 },
97 'tabs': {
98 'channel': 'stable',
99 'extension_types': ['extension']
100 }
101 })
102 },
103 'docs': {
104 'templates': {
105 'json': {
106 'manifest.json': json.dumps({
107 'background': {
108 'documentation': 'background_pages.html'
109 },
110 'manifest_version': {
111 'documentation': 'manifest/manifest_version.html',
112 'example': 2,
113 'level': 'required'
114 },
115 'page_action': {
116 'documentation': 'pageAction.html',
117 'example': {},
118 'level': 'only_one'
119 }
120 }),
121 'permissions.json': json.dumps({
122 'fakeUnsupportedFeature': {},
123 'syncFileSystem': {
124 'partial': 'permissions/sync_file_system.html'
125 },
126 'tabs': {
127 'partial': 'permissions/tabs.html'
128 },
129 })
130 }
131 }
132 }
133 }
134
135 class FeaturesBundleTest(unittest.TestCase):
136 def setUp(self):
137 self._server = ServerInstance.ForTest(TestFileSystem(_TEST_FILESYSTEM))
138
139 def testManifestFeatures(self):
140 expected_features = {
141 'background': {
142 'name': 'background',
143 'channel': 'stable',
144 'platforms': ['extensions'],
145 'documentation': 'background_pages.html'
146 },
147 'manifest_version': {
148 'name': 'manifest_version',
149 'channel': 'stable',
150 'platforms': ['apps', 'extensions'],
151 'documentation': 'manifest/manifest_version.html',
152 'level': 'required',
153 'example': 2
154 },
155 'omnibox': {
156 'name': 'omnibox',
157 'channel': 'stable',
158 'platforms': ['extensions']
159 },
160 'page_action': {
161 'name': 'page_action',
162 'channel': 'stable',
163 'platforms': ['extensions'],
164 'documentation': 'pageAction.html',
165 'level': 'only_one',
166 'example': {}
167 },
168 'sockets': {
169 'name': 'sockets',
170 'channel': 'dev',
171 'platforms': ['apps']
172 }
173 }
174 self.assertEqual(
175 expected_features,
176 self._server.features_bundle.GetManifestFeatures())
177
178 def testPermissionFeatures(self):
179 expected_features = {
180 'bluetooth': {
181 'name': 'bluetooth',
182 'channel': 'dev',
183 'platforms': ['apps'],
184 },
185 'fakeUnsupportedFeature': {
186 'name': 'fakeUnsupportedFeature',
187 'platforms': []
188 },
189 'power': {
190 'name': 'power',
191 'channel': 'stable',
192 'platforms': ['apps', 'extensions'],
193 },
194 'syncFileSystem': {
195 'name': 'syncFileSystem',
196 'channel': 'stable',
197 'platforms': ['apps'],
198 'partial': 'permissions/sync_file_system.html'
199 },
200 'tabs': {
201 'name': 'tabs',
202 'channel': 'stable',
203 'platforms': ['extensions'],
204 'partial': 'permissions/tabs.html'
205 }
206 }
207 self.assertEqual(
208 expected_features,
209 self._server.features_bundle.GetPermissionFeatures())
210
211 def testAPIFeatures(self):
212 expected_features = {
213 'audioCapture': {
214 'name': 'audioCapture',
215 'channel': 'stable',
216 'platforms': ['apps']
217 },
218 'background': {
219 'name': 'background',
220 'channel': 'stable',
221 'platforms': ['extensions']
222 },
223 'omnibox': {
224 'name': 'omnibox',
225 'platforms': ['extensions'],
226 'contexts': ['blessed_extension'],
227 'dependencies': ['manifest:omnibox']
228 },
229 'syncFileSystem': {
230 'name': 'syncFileSystem',
231 'platforms': ['apps'],
232 'contexts': ['blessed_extension'],
233 'dependencies': ['permission:syncFileSystem']
234 },
235 'tabs': {
236 'name': 'tabs',
237 'channel': 'stable',
238 'platforms': ['extensions'],
239 'contexts': ['blessed_extension'],
240 },
241 'test': {
242 'name': 'test',
243 'channel': 'stable',
244 'platforms': ['apps', 'extensions'],
245 'contexts': [
246 'blessed_extension', 'unblessed_extension', 'content_script'],
247 },
248 'windows': {
249 'name': 'windows',
250 'platforms': ['extensions'],
251 'contexts': ['blessed_extension'],
252 'dependencies': ['api:tabs']
253 }
254 }
255 self.assertEqual(
256 expected_features,
257 self._server.features_bundle.GetAPIFeatures())
258
259 if __name__ == '__main__':
260 unittest.main()
OLDNEW
« no previous file with comments | « chrome/common/extensions/docs/server2/features_bundle.py ('k') | chrome/common/extensions/docs/server2/features_utility.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698