| OLD | NEW |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import argparse | 5 import argparse |
| 6 import client_api_generator | 6 import client_api_generator |
| 7 import shutil | 7 import shutil |
| 8 import sys | 8 import sys |
| 9 import tempfile | 9 import tempfile |
| 10 import unittest | 10 import unittest |
| (...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 } | 363 } |
| 364 ], | 364 ], |
| 365 'events': [ | 365 'events': [ |
| 366 { | 366 { |
| 367 'name': 'BarEvent', | 367 'name': 'BarEvent', |
| 368 } | 368 } |
| 369 ] | 369 ] |
| 370 } | 370 } |
| 371 ] | 371 ] |
| 372 } | 372 } |
| 373 expected_types = [ | |
| 374 { | |
| 375 'type': 'object', | |
| 376 'id': 'FooCommandParams', | |
| 377 'description': 'Parameters for the FooCommand command.', | |
| 378 'properties': [], | |
| 379 }, | |
| 380 { | |
| 381 'type': 'object', | |
| 382 'id': 'FooCommandResult', | |
| 383 'description': 'Result for the FooCommand command.', | |
| 384 'properties': [], | |
| 385 }, | |
| 386 { | |
| 387 'type': 'object', | |
| 388 'id': 'BarEventParams', | |
| 389 'description': 'Parameters for the BarEvent event.', | |
| 390 'properties': [], | |
| 391 } | |
| 392 ] | |
| 393 client_api_generator.PatchExperimentalCommandsAndEvents(json_api) | 373 client_api_generator.PatchExperimentalCommandsAndEvents(json_api) |
| 394 client_api_generator.SynthesizeCommandTypes(json_api) | |
| 395 client_api_generator.SynthesizeEventTypes(json_api) | |
| 396 for command in json_api['domains'][0]['commands']: | 374 for command in json_api['domains'][0]['commands']: |
| 397 self.assertTrue(command['experimental']) | 375 self.assertTrue(command['experimental']) |
| 398 for event in json_api['domains'][0]['events']: | 376 for event in json_api['domains'][0]['events']: |
| 399 self.assertTrue(command['experimental']) | 377 self.assertTrue(command['experimental']) |
| 400 types = json_api['domains'][0]['types'] | |
| 401 self.assertListEqual(types, expected_types) | |
| 402 | 378 |
| 403 def test_PatchExperimentalCommandsAndEvents(self): | 379 def test_EnsureCommandsHaveParametersAndReturnTypes(self): |
| 404 json_api = { | 380 json_api = { |
| 405 'domains': [ | 381 'domains': [ |
| 406 { | 382 { |
| 407 'domain': 'domain', | 383 'domain': 'domain', |
| 408 'commands': [ | 384 'commands': [ |
| 409 { | 385 { |
| 410 'name': 'FooCommand', | 386 'name': 'FooCommand', |
| 411 'experimental': True, | |
| 412 } | 387 } |
| 413 ], | 388 ], |
| 414 'events': [ | 389 'events': [ |
| 415 { | 390 { |
| 416 'name': 'BarEvent', | 391 'name': 'BarEvent', |
| 417 'experimental': True, | |
| 418 } | 392 } |
| 419 ] | 393 ] |
| 420 } | 394 } |
| 421 ] | 395 ] |
| 422 } | 396 } |
| 423 expected_types = [ | 397 expected_types = [ |
| 424 { | 398 { |
| 425 'type': 'object', | 399 'type': 'object', |
| 426 'id': 'FooCommandParams', | 400 'id': 'FooCommandParams', |
| 427 'description': 'Parameters for the FooCommand command.', | 401 'description': 'Parameters for the FooCommand command.', |
| 428 'properties': [], | 402 'properties': [], |
| 429 }, | 403 }, |
| 430 { | 404 { |
| 431 'type': 'object', | 405 'type': 'object', |
| 432 'id': 'FooCommandResult', | 406 'id': 'FooCommandResult', |
| 433 'description': 'Result for the FooCommand command.', | 407 'description': 'Result for the FooCommand command.', |
| 434 'properties': [], | 408 'properties': [], |
| 435 }, | 409 }, |
| 436 { | 410 { |
| 437 'type': 'object', | 411 'type': 'object', |
| 438 'id': 'BarEventParams', | 412 'id': 'BarEventParams', |
| 439 'description': 'Parameters for the BarEvent event.', | 413 'description': 'Parameters for the BarEvent event.', |
| 440 'properties': [], | 414 'properties': [], |
| 441 } | 415 } |
| 442 ] | 416 ] |
| 443 client_api_generator.PatchExperimentalCommandsAndEvents(json_api) | 417 client_api_generator.EnsureCommandsHaveParametersAndReturnTypes(json_api) |
| 444 client_api_generator.SynthesizeCommandTypes(json_api) | 418 client_api_generator.SynthesizeCommandTypes(json_api) |
| 445 client_api_generator.SynthesizeEventTypes(json_api) | 419 client_api_generator.SynthesizeEventTypes(json_api) |
| 446 for command in json_api['domains'][0]['commands']: | |
| 447 self.assertTrue(command['experimental']) | |
| 448 for event in json_api['domains'][0]['events']: | |
| 449 self.assertTrue(command['experimental']) | |
| 450 types = json_api['domains'][0]['types'] | 420 types = json_api['domains'][0]['types'] |
| 451 self.assertListEqual(types, expected_types) | 421 self.assertListEqual(types, expected_types) |
| 452 | 422 |
| 453 def test_Generate(self): | 423 def test_Generate(self): |
| 454 json_api = { | 424 json_api = { |
| 455 'domains': [ | 425 'domains': [ |
| 456 { | 426 { |
| 457 'domain': 'domain', | 427 'domain': 'domain', |
| 458 'types': [ | 428 'types': [ |
| 459 { | 429 { |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 527 | 497 |
| 528 | 498 |
| 529 if __name__ == '__main__': | 499 if __name__ == '__main__': |
| 530 cmdline_parser = argparse.ArgumentParser() | 500 cmdline_parser = argparse.ArgumentParser() |
| 531 cmdline_parser.add_argument('--stamp') | 501 cmdline_parser.add_argument('--stamp') |
| 532 args = cmdline_parser.parse_args() | 502 args = cmdline_parser.parse_args() |
| 533 unittest.main(verbosity=2, exit=False, argv=sys.argv[:1]) | 503 unittest.main(verbosity=2, exit=False, argv=sys.argv[:1]) |
| 534 if args.stamp: | 504 if args.stamp: |
| 535 with open(args.stamp, 'a') as f: | 505 with open(args.stamp, 'a') as f: |
| 536 pass | 506 pass |
| OLD | NEW |