| Index: mojom/generators/go/templates/encoding_test.go
|
| diff --git a/mojom/generators/go/templates/encoding_test.go b/mojom/generators/go/templates/encoding_test.go
|
| index e2ce44ed09ce951fdca756b48dde446ae2d26e21..0f5326d7ef7fe7ff2c53090c70554bb7cf0f60e6 100644
|
| --- a/mojom/generators/go/templates/encoding_test.go
|
| +++ b/mojom/generators/go/templates/encoding_test.go
|
| @@ -21,6 +21,8 @@ type mockEncodingInfo struct {
|
| isStruct bool
|
| isUnion bool
|
| isEnum bool
|
| + isInterface bool
|
| + isInterfaceRequest bool
|
| elementEncodingInfo *mockEncodingInfo
|
| keyEncodingInfo *mockEncodingInfo
|
| valueEncodingInfo *mockEncodingInfo
|
| @@ -40,6 +42,8 @@ func (m mockEncodingInfo) IsNullable() bool { return
|
| func (m mockEncodingInfo) IsStruct() bool { return m.isStruct }
|
| func (m mockEncodingInfo) IsUnion() bool { return m.isUnion }
|
| func (m mockEncodingInfo) IsEnum() bool { return m.isEnum }
|
| +func (m mockEncodingInfo) IsInterface() bool { return m.isInterface }
|
| +func (m mockEncodingInfo) IsInterfaceRequest() bool { return m.isInterfaceRequest }
|
| func (m mockEncodingInfo) ElementEncodingInfo() translator.EncodingInfo { return m.elementEncodingInfo }
|
| func (m mockEncodingInfo) KeyEncodingInfo() translator.EncodingInfo { return m.keyEncodingInfo }
|
| func (m mockEncodingInfo) ValueEncodingInfo() translator.EncodingInfo { return m.valueEncodingInfo }
|
| @@ -391,3 +395,71 @@ func TestEncodingEnumFieldEncoding(t *testing.T) {
|
|
|
| check(t, expected, "FieldEncodingTmpl", encodingInfo)
|
| }
|
| +
|
| +func TestEncodingInterfaceFieldEncoding(t *testing.T) {
|
| + expected := `if err := encoder.WriteInterface(s.IntField.PassMessagePipe()); err != nil {
|
| + return err
|
| +}`
|
| +
|
| + encodingInfo := mockEncodingInfo{
|
| + isInterface: true,
|
| + identifier: "s.IntField",
|
| + writeFunction: "WriteInterface",
|
| + }
|
| +
|
| + check(t, expected, "FieldEncodingTmpl", encodingInfo)
|
| +}
|
| +
|
| +func TestEncodingNullableInterfaceFieldEncoding(t *testing.T) {
|
| + expected := `if s.IntField == nil {
|
| + encoder.WriteInvalidInterface()
|
| +} else {
|
| + if err := encoder.WriteInterface(s.IntField.PassMessagePipe()); err != nil {
|
| + return err
|
| + }
|
| +}`
|
| +
|
| + encodingInfo := mockEncodingInfo{
|
| + isInterface: true,
|
| + isNullable: true,
|
| + identifier: "s.IntField",
|
| + writeFunction: "WriteInterface",
|
| + }
|
| +
|
| + check(t, expected, "FieldEncodingTmpl", encodingInfo)
|
| +}
|
| +
|
| +func TestEncodingInterfaceRequestFieldEncoding(t *testing.T) {
|
| + expected := `if err := encoder.WriteHandle(s.IntField.PassMessagePipe()); err != nil {
|
| + return err
|
| +}`
|
| +
|
| + encodingInfo := mockEncodingInfo{
|
| + isInterface: true,
|
| + isInterfaceRequest: true,
|
| + identifier: "s.IntField",
|
| + writeFunction: "WriteHandle",
|
| + }
|
| +
|
| + check(t, expected, "FieldEncodingTmpl", encodingInfo)
|
| +}
|
| +
|
| +func TestEncodingNullableInterfaceRequestFieldEncoding(t *testing.T) {
|
| + expected := `if s.IntField == nil {
|
| + encoder.WriteInvalidHandle()
|
| +} else {
|
| + if err := encoder.WriteHandle(s.IntField.PassMessagePipe()); err != nil {
|
| + return err
|
| + }
|
| +}`
|
| +
|
| + encodingInfo := mockEncodingInfo{
|
| + isInterface: true,
|
| + isInterfaceRequest: true,
|
| + isNullable: true,
|
| + identifier: "s.IntField",
|
| + writeFunction: "WriteHandle",
|
| + }
|
| +
|
| + check(t, expected, "FieldEncodingTmpl", encodingInfo)
|
| +}
|
|
|