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

Unified Diff: mojom/mojom_tool/serialization/serialization_test.go

Issue 1933563002: Mojom frontend: Start populating |resolved_concrete_value| field in mojom_types.mojom (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Grammar fix. Created 4 years, 8 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
« no previous file with comments | « mojom/mojom_tool/serialization/serialization.go ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojom/mojom_tool/serialization/serialization_test.go
diff --git a/mojom/mojom_tool/serialization/serialization_test.go b/mojom/mojom_tool/serialization/serialization_test.go
index cce8a1d666aa2afc4b147edaefb7e7d536a1ff9b..96cde0acdc984e5113c5b9f72c771114a16c53df 100644
--- a/mojom/mojom_tool/serialization/serialization_test.go
+++ b/mojom/mojom_tool/serialization/serialization_test.go
@@ -995,6 +995,126 @@ func TestSingleFileSerialization(t *testing.T) {
}
////////////////////////////////////////////////////////////
+ // Test Case: Constants defined in terms of other constants.
+ ////////////////////////////////////////////////////////////
+ {
+
+ contents := `
+ enum Color{
+ RED, BLUE
+ };
+
+ const int32 x1 = 42;
+ const int32 x2 = x1;
+ const int32 x3 = x2;
+
+ const Color c1 = RED;
+ const Color c2 = c1;
+ const Color c3 = c2;
+ `
+ test.addTestCase("", contents)
+
+ // DeclaredMojomObjects
+ test.expectedFile().DeclaredMojomObjects.TopLevelEnums = &[]string{"TYPE_KEY:Color"}
+ test.expectedFile().DeclaredMojomObjects.TopLevelConstants = &[]string{"TYPE_KEY:x1", "TYPE_KEY:x2",
+ "TYPE_KEY:x3", "TYPE_KEY:c1", "TYPE_KEY:c2", "TYPE_KEY:c3"}
+
+ // Resolved Values
+
+ // Color.RED
+ test.expectedGraph().ResolvedValues["TYPE_KEY:Color.RED"] = &mojom_types.UserDefinedValueEnumValue{mojom_types.EnumValue{
+ DeclData: test.newDeclData("RED", "Color.RED"),
+ EnumTypeKey: "TYPE_KEY:Color",
+ IntValue: 0,
+ }}
+
+ // Color.BLUE
+ test.expectedGraph().ResolvedValues["TYPE_KEY:Color.BLUE"] = &mojom_types.UserDefinedValueEnumValue{mojom_types.EnumValue{
+ DeclData: test.newDeclData("BLUE", "Color.BLUE"),
+ EnumTypeKey: "TYPE_KEY:Color",
+ IntValue: 1,
+ }}
+
+ // x1
+ test.expectedGraph().ResolvedValues["TYPE_KEY:x1"] = &mojom_types.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{
+ DeclData: *test.newDeclData("x1", "x1"),
+ Type: &mojom_types.TypeSimpleType{mojom_types.SimpleType_Int32},
+ Value: &mojom_types.ValueLiteralValue{&mojom_types.LiteralValueInt8Value{42}},
+ }}
+
+ // x2
+ test.expectedGraph().ResolvedValues["TYPE_KEY:x2"] = &mojom_types.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{
+ DeclData: *test.newDeclData("x2", "x2"),
+ Type: &mojom_types.TypeSimpleType{mojom_types.SimpleType_Int32},
+ Value: &mojom_types.ValueUserValueReference{mojom_types.UserValueReference{
+ Identifier: "x1",
+ ValueKey: stringPointer("TYPE_KEY:x1")}},
+ ResolvedConcreteValue: &mojom_types.ValueLiteralValue{&mojom_types.LiteralValueInt8Value{42}},
+ }}
+
+ // x3
+ test.expectedGraph().ResolvedValues["TYPE_KEY:x3"] = &mojom_types.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{
+ DeclData: *test.newDeclData("x3", "x3"),
+ Type: &mojom_types.TypeSimpleType{mojom_types.SimpleType_Int32},
+ Value: &mojom_types.ValueUserValueReference{mojom_types.UserValueReference{
+ Identifier: "x2",
+ ValueKey: stringPointer("TYPE_KEY:x2")}},
+ ResolvedConcreteValue: &mojom_types.ValueLiteralValue{&mojom_types.LiteralValueInt8Value{42}},
+ }}
+
+ // c1
+ test.expectedGraph().ResolvedValues["TYPE_KEY:c1"] = &mojom_types.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{
+ DeclData: *test.newDeclData("c1", "c1"),
+ Type: &mojom_types.TypeTypeReference{mojom_types.TypeReference{
+ false, false, stringPointer("Color"), stringPointer("TYPE_KEY:Color")}},
+ Value: &mojom_types.ValueUserValueReference{mojom_types.UserValueReference{
+ Identifier: "RED",
+ ValueKey: stringPointer("TYPE_KEY:Color.RED")}},
+ }}
+
+ // c2
+ test.expectedGraph().ResolvedValues["TYPE_KEY:c2"] = &mojom_types.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{
+ DeclData: *test.newDeclData("c2", "c2"),
+ Type: &mojom_types.TypeTypeReference{mojom_types.TypeReference{
+ false, false, stringPointer("Color"), stringPointer("TYPE_KEY:Color")}},
+ Value: &mojom_types.ValueUserValueReference{mojom_types.UserValueReference{
+ Identifier: "c1",
+ ValueKey: stringPointer("TYPE_KEY:c1")}},
+ ResolvedConcreteValue: &mojom_types.ValueUserValueReference{mojom_types.UserValueReference{
+ ValueKey: stringPointer("TYPE_KEY:Color.RED")}},
+ }}
+
+ // c3
+ test.expectedGraph().ResolvedValues["TYPE_KEY:c3"] = &mojom_types.UserDefinedValueDeclaredConstant{mojom_types.DeclaredConstant{
+ DeclData: *test.newDeclData("c3", "c3"),
+ Type: &mojom_types.TypeTypeReference{mojom_types.TypeReference{
+ false, false, stringPointer("Color"), stringPointer("TYPE_KEY:Color")}},
+ Value: &mojom_types.ValueUserValueReference{mojom_types.UserValueReference{
+ Identifier: "c2",
+ ValueKey: stringPointer("TYPE_KEY:c2")}},
+ ResolvedConcreteValue: &mojom_types.ValueUserValueReference{mojom_types.UserValueReference{
+ ValueKey: stringPointer("TYPE_KEY:Color.RED")}},
+ }}
+
+ // ResolvedTypes
+
+ // enum Color
+ test.expectedGraph().ResolvedTypes["TYPE_KEY:Color"] = &mojom_types.UserDefinedTypeEnumType{mojom_types.MojomEnum{
+ DeclData: test.newDeclData("Color", "Color"),
+ Values: []mojom_types.EnumValue{
+ // Note(rudominer) It is a bug that we need to copy the enum values here.
+ // See https://github.com/domokit/mojo/issues/513.
+ // value RED
+ test.expectedGraph().ResolvedValues["TYPE_KEY:Color.RED"].(*mojom_types.UserDefinedValueEnumValue).Value,
+ // value BLUE
+ test.expectedGraph().ResolvedValues["TYPE_KEY:Color.BLUE"].(*mojom_types.UserDefinedValueEnumValue).Value,
+ },
+ }}
+
+ test.endTestCase()
+ }
+
+ ////////////////////////////////////////////////////////////
// Test Case
////////////////////////////////////////////////////////////
{
« no previous file with comments | « mojom/mojom_tool/serialization/serialization.go ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698