From d3079cd3345f044f28e2f34376ee821ba63f7b18 Mon Sep 17 00:00:00 2001 From: garyqian Date: Tue, 8 Jun 2021 10:12:06 +0700 Subject: [PATCH 1/3] Fix obj bug: --- packages/pigeon/lib/objc_generator.dart | 2 +- packages/pigeon/test/objc_generator_test.dart | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/packages/pigeon/lib/objc_generator.dart b/packages/pigeon/lib/objc_generator.dart index f736c9fd537e..1148ecc04127 100644 --- a/packages/pigeon/lib/objc_generator.dart +++ b/packages/pigeon/lib/objc_generator.dart @@ -446,7 +446,7 @@ static NSDictionary* wrapResult(NSDictionary *result, FlutterErro for (final Field field in klass.fields) { if (enumNames.contains(field.dataType)) { indent.writeln( - '$resultName.${field.name} = (int)${_dictGetter(classNames, 'dict', field, options.prefix)};'); + '$resultName.${field.name} = [${_dictGetter(classNames, 'dict', field, options.prefix)} integerValue];'); } else { indent.writeln( '$resultName.${field.name} = ${_dictGetter(classNames, 'dict', field, options.prefix)};'); diff --git a/packages/pigeon/test/objc_generator_test.dart b/packages/pigeon/test/objc_generator_test.dart index 6c762f95bacf..acc5ad47917d 100644 --- a/packages/pigeon/test/objc_generator_test.dart +++ b/packages/pigeon/test/objc_generator_test.dart @@ -69,6 +69,34 @@ void main() { expect(code, contains(' PREFIXEnum1Two = 1,')); }); + test('gen one class source with enum', () { + final Root root = Root(apis: [], classes: [ + Class( + name: 'Foobar', + fields: [ + Field(name: 'field1', dataType: 'String'). + Field(name: 'enum1', dataType: 'Enum1'). + ] + ), + ], enums: [ + Enum( + name: 'Enum1', + members: [ + 'one', + 'two', + ], + ) + ], + ); + final StringBuffer sink = StringBuffer(); + generateObjcSource(ObjcOptions(header: 'foo.h'), root, sink); + final String code = sink.toString(); + expect(code, contains('#import "foo.h"')); + expect(code, contains('@implementation Foobar')); + expect(code, contains('result.enum1 = [dict[@"enum1"] integerValue];')); + }); + + test('gen one api header', () { final Root root = Root(apis: [ Api(name: 'Api', location: ApiLocation.host, methods: [ From c2f96f48989d286ca856335233739c5f70f37d3e Mon Sep 17 00:00:00 2001 From: garyqian Date: Tue, 8 Jun 2021 10:35:36 +0700 Subject: [PATCH 2/3] Typo --- packages/pigeon/test/objc_generator_test.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/pigeon/test/objc_generator_test.dart b/packages/pigeon/test/objc_generator_test.dart index acc5ad47917d..ad5b652d3c36 100644 --- a/packages/pigeon/test/objc_generator_test.dart +++ b/packages/pigeon/test/objc_generator_test.dart @@ -74,9 +74,9 @@ void main() { Class( name: 'Foobar', fields: [ - Field(name: 'field1', dataType: 'String'). - Field(name: 'enum1', dataType: 'Enum1'). - ] + Field(name: 'field1', dataType: 'String'), + Field(name: 'enum1', dataType: 'Enum1'), + ], ), ], enums: [ Enum( From 5dc5ab26e0707e6ac7c5c4145926a2b154af1d8e Mon Sep 17 00:00:00 2001 From: garyqian Date: Tue, 8 Jun 2021 11:57:58 +0700 Subject: [PATCH 3/3] FOrmatting: --- packages/pigeon/test/objc_generator_test.dart | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/pigeon/test/objc_generator_test.dart b/packages/pigeon/test/objc_generator_test.dart index ad5b652d3c36..7008c2f79d5b 100644 --- a/packages/pigeon/test/objc_generator_test.dart +++ b/packages/pigeon/test/objc_generator_test.dart @@ -70,7 +70,9 @@ void main() { }); test('gen one class source with enum', () { - final Root root = Root(apis: [], classes: [ + final Root root = Root( + apis: [], + classes: [ Class( name: 'Foobar', fields: [ @@ -78,7 +80,8 @@ void main() { Field(name: 'enum1', dataType: 'Enum1'), ], ), - ], enums: [ + ], + enums: [ Enum( name: 'Enum1', members: [ @@ -96,7 +99,6 @@ void main() { expect(code, contains('result.enum1 = [dict[@"enum1"] integerValue];')); }); - test('gen one api header', () { final Root root = Root(apis: [ Api(name: 'Api', location: ApiLocation.host, methods: [