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

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

Issue 375133002: Docserver: Display API features that are available to content scripts (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 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
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import json 6 import json
7 import os 7 import os
8 import sys 8 import sys
9 import unittest 9 import unittest
10 10
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 events['types'][0]['functions'].append(add_rules) 127 events['types'][0]['functions'].append(add_rules)
128 self.assertEqual(add_rules, 128 self.assertEqual(add_rules,
129 _GetEventByNameFromEvents(events)['addRules']) 129 _GetEventByNameFromEvents(events)['addRules'])
130 130
131 events['types'][0]['functions'].append(add_rules) 131 events['types'][0]['functions'].append(add_rules)
132 # Duplicates are an error. 132 # Duplicates are an error.
133 self.assertRaises(AssertionError, _GetEventByNameFromEvents, events) 133 self.assertRaises(AssertionError, _GetEventByNameFromEvents, events)
134 134
135 def testCreateId(self): 135 def testCreateId(self):
136 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability) 136 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability)
137 dict_ = _JSCModel(self._api_models.GetModel('tester').Get(), 137 dict_ = _JSCModel(self._api_models,
138 self._api_models.GetModel('tester').Get(),
138 fake_avail_finder, 139 fake_avail_finder,
139 self._json_cache, 140 self._json_cache,
140 _FakeTemplateCache(), 141 _FakeTemplateCache(),
141 self._features_bundle, 142 self._features_bundle,
142 None).ToDict() 143 None).ToDict()
143 self.assertEquals('type-TypeA', dict_['types'][0]['id']) 144 self.assertEquals('type-TypeA', dict_['types'][0]['id'])
144 self.assertEquals('property-TypeA-b', 145 self.assertEquals('property-TypeA-b',
145 dict_['types'][0]['properties'][0]['id']) 146 dict_['types'][0]['properties'][0]['id'])
146 self.assertEquals('method-get', dict_['functions'][0]['id']) 147 self.assertEquals('method-get', dict_['functions'][0]['id'])
147 self.assertEquals('event-EventA', dict_['events'][0]['id']) 148 self.assertEquals('event-EventA', dict_['events'][0]['id'])
148 149
149 # TODO(kalman): re-enable this when we have a rebase option. 150 # TODO(kalman): re-enable this when we have a rebase option.
150 def DISABLED_testToDict(self): 151 def DISABLED_testToDict(self):
151 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability) 152 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability)
152 expected_json = self._LoadJSON('expected_tester.json') 153 expected_json = self._LoadJSON('expected_tester.json')
153 dict_ = _JSCModel(self._api_models.GetModel('tester').Get(), 154 dict_ = _JSCModel(self._api_models,
155 self._api_models.GetModel('tester').Get(),
154 fake_avail_finder, 156 fake_avail_finder,
155 self._json_cache, 157 self._json_cache,
156 _FakeTemplateCache(), 158 _FakeTemplateCache(),
157 self._features_bundle, 159 self._features_bundle,
158 None).ToDict() 160 None).ToDict()
159 self.assertEquals(expected_json, dict_) 161 self.assertEquals(expected_json, dict_)
160 162
161 def testAddRules(self): 163 def testAddRules(self):
162 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability) 164 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability)
163 dict_ = _JSCModel(self._api_models.GetModel('add_rules_tester').Get(), 165 dict_ = _JSCModel(self._api_models,
166 self._api_models.GetModel('add_rules_tester').Get(),
164 fake_avail_finder, 167 fake_avail_finder,
165 #self._fake_availability, 168 #self._fake_availability,
166 self._json_cache, 169 self._json_cache,
167 _FakeTemplateCache(), 170 _FakeTemplateCache(),
168 self._features_bundle, 171 self._features_bundle,
169 self._FakeLoadAddRulesSchema()).ToDict() 172 self._FakeLoadAddRulesSchema()).ToDict()
170 173
171 # Check that the first event has the addRulesFunction defined. 174 # Check that the first event has the addRulesFunction defined.
172 self.assertEquals('add_rules_tester', dict_['name']) 175 self.assertEquals('add_rules_tester', dict_['name'])
173 self.assertEquals('rules', dict_['events'][0]['name']) 176 self.assertEquals('rules', dict_['events'][0]['name'])
174 self.assertEquals('notable_name_to_check_for', 177 self.assertEquals('notable_name_to_check_for',
175 dict_['events'][0]['byName']['addRules'][ 178 dict_['events'][0]['byName']['addRules'][
176 'parameters'][0]['name']) 179 'parameters'][0]['name'])
177 180
178 # Check that the second event has addListener defined. 181 # Check that the second event has addListener defined.
179 self.assertEquals('noRules', dict_['events'][1]['name']) 182 self.assertEquals('noRules', dict_['events'][1]['name'])
180 self.assertEquals('add_rules_tester', dict_['name']) 183 self.assertEquals('add_rules_tester', dict_['name'])
181 self.assertEquals('noRules', dict_['events'][1]['name']) 184 self.assertEquals('noRules', dict_['events'][1]['name'])
182 self.assertEquals('callback', 185 self.assertEquals('callback',
183 dict_['events'][0]['byName']['addListener'][ 186 dict_['events'][0]['byName']['addListener'][
184 'parameters'][0]['name']) 187 'parameters'][0]['name'])
185 188
186 def testGetIntroList(self): 189 def testGetIntroList(self):
187 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability) 190 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability)
188 model = _JSCModel(self._api_models.GetModel('tester').Get(), 191 model = _JSCModel(self._api_models,
192 self._api_models.GetModel('tester').Get(),
189 fake_avail_finder, 193 fake_avail_finder,
190 self._json_cache, 194 self._json_cache,
191 _FakeTemplateCache(), 195 _FakeTemplateCache(),
192 self._features_bundle, 196 self._features_bundle,
193 None) 197 None)
194 expected_list = [ 198 expected_list = [
195 { 'title': 'Description', 199 { 'title': 'Description',
196 'content': [ 200 'content': [
197 { 'text': 'a test api' } 201 { 'text': 'a test api' }
198 ] 202 ]
(...skipping 15 matching lines...) Expand all
214 { 'text': 'is an API for testing things.' } 218 { 'text': 'is an API for testing things.' }
215 ] 219 ]
216 }, 220 },
217 { 'title': 'Manifest', 221 { 'title': 'Manifest',
218 'content': [ 222 'content': [
219 { 'class': 'code', 223 { 'class': 'code',
220 'text': '"tester": {...}' 224 'text': '"tester": {...}'
221 } 225 }
222 ] 226 ]
223 }, 227 },
228 { 'title': 'Content Scripts',
229 'content': [
230 {
231 'partial': 'handlebar chrome/common/extensions/docs' +
232 '/templates/private/intro_tables/content_scripts.html',
233 'contentScriptSupport': {
234 'fullSupport': True,
235 'name': 'tester',
236 'supportedNodes': []
237 }
238 }
239 ]
240 },
224 { 'title': 'Learn More', 241 { 'title': 'Learn More',
225 'content': [ 242 'content': [
226 { 'link': 'https://tester.test.com/welcome.html', 243 { 'link': 'https://tester.test.com/welcome.html',
227 'text': 'Welcome!' 244 'text': 'Welcome!'
228 } 245 }
229 ] 246 ]
230 } 247 }
231 ] 248 ]
232 self.assertEquals(model._GetIntroTableList(), expected_list) 249 self.assertEquals(model._GetIntroTableList(), expected_list)
233 250
234 # Tests the same data with a scheduled availability. 251 # Tests the same data with a scheduled availability.
235 fake_avail_finder = _FakeAvailabilityFinder( 252 fake_avail_finder = _FakeAvailabilityFinder(
236 AvailabilityInfo(ChannelInfo('beta', '1453', 27), scheduled=28)) 253 AvailabilityInfo(ChannelInfo('beta', '1453', 27), scheduled=28))
237 model = _JSCModel(self._api_models.GetModel('tester').Get(), 254 model = _JSCModel(self._api_models,
not at google - send to devlin 2014/07/09 02:55:55 valign
255 self._api_models.GetModel('tester').Get(),
238 fake_avail_finder, 256 fake_avail_finder,
239 self._json_cache, 257 self._json_cache,
240 _FakeTemplateCache(), 258 _FakeTemplateCache(),
241 self._features_bundle, 259 self._features_bundle,
242 None) 260 None)
243 expected_list[1] = { 261 expected_list[1] = {
244 'title': 'Availability', 262 'title': 'Availability',
245 'content': [ 263 'content': [
246 { 'partial': 'handlebar chrome/common/extensions/docs/' + 264 { 'partial': 'handlebar chrome/common/extensions/docs/' +
247 'templates/private/intro_tables/beta_message.html', 265 'templates/private/intro_tables/beta_message.html',
(...skipping 22 matching lines...) Expand all
270 api_availabilities = { 288 api_availabilities = {
271 'bluetooth': 28, 289 'bluetooth': 28,
272 'contextMenus': 'trunk', 290 'contextMenus': 'trunk',
273 'jsonStableAPI': 20, 291 'jsonStableAPI': 20,
274 'idle': 5, 292 'idle': 5,
275 'input.ime': 18, 293 'input.ime': 18,
276 'tabs': 18 294 'tabs': 18
277 } 295 }
278 for api_name, availability in api_availabilities.iteritems(): 296 for api_name, availability in api_availabilities.iteritems():
279 model_dict = _JSCModel( 297 model_dict = _JSCModel(
298 self._api_models,
280 self._api_models.GetModel(api_name).Get(), 299 self._api_models.GetModel(api_name).Get(),
281 self._avail_finder, 300 self._avail_finder,
282 self._json_cache, 301 self._json_cache,
283 _FakeTemplateCache(), 302 _FakeTemplateCache(),
284 _FakeFeaturesBundle(), 303 _FakeFeaturesBundle(),
285 None).ToDict() 304 None).ToDict()
286 self.assertEquals(availability, 305 self.assertEquals(availability,
287 model_dict['introList'][1]['content'][0]['version']) 306 model_dict['introList'][1]['content'][0]['version'])
288 307
289 308
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 356
338 def testGetAPINodeAvailability(self): 357 def testGetAPINodeAvailability(self):
339 def assertEquals(node, actual): 358 def assertEquals(node, actual):
340 node_availabilities = { 359 node_availabilities = {
341 'tabs.get': None, 360 'tabs.get': None,
342 'tabs.getCurrent': 19 361 'tabs.getCurrent': 19
343 } 362 }
344 self.assertEquals(node_availabilities[node], actual) 363 self.assertEquals(node_availabilities[node], actual)
345 364
346 model_dict = _JSCModel( 365 model_dict = _JSCModel(
366 self._api_models,
347 self._api_models.GetModel('tabs').Get(), 367 self._api_models.GetModel('tabs').Get(),
348 self._avail_finder, 368 self._avail_finder,
349 self._json_cache, 369 self._json_cache,
350 _FakeTemplateCache(), 370 _FakeTemplateCache(),
351 _FakeFeaturesBundle(), 371 _FakeFeaturesBundle(),
352 None).ToDict() 372 None).ToDict()
353 373
354 # Test nodes that have the same availability as their parent. 374 # Test nodes that have the same availability as their parent.
355 assertEquals('tabs.get', model_dict['functions'][1]['availability']) 375 assertEquals('tabs.get', model_dict['functions'][1]['availability'])
356 # Test nodes with varying availabilities. 376 # Test nodes with varying availabilities.
357 assertEquals('tabs.getCurrent', 377 assertEquals('tabs.getCurrent',
358 model_dict['functions'][0]['availability']['version']) 378 model_dict['functions'][0]['availability']['version'])
359 379
360 380
361 if __name__ == '__main__': 381 if __name__ == '__main__':
362 unittest.main() 382 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698