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

Unified Diff: mojo/dart/unittests/embedder_tests/bindings_generation_test.dart

Issue 1753013002: Mojom runtime type info: New implementation for Dart. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: No changes to sha1s Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: mojo/dart/unittests/embedder_tests/bindings_generation_test.dart
diff --git a/mojo/dart/unittests/embedder_tests/bindings_generation_test.dart b/mojo/dart/unittests/embedder_tests/bindings_generation_test.dart
index fdcdfa6b22ce903b5b6bd732755e8fe1e5cb7a45..80cd0d40e258295e740408205051751e55941f98 100644
--- a/mojo/dart/unittests/embedder_tests/bindings_generation_test.dart
+++ b/mojo/dart/unittests/embedder_tests/bindings_generation_test.dart
@@ -410,13 +410,22 @@ testValidateMojomTypes() {
testValidateInterfaceType();
}
+// computeTypeKey encapsulates the algorithm for computing the type key
+// of a type given its fully-qualified name.
+//
+// TODO(rudominer) Delete this when we add accessors for Mojom types
+// in the Dart bindings.
+String computeTypeKey(String fullyQualifiedName) {
+ return "TYPE_KEY:" + fullyQualifiedName;
+}
+
// Test that mojom type descriptors were generated correctly for validation's
// BasicEnum.
testValidateEnumType() {
var testValidationDescriptor = validation.getAllMojomTypeDefinitions();
- String enumID = "validation_test_interfaces_BasicEnum__";
String shortName = "BasicEnum";
String fullIdentifier = "mojo.test.BasicEnum";
+ String enumID = computeTypeKey(fullIdentifier);
Map<String, int> labelMap = <String, int>{
"A": 0,
"B": 1,
@@ -454,12 +463,12 @@ testValidateEnumType() {
// StructE.
testValidateStructType() {
var testValidationDescriptor = validation.getAllMojomTypeDefinitions();
- String structID = "validation_test_interfaces_StructE__";
String shortName = "StructE";
String fullIdentifier = "mojo.test.StructE";
+ String structID = computeTypeKey(fullIdentifier);
Map<int, String> expectedFields = <int, String>{
- 0: "StructD",
- 1: "DataPipeConsumer",
+ 0: "struct_d",
+ 1: "data_pipe_consumer",
};
// Extract the UserDefinedType from the descriptor using structID.
@@ -490,8 +499,8 @@ testValidateStructType() {
// Type key, identifier, and expected reference id should match up.
mojom_types.TypeReference tr = t.typeReference;
- String expectedRefID = "validation_test_interfaces_StructD__";
- Expect.equals(expectedRefID, tr.identifier);
+ String expectedRefID = computeTypeKey("mojo.test.StructD");
+ Expect.equals("StructD", tr.identifier);
Expect.equals(expectedRefID, tr.typeKey);
break;
case 1: // This is a non-nullable DataPipeConsumer HandleType.
@@ -514,14 +523,14 @@ testValidateStructType() {
// UnionB.
testValidateUnionType() {
var testValidationDescriptor = validation.getAllMojomTypeDefinitions();
- String unionID = "validation_test_interfaces_UnionB__";
String shortName = "UnionB";
String fullIdentifier = "mojo.test.UnionB";
+ String unionID = computeTypeKey(fullIdentifier);
Map<int, String> expectedFields = <int, String>{
- 0: "A",
- 1: "B",
- 2: "C",
- 3: "D",
+ 0: "a",
+ 1: "b",
+ 2: "c",
+ 3: "d",
};
// Extract the UserDefinedType from the descriptor using unionID.
@@ -538,8 +547,14 @@ testValidateUnionType() {
// Now compare the fields to verify that the union fields match the expected
// ones.
Expect.equals(mu.fields.length, expectedFields.length);
+ // TODO(rudominer) Currently ordinal tags in enums are not being populated by
+ // the Mojom parser in mojom_types.mojom so for now we must assume that
+ // the ordinals are in sequential order (which they are in the .mojom
+ // file being used for this test.)
+ int nextOrdinal = 0;
mu.fields.forEach((mojom_types.UnionField field) {
- int ordinal = field.tag;
+ int ordinal = nextOrdinal;
+ nextOrdinal++;
// Check that the declData is correct...
Expect.isNotNull(field.declData);
@@ -572,10 +587,10 @@ testValidateUnionType() {
// IncludingStruct, which contains a union imported from test_included_unions.
testValidateTestStructWithImportType() {
var testUnionsDescriptor = unions.getAllMojomTypeDefinitions();
- String structID = "test_unions_IncludingStruct__";
String shortName = "IncludingStruct";
String fullIdentifier = "mojo.test.IncludingStruct";
- Map<int, String> expectedFields = <int, String>{0: "A",};
+ String structID = computeTypeKey(fullIdentifier);
+ Map<int, String> expectedFields = <int, String>{0: "a",};
// Extract the UserDefinedType from the descriptor using structID.
mojom_types.UserDefinedType udt = testUnionsDescriptor[structID];
@@ -605,8 +620,8 @@ testValidateTestStructWithImportType() {
// Type key, identifier, and expected reference id should match up.
mojom_types.TypeReference tr = t.typeReference;
- String expectedRefID = "test_included_unions_IncludedUnion__";
- Expect.equals(expectedRefID, tr.identifier);
+ String expectedRefID = computeTypeKey("mojo.test.IncludedUnion");
+ Expect.equals("IncludedUnion", tr.identifier);
Expect.equals(expectedRefID, tr.typeKey);
break;
default:
@@ -626,9 +641,9 @@ testValidateInterfaceType() {
// };
var testValidationDescriptor = validation.getAllMojomTypeDefinitions();
- String interfaceID = "validation_test_interfaces_BoundsCheckTestInterface__";
String shortName = "BoundsCheckTestInterface";
String fullIdentifier = "mojo.test.BoundsCheckTestInterface";
+ String interfaceID = computeTypeKey(fullIdentifier);
Map<int, String> methodMap = <int, String>{0: "Method0", 1: "Method1",};
mojom_types.UserDefinedType udt = testValidationDescriptor[interfaceID];

Powered by Google App Engine
This is Rietveld 408576698