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

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: Rebase/Address comments 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 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 events['types'][0]['functions'].append(add_rules) 113 events['types'][0]['functions'].append(add_rules)
114 self.assertEqual(add_rules, 114 self.assertEqual(add_rules,
115 _GetEventByNameFromEvents(events)['addRules']) 115 _GetEventByNameFromEvents(events)['addRules'])
116 116
117 events['types'][0]['functions'].append(add_rules) 117 events['types'][0]['functions'].append(add_rules)
118 # Duplicates are an error. 118 # Duplicates are an error.
119 self.assertRaises(AssertionError, _GetEventByNameFromEvents, events) 119 self.assertRaises(AssertionError, _GetEventByNameFromEvents, events)
120 120
121 def testCreateId(self): 121 def testCreateId(self):
122 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability) 122 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability)
123 dict_ = _JSCModel(self._api_models.GetModel('tester').Get(), 123 dict_ = _JSCModel(self._api_models,
124 self._api_models.GetModel('tester').Get(),
124 fake_avail_finder, 125 fake_avail_finder,
125 self._json_cache, 126 self._json_cache,
126 _FakeTemplateCache(), 127 _FakeTemplateCache(),
127 self._features_bundle, 128 self._features_bundle,
128 None).ToDict() 129 None).ToDict()
129 self.assertEquals('type-TypeA', dict_['types'][0]['id']) 130 self.assertEquals('type-TypeA', dict_['types'][0]['id'])
130 self.assertEquals('property-TypeA-b', 131 self.assertEquals('property-TypeA-b',
131 dict_['types'][0]['properties'][0]['id']) 132 dict_['types'][0]['properties'][0]['id'])
132 self.assertEquals('method-get', dict_['functions'][0]['id']) 133 self.assertEquals('method-get', dict_['functions'][0]['id'])
133 self.assertEquals('event-EventA', dict_['events'][0]['id']) 134 self.assertEquals('event-EventA', dict_['events'][0]['id'])
134 135
135 # TODO(kalman): re-enable this when we have a rebase option. 136 # TODO(kalman): re-enable this when we have a rebase option.
136 def DISABLED_testToDict(self): 137 def DISABLED_testToDict(self):
137 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability) 138 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability)
138 expected_json = self._LoadJSON('expected_tester.json') 139 expected_json = self._LoadJSON('expected_tester.json')
139 dict_ = _JSCModel(self._api_models.GetModel('tester').Get(), 140 dict_ = _JSCModel(self._api_models,
141 self._api_models.GetModel('tester').Get(),
140 fake_avail_finder, 142 fake_avail_finder,
141 self._json_cache, 143 self._json_cache,
142 _FakeTemplateCache(), 144 _FakeTemplateCache(),
143 self._features_bundle, 145 self._features_bundle,
144 None).ToDict() 146 None).ToDict()
145 self.assertEquals(expected_json, dict_) 147 self.assertEquals(expected_json, dict_)
146 148
147 def testAddRules(self): 149 def testAddRules(self):
148 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability) 150 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability)
149 dict_ = _JSCModel(self._api_models.GetModel('add_rules_tester').Get(), 151 dict_ = _JSCModel(self._api_models,
152 self._api_models.GetModel('add_rules_tester').Get(),
150 fake_avail_finder, 153 fake_avail_finder,
151 self._json_cache, 154 self._json_cache,
152 _FakeTemplateCache(), 155 _FakeTemplateCache(),
153 self._features_bundle, 156 self._features_bundle,
154 self._FakeLoadAddRulesSchema()).ToDict() 157 self._FakeLoadAddRulesSchema()).ToDict()
155 158
156 # Check that the first event has the addRulesFunction defined. 159 # Check that the first event has the addRulesFunction defined.
157 self.assertEquals('add_rules_tester', dict_['name']) 160 self.assertEquals('add_rules_tester', dict_['name'])
158 self.assertEquals('rules', dict_['events'][0]['name']) 161 self.assertEquals('rules', dict_['events'][0]['name'])
159 self.assertEquals('notable_name_to_check_for', 162 self.assertEquals('notable_name_to_check_for',
160 dict_['events'][0]['byName']['addRules'][ 163 dict_['events'][0]['byName']['addRules'][
161 'parameters'][0]['name']) 164 'parameters'][0]['name'])
162 165
163 # Check that the second event has addListener defined. 166 # Check that the second event has addListener defined.
164 self.assertEquals('noRules', dict_['events'][1]['name']) 167 self.assertEquals('noRules', dict_['events'][1]['name'])
165 self.assertEquals('add_rules_tester', dict_['name']) 168 self.assertEquals('add_rules_tester', dict_['name'])
166 self.assertEquals('noRules', dict_['events'][1]['name']) 169 self.assertEquals('noRules', dict_['events'][1]['name'])
167 self.assertEquals('callback', 170 self.assertEquals('callback',
168 dict_['events'][0]['byName']['addListener'][ 171 dict_['events'][0]['byName']['addListener'][
169 'parameters'][0]['name']) 172 'parameters'][0]['name'])
170 173
171 def testGetIntroList(self): 174 def testGetIntroList(self):
172 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability) 175 fake_avail_finder = _FakeAvailabilityFinder(self._fake_availability)
173 model = _JSCModel(self._api_models.GetModel('tester').Get(), 176 model = _JSCModel(self._api_models,
177 self._api_models.GetModel('tester').Get(),
174 fake_avail_finder, 178 fake_avail_finder,
175 self._json_cache, 179 self._json_cache,
176 _FakeTemplateCache(), 180 _FakeTemplateCache(),
177 self._features_bundle, 181 self._features_bundle,
178 None) 182 None)
179 expected_list = [ 183 expected_list = [
180 { 'title': 'Description', 184 { 'title': 'Description',
181 'content': [ 185 'content': [
182 { 'text': 'a test api' } 186 { 'text': 'a test api' }
183 ] 187 ]
(...skipping 15 matching lines...) Expand all
199 { 'text': 'is an API for testing things.' } 203 { 'text': 'is an API for testing things.' }
200 ] 204 ]
201 }, 205 },
202 { 'title': 'Manifest', 206 { 'title': 'Manifest',
203 'content': [ 207 'content': [
204 { 'class': 'code', 208 { 'class': 'code',
205 'text': '"tester": {...}' 209 'text': '"tester": {...}'
206 } 210 }
207 ] 211 ]
208 }, 212 },
213 { 'title': 'Content Scripts',
214 'content': [
215 {
216 'partial': 'handlebar chrome/common/extensions/docs' +
217 '/templates/private/intro_tables/content_scripts.html',
218 'contentScriptSupport': {
219 'name': 'tester',
220 'restrictedTo': None
221 }
222 }
223 ]
224 },
209 { 'title': 'Learn More', 225 { 'title': 'Learn More',
210 'content': [ 226 'content': [
211 { 'link': 'https://tester.test.com/welcome.html', 227 { 'link': 'https://tester.test.com/welcome.html',
212 'text': 'Welcome!' 228 'text': 'Welcome!'
213 } 229 }
214 ] 230 ]
215 } 231 }
216 ] 232 ]
217 self.assertEquals(model._GetIntroTableList(), expected_list) 233 self.assertEquals(model._GetIntroTableList(), expected_list)
218 234
219 # Tests the same data with a scheduled availability. 235 # Tests the same data with a scheduled availability.
220 fake_avail_finder = _FakeAvailabilityFinder( 236 fake_avail_finder = _FakeAvailabilityFinder(
221 AvailabilityInfo(ChannelInfo('beta', '1453', 27), scheduled=28)) 237 AvailabilityInfo(ChannelInfo('beta', '1453', 27), scheduled=28))
222 model = _JSCModel(self._api_models.GetModel('tester').Get(), 238 model = _JSCModel(self._api_models,
223 fake_avail_finder, 239 self._api_models.GetModel('tester').Get(),
224 self._json_cache, 240 fake_avail_finder,
225 _FakeTemplateCache(), 241 self._json_cache,
226 self._features_bundle, 242 _FakeTemplateCache(),
227 None) 243 self._features_bundle,
244 None)
228 expected_list[1] = { 245 expected_list[1] = {
229 'title': 'Availability', 246 'title': 'Availability',
230 'content': [ 247 'content': [
231 { 'partial': 'handlebar chrome/common/extensions/docs/' + 248 { 'partial': 'handlebar chrome/common/extensions/docs/' +
232 'templates/private/intro_tables/beta_message.html', 249 'templates/private/intro_tables/beta_message.html',
233 'version': 27, 250 'version': 27,
234 'scheduled': 28 251 'scheduled': 28
235 } 252 }
236 ] 253 ]
237 } 254 }
(...skipping 17 matching lines...) Expand all
255 api_availabilities = { 272 api_availabilities = {
256 'bluetooth': 28, 273 'bluetooth': 28,
257 'contextMenus': 'trunk', 274 'contextMenus': 'trunk',
258 'jsonStableAPI': 20, 275 'jsonStableAPI': 20,
259 'idle': 5, 276 'idle': 5,
260 'input.ime': 18, 277 'input.ime': 18,
261 'tabs': 18 278 'tabs': 18
262 } 279 }
263 for api_name, availability in api_availabilities.iteritems(): 280 for api_name, availability in api_availabilities.iteritems():
264 model_dict = _JSCModel( 281 model_dict = _JSCModel(
282 self._api_models,
265 self._api_models.GetModel(api_name).Get(), 283 self._api_models.GetModel(api_name).Get(),
266 self._avail_finder, 284 self._avail_finder,
267 self._json_cache, 285 self._json_cache,
268 _FakeTemplateCache(), 286 _FakeTemplateCache(),
269 _FakeFeaturesBundle(), 287 _FakeFeaturesBundle(),
270 None).ToDict() 288 None).ToDict()
271 self.assertEquals(availability, 289 self.assertEquals(availability,
272 model_dict['introList'][1]['content'][0]['version']) 290 model_dict['introList'][1]['content'][0]['version'])
273 291
274 292
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 'tabs.get': None, 346 'tabs.get': None,
329 'tabs.onUpdated': None, 347 'tabs.onUpdated': None,
330 'tabs.InjectDetails': 25, 348 'tabs.InjectDetails': 25,
331 'tabs.fakeTabsProperty2': 15, 349 'tabs.fakeTabsProperty2': 15,
332 'tabs.getCurrent': 19, 350 'tabs.getCurrent': 19,
333 'tabs.onActivated': 27 351 'tabs.onActivated': 27
334 } 352 }
335 self.assertEquals(node_availabilities[node], actual) 353 self.assertEquals(node_availabilities[node], actual)
336 354
337 model_dict = _JSCModel( 355 model_dict = _JSCModel(
356 self._api_models,
338 self._api_models.GetModel('tabs').Get(), 357 self._api_models.GetModel('tabs').Get(),
339 self._avail_finder, 358 self._avail_finder,
340 self._json_cache, 359 self._json_cache,
341 _FakeTemplateCache(), 360 _FakeTemplateCache(),
342 _FakeFeaturesBundle(), 361 _FakeFeaturesBundle(),
343 None).ToDict() 362 None).ToDict()
344 363
345 # Test nodes that have the same availability as their parent. 364 # Test nodes that have the same availability as their parent.
346 365
347 # Test type. 366 # Test type.
(...skipping 17 matching lines...) Expand all
365 # Test function. 384 # Test function.
366 assertEquals('tabs.getCurrent', 385 assertEquals('tabs.getCurrent',
367 model_dict['functions'][0]['availability']['version']) 386 model_dict['functions'][0]['availability']['version'])
368 # Test event. 387 # Test event.
369 assertEquals('tabs.onActivated', 388 assertEquals('tabs.onActivated',
370 model_dict['events'][0]['availability']['version']) 389 model_dict['events'][0]['availability']['version'])
371 390
372 391
373 if __name__ == '__main__': 392 if __name__ == '__main__':
374 unittest.main() 393 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698