| 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 from generated import mojom_files_mojom | 10 from generated import mojom_files_mojom |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 graph.resolved_types['enum_key'] = mojom_types_mojom.UserDefinedType( | 108 graph.resolved_types['enum_key'] = mojom_types_mojom.UserDefinedType( |
| 109 enum_type=mojom_enum) | 109 enum_type=mojom_enum) |
| 110 | 110 |
| 111 mojom_const = mojom_types_mojom.DeclaredConstant( | 111 mojom_const = mojom_types_mojom.DeclaredConstant( |
| 112 decl_data=mojom_types_mojom.DeclarationData(short_name='AConst'), | 112 decl_data=mojom_types_mojom.DeclarationData(short_name='AConst'), |
| 113 type=mojom_types_mojom.Type( | 113 type=mojom_types_mojom.Type( |
| 114 simple_type=mojom_types_mojom.SimpleType.INT64), | 114 simple_type=mojom_types_mojom.SimpleType.INT64), |
| 115 value=mojom_types_mojom.Value( | 115 value=mojom_types_mojom.Value( |
| 116 literal_value=mojom_types_mojom.LiteralValue( | 116 literal_value=mojom_types_mojom.LiteralValue( |
| 117 int64_value=30))) | 117 int64_value=30))) |
| 118 user_defined_value = mojom_types_mojom.UserDefinedValue() | 118 graph.resolved_constants = {'constant_key': mojom_const} |
| 119 user_defined_value.declared_constant = mojom_const | |
| 120 graph.resolved_values = {'value_key': user_defined_value} | |
| 121 | 119 |
| 122 mojom_file.declared_mojom_objects = mojom_files_mojom.KeysByType( | 120 mojom_file.declared_mojom_objects = mojom_files_mojom.KeysByType( |
| 123 interfaces=['interface_key'], | 121 interfaces=['interface_key'], |
| 124 structs=['struct_key'], | 122 structs=['struct_key'], |
| 125 unions=['union_key'], | 123 unions=['union_key'], |
| 126 top_level_enums=['enum_key'], | 124 top_level_enums=['enum_key'], |
| 127 top_level_constants=['value_key'] | 125 top_level_constants=['constant_key'] |
| 128 ) | 126 ) |
| 129 | 127 |
| 130 mod = mojom_translator.FileTranslator(graph, file_name).Translate() | 128 mod = mojom_translator.FileTranslator(graph, file_name).Translate() |
| 131 | 129 |
| 132 self.assertEquals('f.mojom', mod.name) | 130 self.assertEquals('f.mojom', mod.name) |
| 133 self.assertEquals(mojom_file.specified_file_name, mod.specified_name) | 131 self.assertEquals(mojom_file.specified_file_name, mod.specified_name) |
| 134 self.assertEquals(mojom_file.file_name, mod.path) | 132 self.assertEquals(mojom_file.file_name, mod.path) |
| 135 self.assertEquals(mojom_file.module_namespace, mod.namespace) | 133 self.assertEquals(mojom_file.module_namespace, mod.namespace) |
| 136 | 134 |
| 137 self.assertEquals(1, len(mod.imports)) | 135 self.assertEquals(1, len(mod.imports)) |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 const.parent_kind) | 358 const.parent_kind) |
| 361 | 359 |
| 362 def test_enum(self): | 360 def test_enum(self): |
| 363 file_name = 'a.mojom' | 361 file_name = 'a.mojom' |
| 364 mojom_enum = mojom_types_mojom.MojomEnum() | 362 mojom_enum = mojom_types_mojom.MojomEnum() |
| 365 mojom_enum.decl_data = mojom_types_mojom.DeclarationData( | 363 mojom_enum.decl_data = mojom_types_mojom.DeclarationData( |
| 366 short_name='AnEnum', | 364 short_name='AnEnum', |
| 367 source_file_info=mojom_types_mojom.SourceFileInfo(file_name=file_name)) | 365 source_file_info=mojom_types_mojom.SourceFileInfo(file_name=file_name)) |
| 368 value1 = mojom_types_mojom.EnumValue( | 366 value1 = mojom_types_mojom.EnumValue( |
| 369 decl_data=mojom_types_mojom.DeclarationData(short_name='val1'), | 367 decl_data=mojom_types_mojom.DeclarationData(short_name='val1'), |
| 370 enum_type_key='AnEnum', | |
| 371 initializer_value=mojom_types_mojom.Value( | 368 initializer_value=mojom_types_mojom.Value( |
| 372 literal_value=mojom_types_mojom.LiteralValue(uint64_value=20)), | 369 literal_value=mojom_types_mojom.LiteralValue(uint64_value=20)), |
| 373 int_value=20) | 370 int_value=20) |
| 374 value2 = mojom_types_mojom.EnumValue( | 371 value2 = mojom_types_mojom.EnumValue( |
| 375 decl_data=mojom_types_mojom.DeclarationData(short_name='val2'), | 372 decl_data=mojom_types_mojom.DeclarationData(short_name='val2'), |
| 376 enum_type_key='AnEnum', | |
| 377 int_value=70) | 373 int_value=70) |
| 378 mojom_enum.values = [value1, value2] | 374 mojom_enum.values = [value1, value2] |
| 379 | 375 |
| 380 | 376 |
| 381 graph = mojom_files_mojom.MojomFileGraph() | 377 graph = mojom_files_mojom.MojomFileGraph() |
| 382 enum = module.Enum() | 378 enum = module.Enum() |
| 383 translator = mojom_translator.FileTranslator(graph, file_name) | 379 translator = mojom_translator.FileTranslator(graph, file_name) |
| 384 translator.EnumFromMojom( | 380 translator.EnumFromMojom( |
| 385 enum, mojom_types_mojom.UserDefinedType(enum_type=mojom_enum)) | 381 enum, mojom_types_mojom.UserDefinedType(enum_type=mojom_enum)) |
| 386 | 382 |
| (...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 750 | 746 |
| 751 mojom_const = mojom_types_mojom.DeclaredConstant( | 747 mojom_const = mojom_types_mojom.DeclaredConstant( |
| 752 decl_data=mojom_types_mojom.DeclarationData( | 748 decl_data=mojom_types_mojom.DeclarationData( |
| 753 short_name='AConst', | 749 short_name='AConst', |
| 754 container_type_key='parent_key'), | 750 container_type_key='parent_key'), |
| 755 type=mojom_types_mojom.Type( | 751 type=mojom_types_mojom.Type( |
| 756 simple_type=mojom_types_mojom.SimpleType.INT64), | 752 simple_type=mojom_types_mojom.SimpleType.INT64), |
| 757 value=mojom_types_mojom.Value( | 753 value=mojom_types_mojom.Value( |
| 758 literal_value=mojom_types_mojom.LiteralValue( | 754 literal_value=mojom_types_mojom.LiteralValue( |
| 759 int64_value=30))) | 755 int64_value=30))) |
| 760 user_defined_value = mojom_types_mojom.UserDefinedValue() | 756 graph.resolved_constants = {'constant_key': mojom_const} |
| 761 user_defined_value.declared_constant = mojom_const | |
| 762 graph.resolved_values = {'value_key': user_defined_value} | |
| 763 | 757 |
| 764 contained_declarations = mojom_types_mojom.ContainedDeclarations( | 758 contained_declarations = mojom_types_mojom.ContainedDeclarations( |
| 765 enums=['enum_key'], constants=['value_key']) | 759 enums=['enum_key'], constants=['constant_key']) |
| 766 | 760 |
| 767 translator = mojom_translator.FileTranslator(graph, file_name) | 761 translator = mojom_translator.FileTranslator(graph, file_name) |
| 768 struct = module.Struct(name='parent') | 762 struct = module.Struct(name='parent') |
| 769 translator._type_cache['parent_key'] = struct | 763 translator._type_cache['parent_key'] = struct |
| 770 translator.PopulateContainedDeclarationsFromMojom( | 764 translator.PopulateContainedDeclarationsFromMojom( |
| 771 struct, contained_declarations) | 765 struct, contained_declarations) |
| 772 | 766 |
| 773 self.assertEquals( | 767 self.assertEquals( |
| 774 mojom_enum.decl_data.short_name, struct.enums[0].name) | 768 mojom_enum.decl_data.short_name, struct.enums[0].name) |
| 775 self.assertEquals(struct, struct.enums[0].parent_kind) | 769 self.assertEquals(struct, struct.enums[0].parent_kind) |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 831 file_name = 'a.mojom' | 825 file_name = 'a.mojom' |
| 832 mojom_enum = mojom_types_mojom.MojomEnum() | 826 mojom_enum = mojom_types_mojom.MojomEnum() |
| 833 mojom_enum.decl_data = mojom_types_mojom.DeclarationData( | 827 mojom_enum.decl_data = mojom_types_mojom.DeclarationData( |
| 834 short_name='AnEnum', | 828 short_name='AnEnum', |
| 835 source_file_info=mojom_types_mojom.SourceFileInfo(file_name=file_name)) | 829 source_file_info=mojom_types_mojom.SourceFileInfo(file_name=file_name)) |
| 836 value1 = mojom_types_mojom.EnumValue( | 830 value1 = mojom_types_mojom.EnumValue( |
| 837 decl_data=mojom_types_mojom.DeclarationData( | 831 decl_data=mojom_types_mojom.DeclarationData( |
| 838 short_name='val1', | 832 short_name='val1', |
| 839 source_file_info=mojom_types_mojom.SourceFileInfo( | 833 source_file_info=mojom_types_mojom.SourceFileInfo( |
| 840 file_name=file_name)), | 834 file_name=file_name)), |
| 841 enum_type_key='enum_key', | |
| 842 initializer_value=mojom_types_mojom.Value( | 835 initializer_value=mojom_types_mojom.Value( |
| 843 literal_value=mojom_types_mojom.LiteralValue(uint64_value=20)), | 836 literal_value=mojom_types_mojom.LiteralValue(uint64_value=20)), |
| 844 int_value=20) | 837 int_value=20) |
| 845 value2 = mojom_types_mojom.EnumValue( | 838 value2 = mojom_types_mojom.EnumValue( |
| 846 decl_data=mojom_types_mojom.DeclarationData(short_name='val2'), | 839 decl_data=mojom_types_mojom.DeclarationData(short_name='val2'), |
| 847 enum_type_key='enum_key', | |
| 848 int_value=70) | 840 int_value=70) |
| 849 mojom_enum.values = [value1, value2] | 841 mojom_enum.values = [value1, value2] |
| 850 | 842 |
| 851 graph = mojom_files_mojom.MojomFileGraph() | 843 graph = mojom_files_mojom.MojomFileGraph() |
| 852 graph.resolved_types = { | 844 graph.resolved_types = { |
| 853 'enum_key': mojom_types_mojom.UserDefinedType(enum_type=mojom_enum)} | 845 'enum_key': mojom_types_mojom.UserDefinedType(enum_type=mojom_enum)} |
| 854 graph.resolved_values = { | |
| 855 'enum_value1': mojom_types_mojom.UserDefinedValue(enum_value=value1), | |
| 856 'enum_value2': mojom_types_mojom.UserDefinedValue(enum_value=value2), | |
| 857 } | |
| 858 | 846 |
| 859 mojom = mojom_types_mojom.Value( | 847 mojom = mojom_types_mojom.Value( |
| 860 user_value_reference=mojom_types_mojom.UserValueReference( | 848 enum_value_reference=mojom_types_mojom.EnumValueReference( |
| 861 identifier='SOMEID', | 849 identifier='SOMEID', |
| 862 value_key='enum_value1')) | 850 enum_type_key='enum_key', |
| 851 enum_value_index=0)) |
| 863 | 852 |
| 864 translator = mojom_translator.FileTranslator(graph, file_name) | 853 translator = mojom_translator.FileTranslator(graph, file_name) |
| 865 enum_value = translator.ValueFromMojom(mojom) | 854 enum_value = translator.ValueFromMojom(mojom) |
| 866 enum = translator.UserDefinedFromTypeKey('enum_key') | 855 enum = translator.UserDefinedFromTypeKey('enum_key') |
| 867 | 856 |
| 868 self.assertIs(enum, enum_value.enum) | 857 self.assertIs(enum, enum_value.enum) |
| 869 self.assertIs(value1.decl_data.short_name, enum_value.name) | 858 self.assertIs(value1.decl_data.short_name, enum_value.name) |
| 870 | 859 |
| 871 def test_constant_value(self): | 860 def test_constant_value(self): |
| 872 file_name = 'a.mojom' | 861 file_name = 'a.mojom' |
| 873 mojom_const = mojom_types_mojom.DeclaredConstant( | 862 mojom_const = mojom_types_mojom.DeclaredConstant( |
| 874 decl_data=mojom_types_mojom.DeclarationData( | 863 decl_data=mojom_types_mojom.DeclarationData( |
| 875 short_name='AConst', | 864 short_name='AConst', |
| 876 source_file_info=mojom_types_mojom.SourceFileInfo( | 865 source_file_info=mojom_types_mojom.SourceFileInfo( |
| 877 file_name=file_name)), | 866 file_name=file_name)), |
| 878 type=mojom_types_mojom.Type( | 867 type=mojom_types_mojom.Type( |
| 879 simple_type=mojom_types_mojom.SimpleType.INT64), | 868 simple_type=mojom_types_mojom.SimpleType.INT64), |
| 880 value=mojom_types_mojom.Value( | 869 value=mojom_types_mojom.Value( |
| 881 literal_value=mojom_types_mojom.LiteralValue( | 870 literal_value=mojom_types_mojom.LiteralValue( |
| 882 int64_value=30))) | 871 int64_value=30))) |
| 883 user_defined_value = mojom_types_mojom.UserDefinedValue() | |
| 884 user_defined_value.declared_constant = mojom_const | |
| 885 | 872 |
| 886 graph = mojom_files_mojom.MojomFileGraph() | 873 graph = mojom_files_mojom.MojomFileGraph() |
| 887 graph.resolved_values = {'value_key': user_defined_value} | 874 graph.resolved_constants = {'constant_key': mojom_const} |
| 888 | 875 |
| 889 mojom = mojom_types_mojom.Value( | 876 mojom = mojom_types_mojom.Value( |
| 890 user_value_reference=mojom_types_mojom.UserValueReference( | 877 constant_reference=mojom_types_mojom.ConstantReference( |
| 891 identifier='SOMEID', | 878 identifier='SOMEID', |
| 892 value_key='value_key')) | 879 constant_key='constant_key')) |
| 893 | 880 |
| 894 translator = mojom_translator.FileTranslator(graph, file_name) | 881 translator = mojom_translator.FileTranslator(graph, file_name) |
| 895 const_value = translator.ValueFromMojom(mojom) | 882 const_value = translator.ValueFromMojom(mojom) |
| 896 self.assertIs( | 883 self.assertIs( |
| 897 translator.ConstantFromValueKey('value_key'), const_value.constant) | 884 translator.ConstantFromKey('constant_key'), const_value.constant) |
| 898 self.assertIs(mojom_const.decl_data.short_name, const_value.name) | 885 self.assertIs(mojom_const.decl_data.short_name, const_value.name) |
| 899 | 886 |
| 900 | 887 |
| 901 @unittest.skipUnless(bindings_imported, 'Could not import python bindings.') | 888 @unittest.skipUnless(bindings_imported, 'Could not import python bindings.') |
| 902 class TestKindFromMojom(unittest.TestCase): | 889 class TestKindFromMojom(unittest.TestCase): |
| 903 | 890 |
| 904 def test_simple_type(self): | 891 def test_simple_type(self): |
| 905 simple_types = [ | 892 simple_types = [ |
| 906 (mojom_types_mojom.SimpleType.BOOL, module.BOOL), | 893 (mojom_types_mojom.SimpleType.BOOL, module.BOOL), |
| 907 (mojom_types_mojom.SimpleType.INT8, module.INT8), | 894 (mojom_types_mojom.SimpleType.INT8, module.INT8), |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1101 """Builds a list containing a single StructVersion with | 1088 """Builds a list containing a single StructVersion with |
| 1102 version_number=0, num_bytes=0, and the given value for num_fields. Adds this | 1089 version_number=0, num_bytes=0, and the given value for num_fields. Adds this |
| 1103 as the |version_info| attribute of |mojom_struct|. | 1090 as the |version_info| attribute of |mojom_struct|. |
| 1104 | 1091 |
| 1105 Args: | 1092 Args: |
| 1106 mojom_struct: {any} The Python object to which a |version_info| attribute | 1093 mojom_struct: {any} The Python object to which a |version_info| attribute |
| 1107 will be added. | 1094 will be added. |
| 1108 num_fields: {int} The value of num_fields to use. | 1095 num_fields: {int} The value of num_fields to use. |
| 1109 """ | 1096 """ |
| 1110 mojom_struct.version_info=build_version_info(num_fields) | 1097 mojom_struct.version_info=build_version_info(num_fields) |
| OLD | NEW |