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

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

Issue 344453003: Docserver: separate models for apps and extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase/Add comment 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 os 6 import os
7 import unittest 7 import unittest
8 8
9 from future import Future 9 from future import Future
10 from reference_resolver import ReferenceResolver 10 from reference_resolver import ReferenceResolver
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 ], 234 ],
235 'properties': { 235 'properties': {
236 'foo_p1': {'$ref': 'foo_t3'}, 236 'foo_p1': {'$ref': 'foo_t3'},
237 'foo_p2': {'type': 'any'}, 237 'foo_p2': {'type': 'any'},
238 'foo_p3': {'type': 'any'} 238 'foo_p3': {'type': 'any'}
239 } 239 }
240 } 240 }
241 } 241 }
242 242
243 243
244 class _FakePlatformBundle(object):
245 def __init__(self):
246 self.platforms = ('apps', 'extensions')
247
248 def GetAPIModels(self, platform):
249 if platform == 'apps':
250 return _FakeAPIModels(_TEST_DATA)
251 # Only includes some of the data in the 'extensions' APIModels.
252 # ReferenceResolver will have to look at other platforms to resolve 'foo'.
253 return _FakeAPIModels({
254 'bar': _TEST_DATA['bar'],
255 'bar.bon': _TEST_DATA['bar.bon'],
256 'baz': _TEST_DATA['baz']
257 })
258
259
244 class _FakeAPIModels(object): 260 class _FakeAPIModels(object):
245 def __init__(self, apis): 261 def __init__(self, apis):
246 self._apis = apis 262 self._apis = apis
247 263
248 def GetNames(self): 264 def GetNames(self):
249 return self._apis.keys() 265 return self._apis.keys()
250 266
251 def GetModel(self, name): 267 def GetModel(self, name):
252 return Future(value=Namespace(self._apis[name], 'fake/path.json')) 268 return Future(value=Namespace(self._apis[name], 'fake/path.json'))
253 269
254 270
255 class ReferenceResolverTest(unittest.TestCase): 271 class ReferenceResolverTest(unittest.TestCase):
256 def setUp(self): 272 def setUp(self):
257 self._base_path = Server2Path('test_data', 'test_json') 273 self._base_path = Server2Path('test_data', 'test_json')
258 274
259 def _ReadLocalFile(self, filename): 275 def _ReadLocalFile(self, filename):
260 with open(os.path.join(self._base_path, filename), 'r') as f: 276 with open(os.path.join(self._base_path, filename), 'r') as f:
261 return f.read() 277 return f.read()
262 278
263 def testGetLink(self): 279 def testGetLink(self):
264 resolver = ReferenceResolver(_FakeAPIModels(_TEST_DATA), 280 apps_resolver = ReferenceResolver(
265 TestObjectStore('test')) 281 _FakePlatformBundle().GetAPIModels('apps'),
282 TestObjectStore('apps/test'))
283 extensions_resolver = ReferenceResolver(
284 _FakePlatformBundle().GetAPIModels('extensions'),
285 TestObjectStore('extensions/test'))
286
266 self.assertEqual({ 287 self.assertEqual({
267 'href': 'foo', 288 'href': 'foo',
268 'text': 'foo', 289 'text': 'foo',
269 'name': 'foo' 290 'name': 'foo'
270 }, resolver.GetLink('foo', namespace='baz')) 291 }, apps_resolver.GetLink('foo', namespace='baz'))
271 self.assertEqual({ 292 self.assertEqual({
272 'href': 'foo#type-foo_t1', 293 'href': 'foo#type-foo_t1',
273 'text': 'foo.foo_t1', 294 'text': 'foo.foo_t1',
274 'name': 'foo_t1' 295 'name': 'foo_t1'
275 }, resolver.GetLink('foo.foo_t1', namespace='baz')) 296 }, apps_resolver.GetLink('foo.foo_t1', namespace='baz'))
276 self.assertEqual({ 297 self.assertEqual({
277 'href': 'baz#event-baz_e1', 298 'href': 'baz#event-baz_e1',
278 'text': 'baz_e1', 299 'text': 'baz_e1',
279 'name': 'baz_e1' 300 'name': 'baz_e1'
280 }, resolver.GetLink('baz.baz_e1', namespace='baz')) 301 }, apps_resolver.GetLink('baz.baz_e1', namespace='baz'))
281 self.assertEqual({ 302 self.assertEqual({
282 'href': 'baz#event-baz_e1', 303 'href': 'baz#event-baz_e1',
283 'text': 'baz_e1', 304 'text': 'baz_e1',
284 'name': 'baz_e1' 305 'name': 'baz_e1'
285 }, resolver.GetLink('baz_e1', namespace='baz')) 306 }, apps_resolver.GetLink('baz_e1', namespace='baz'))
286 self.assertEqual({ 307 self.assertEqual({
287 'href': 'foo#method-foo_f1', 308 'href': 'foo#method-foo_f1',
288 'text': 'foo.foo_f1', 309 'text': 'foo.foo_f1',
289 'name': 'foo_f1' 310 'name': 'foo_f1'
290 }, resolver.GetLink('foo.foo_f1', namespace='baz')) 311 }, apps_resolver.GetLink('foo.foo_f1', namespace='baz'))
291 self.assertEqual({ 312 self.assertEqual({
292 'href': 'foo#property-foo_p3', 313 'href': 'foo#property-foo_p3',
293 'text': 'foo.foo_p3', 314 'text': 'foo.foo_p3',
294 'name': 'foo_p3' 315 'name': 'foo_p3'
295 }, resolver.GetLink('foo.foo_p3', namespace='baz')) 316 }, apps_resolver.GetLink('foo.foo_p3', namespace='baz'))
296 self.assertEqual({ 317 self.assertEqual({
297 'href': 'bar.bon#type-bar_bon_t3', 318 'href': 'bar.bon#type-bar_bon_t3',
298 'text': 'bar.bon.bar_bon_t3', 319 'text': 'bar.bon.bar_bon_t3',
299 'name': 'bar_bon_t3' 320 'name': 'bar_bon_t3'
300 }, resolver.GetLink('bar.bon.bar_bon_t3', namespace='baz')) 321 }, apps_resolver.GetLink('bar.bon.bar_bon_t3', namespace='baz'))
301 self.assertEqual({ 322 self.assertEqual({
302 'href': 'bar.bon#property-bar_bon_p3', 323 'href': 'bar.bon#property-bar_bon_p3',
303 'text': 'bar_bon_p3', 324 'text': 'bar_bon_p3',
304 'name': 'bar_bon_p3' 325 'name': 'bar_bon_p3'
305 }, resolver.GetLink('bar_bon_p3', namespace='bar.bon')) 326 }, apps_resolver.GetLink('bar_bon_p3', namespace='bar.bon'))
306 self.assertEqual({ 327 self.assertEqual({
307 'href': 'bar.bon#property-bar_bon_p3', 328 'href': 'bar.bon#property-bar_bon_p3',
308 'text': 'bar_bon_p3', 329 'text': 'bar_bon_p3',
309 'name': 'bar_bon_p3' 330 'name': 'bar_bon_p3'
310 }, resolver.GetLink('bar.bon.bar_bon_p3', namespace='bar.bon')) 331 }, apps_resolver.GetLink('bar.bon.bar_bon_p3', namespace='bar.bon'))
311 self.assertEqual({ 332 self.assertEqual({
312 'href': 'bar#event-bar_e2', 333 'href': 'bar#event-bar_e2',
313 'text': 'bar_e2', 334 'text': 'bar_e2',
314 'name': 'bar_e2' 335 'name': 'bar_e2'
315 }, resolver.GetLink('bar.bar_e2', namespace='bar')) 336 }, apps_resolver.GetLink('bar.bar_e2', namespace='bar'))
316 self.assertEqual({ 337 self.assertEqual({
317 'href': 'bar#type-bon', 338 'href': 'bar#type-bon',
318 'text': 'bon', 339 'text': 'bon',
319 'name': 'bon' 340 'name': 'bon'
320 }, resolver.GetLink('bar.bon', namespace='bar')) 341 }, apps_resolver.GetLink('bar.bon', namespace='bar'))
321 self.assertEqual({ 342 self.assertEqual({
322 'href': 'foo#event-foo_t3-foo_t3_e1', 343 'href': 'foo#event-foo_t3-foo_t3_e1',
323 'text': 'foo_t3.foo_t3_e1', 344 'text': 'foo_t3.foo_t3_e1',
324 'name': 'foo_t3_e1' 345 'name': 'foo_t3_e1'
325 }, resolver.GetLink('foo_t3.foo_t3_e1', namespace='foo')) 346 }, apps_resolver.GetLink('foo_t3.foo_t3_e1', namespace='foo'))
326 self.assertEqual({ 347 self.assertEqual({
327 'href': 'foo#event-foo_t3-foo_t3_e1', 348 'href': 'foo#event-foo_t3-foo_t3_e1',
328 'text': 'foo_t3.foo_t3_e1', 349 'text': 'foo_t3.foo_t3_e1',
329 'name': 'foo_t3_e1' 350 'name': 'foo_t3_e1'
330 }, resolver.GetLink('foo.foo_t3.foo_t3_e1', namespace='foo')) 351 }, apps_resolver.GetLink('foo.foo_t3.foo_t3_e1', namespace='foo'))
331 self.assertEqual({ 352 self.assertEqual({
332 'href': 'foo#event-foo_t3-foo_t3_e1', 353 'href': 'foo#event-foo_t3-foo_t3_e1',
333 'text': 'foo_t3.foo_t3_e1', 354 'text': 'foo_t3.foo_t3_e1',
334 'name': 'foo_t3_e1' 355 'name': 'foo_t3_e1'
335 }, resolver.GetLink('foo.foo_p1.foo_t3_e1', namespace='foo')) 356 }, apps_resolver.GetLink('foo.foo_p1.foo_t3_e1', namespace='foo'))
336 self.assertEqual({ 357 self.assertEqual({
337 'href': 'bar#property-bar_t1-bar_t1_p1', 358 'href': 'bar#property-bar_t1-bar_t1_p1',
338 'text': 'bar.bar_t1.bar_t1_p1', 359 'text': 'bar.bar_t1.bar_t1_p1',
339 'name': 'bar_t1_p1' 360 'name': 'bar_t1_p1'
340 }, resolver.GetLink('bar.bar_p3.bar_t1_p1', namespace='foo')) 361 }, apps_resolver.GetLink('bar.bar_p3.bar_t1_p1', namespace='foo'))
362 # Test extensions_resolver.
363 self.assertEqual({
364 'href': 'bar#property-bar_t1-bar_t1_p1',
365 'text': 'bar.bar_t1.bar_t1_p1',
366 'name': 'bar_t1_p1'
367 }, extensions_resolver.GetLink('bar.bar_p3.bar_t1_p1', namespace='foo'))
341 self.assertEqual({ 368 self.assertEqual({
342 'href': 'bar#property-bar_t1-bar_t1_p1', 369 'href': 'bar#property-bar_t1-bar_t1_p1',
343 'text': 'bar_t1.bar_t1_p1', 370 'text': 'bar_t1.bar_t1_p1',
344 'name': 'bar_t1_p1' 371 'name': 'bar_t1_p1'
345 }, resolver.GetLink('bar_p3.bar_t1_p1', namespace='bar')) 372 }, apps_resolver.GetLink('bar_p3.bar_t1_p1', namespace='bar'))
346 self.assertEqual( 373 self.assertEqual(
347 None, 374 None,
348 resolver.GetLink('bar.bar_p3.bar_t2_p1', namespace='bar')) 375 apps_resolver.GetLink('bar.bar_p3.bar_t2_p1', namespace='bar'))
349 self.assertEqual( 376 self.assertEqual(
350 None, 377 None,
351 resolver.GetLink('bar.bon.bar_e3', namespace='bar')) 378 apps_resolver.GetLink('bar.bon.bar_e3', namespace='bar'))
352 self.assertEqual( 379 self.assertEqual(
353 None, 380 None,
354 resolver.GetLink('bar_p3', namespace='baz.bon')) 381 apps_resolver.GetLink('bar_p3', namespace='baz.bon'))
355 self.assertEqual( 382 self.assertEqual(
356 None, 383 None,
357 resolver.GetLink('falafel.faf', namespace='a')) 384 apps_resolver.GetLink('falafel.faf', namespace='a'))
358 self.assertEqual( 385 self.assertEqual(
359 None, 386 None,
360 resolver.GetLink('bar_p3', namespace='foo')) 387 apps_resolver.GetLink('bar_p3', namespace='foo'))
388 # Exists in apps but not extensions.
389 self.assertEqual(
390 None,
391 extensions_resolver.GetLink('foo.foo_p3', namespace='baz'))
361 392
362 if __name__ == '__main__': 393 if __name__ == '__main__':
363 unittest.main() 394 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698