| OLD | NEW |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 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 unittest | 5 import unittest |
| 6 import module | 6 import module |
| 7 | 7 |
| 8 try: | 8 try: |
| 9 import mojom_translator | 9 import mojom_translator |
| 10 import mojom_files_mojom | 10 import mojom_files_mojom |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 decl_data=mojom_types_mojom.DeclarationData(short_name='val2'), | 231 decl_data=mojom_types_mojom.DeclarationData(short_name='val2'), |
| 232 enum_type_key='AnEnum', | 232 enum_type_key='AnEnum', |
| 233 int_value=70) | 233 int_value=70) |
| 234 mojom_enum.values = [value1, value2] | 234 mojom_enum.values = [value1, value2] |
| 235 | 235 |
| 236 | 236 |
| 237 graph = mojom_files_mojom.MojomFileGraph() | 237 graph = mojom_files_mojom.MojomFileGraph() |
| 238 enum = module.Enum() | 238 enum = module.Enum() |
| 239 translator = mojom_translator.FileTranslator(graph, file_name) | 239 translator = mojom_translator.FileTranslator(graph, file_name) |
| 240 translator.EnumFromMojom( | 240 translator.EnumFromMojom( |
| 241 enum, mojom_types_mojom.UserDefinedType(enum_type=mojom_enum), None) | 241 enum, mojom_types_mojom.UserDefinedType(enum_type=mojom_enum)) |
| 242 | 242 |
| 243 self.assertEquals(translator._module, enum.module) | 243 self.assertEquals(translator._module, enum.module) |
| 244 self.assertEquals(mojom_enum.decl_data.short_name, enum.name) | 244 self.assertEquals(mojom_enum.decl_data.short_name, enum.name) |
| 245 self.assertEquals(len(mojom_enum.values), len(enum.fields)) | 245 self.assertEquals(len(mojom_enum.values), len(enum.fields)) |
| 246 | 246 |
| 247 self.assertEquals(value1.decl_data.short_name, enum.fields[0].name) | 247 self.assertEquals(value1.decl_data.short_name, enum.fields[0].name) |
| 248 self.assertEquals(value2.decl_data.short_name, enum.fields[1].name) | 248 self.assertEquals(value2.decl_data.short_name, enum.fields[1].name) |
| 249 | 249 |
| 250 self.assertEquals(value1.int_value, enum.fields[0].value) | 250 self.assertEquals(value1.int_value, enum.fields[0].value) |
| 251 self.assertEquals(value2.int_value, enum.fields[1].value) | 251 self.assertEquals(value2.int_value, enum.fields[1].value) |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 441 literal_value=mojom_types_mojom.LiteralValue(uint64_value=20))) | 441 literal_value=mojom_types_mojom.LiteralValue(uint64_value=20))) |
| 442 | 442 |
| 443 graph = mojom_files_mojom.MojomFileGraph() | 443 graph = mojom_files_mojom.MojomFileGraph() |
| 444 translator = mojom_translator.FileTranslator(graph, '') | 444 translator = mojom_translator.FileTranslator(graph, '') |
| 445 param = translator.ParamFromMojom(mojom_param) | 445 param = translator.ParamFromMojom(mojom_param) |
| 446 | 446 |
| 447 self.assertEquals(mojom_param.decl_data.short_name, param.name) | 447 self.assertEquals(mojom_param.decl_data.short_name, param.name) |
| 448 self.assertEquals(module.UINT64, param.kind) | 448 self.assertEquals(module.UINT64, param.kind) |
| 449 self.assertEquals(mojom_param.decl_data.declared_ordinal, param.ordinal) | 449 self.assertEquals(mojom_param.decl_data.declared_ordinal, param.ordinal) |
| 450 | 450 |
| 451 def test_contained_declarations(self): |
| 452 graph = mojom_files_mojom.MojomFileGraph() |
| 453 file_name = 'root/f.mojom' |
| 454 |
| 455 mojom_enum = mojom_types_mojom.MojomEnum( |
| 456 values=[], |
| 457 decl_data=mojom_types_mojom.DeclarationData( |
| 458 short_name='AnEnum', |
| 459 source_file_info=mojom_types_mojom.SourceFileInfo( |
| 460 file_name=file_name))) |
| 461 graph.resolved_types = { |
| 462 'enum_key': mojom_types_mojom.UserDefinedType(enum_type=mojom_enum)} |
| 463 |
| 464 mojom_const = mojom_types_mojom.DeclaredConstant( |
| 465 decl_data=mojom_types_mojom.DeclarationData(short_name='AConst'), |
| 466 type=mojom_types_mojom.Type( |
| 467 simple_type=mojom_types_mojom.SimpleType.INT64), |
| 468 value=mojom_types_mojom.Value( |
| 469 literal_value=mojom_types_mojom.LiteralValue( |
| 470 int64_value=30))) |
| 471 user_defined_value = mojom_types_mojom.UserDefinedValue() |
| 472 user_defined_value.declared_constant = mojom_const |
| 473 graph.resolved_values = {'value_key': user_defined_value} |
| 474 |
| 475 contained_declarations = mojom_types_mojom.ContainedDeclarations( |
| 476 enums=['enum_key'], constants=['value_key']) |
| 477 |
| 478 translator = mojom_translator.FileTranslator(graph, file_name) |
| 479 struct = module.Struct(name='parent') |
| 480 translator.PopulateContainedDeclarationsFromMojom( |
| 481 struct, contained_declarations) |
| 482 |
| 483 self.assertEquals( |
| 484 'parent.' + mojom_enum.decl_data.short_name, struct.enums[0].name) |
| 485 self.assertEquals(struct, struct.enums[0].parent_kind) |
| 486 self.assertEquals( |
| 487 mojom_const.decl_data.short_name, struct.constants[0].name) |
| 488 self.assertEquals(struct, struct.constants[0].parent_kind) |
| 489 |
| 451 | 490 |
| 452 @unittest.skipUnless(bindings_imported, 'Could not import python bindings.') | 491 @unittest.skipUnless(bindings_imported, 'Could not import python bindings.') |
| 453 class TestEvalValue(unittest.TestCase): | 492 class TestEvalValue(unittest.TestCase): |
| 454 | 493 |
| 455 def test_literal_value(self): | 494 def test_literal_value(self): |
| 456 mojom = mojom_types_mojom.Value() | 495 mojom = mojom_types_mojom.Value() |
| 457 mojom.literal_value = mojom_types_mojom.LiteralValue(int64_value=20) | 496 mojom.literal_value = mojom_types_mojom.LiteralValue(int64_value=20) |
| 458 | 497 |
| 459 graph = mojom_files_mojom.MojomFileGraph() | 498 graph = mojom_files_mojom.MojomFileGraph() |
| 460 const = mojom_translator.FileTranslator(graph, None).EvalValue(mojom) | 499 const = mojom_translator.FileTranslator(graph, None).EvalValue(mojom) |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 645 result2 = t.KindFromMojom(mojom_type) | 684 result2 = t.KindFromMojom(mojom_type) |
| 646 self.assertIs(result, result2) | 685 self.assertIs(result, result2) |
| 647 | 686 |
| 648 # Nullable type reference | 687 # Nullable type reference |
| 649 mojom_type.type_reference.nullable = True | 688 mojom_type.type_reference.nullable = True |
| 650 nullable_result = t.KindFromMojom(mojom_type) | 689 nullable_result = t.KindFromMojom(mojom_type) |
| 651 self.assertTrue(module.IsNullableKind(nullable_result)) | 690 self.assertTrue(module.IsNullableKind(nullable_result)) |
| 652 | 691 |
| 653 if __name__ == '__main__': | 692 if __name__ == '__main__': |
| 654 unittest.main() | 693 unittest.main() |
| OLD | NEW |