mirror of
https://github.com/flutter/packages.git
synced 2025-07-01 23:51:55 +08:00
[pigeon] Fixes double prefixes added to enum names for Objc HostApis and FlutterApis (#6263)
In some areas of the Objc generator, the the name created from [_objcTypeForDartType](https://github.com/flutter/packages/blob/main/packages/pigeon/lib/objc_generator.dart#L1353) is being passed to [_enumName](https://github.com/flutter/packages/blob/main/packages/pigeon/lib/objc_generator.dart#L1196) and both of these methods add a prefix to enums. The locations are when they are used in `HostApi` or `FlutterApi` methods, but the name of the generated enum would be correct. e.g. `FLTEnumName` vs `FLTFLTEnumName`. This fixes the locations where this is happening by passing the AST name to `_enumName` instead.
This commit is contained in:
@ -1,3 +1,7 @@
|
||||
## 17.1.3
|
||||
|
||||
* [objc] Fixes double prefixes added to enum names.
|
||||
|
||||
## 17.1.2
|
||||
|
||||
* [swift] Separates message call code generation into separate methods.
|
||||
|
@ -13,7 +13,7 @@ import 'ast.dart';
|
||||
/// The current version of pigeon.
|
||||
///
|
||||
/// This must match the version in pubspec.yaml.
|
||||
const String pigeonVersion = '17.1.2';
|
||||
const String pigeonVersion = '17.1.3';
|
||||
|
||||
/// Read all the content from [stdin] to a String.
|
||||
String readStdin() {
|
||||
|
@ -359,7 +359,7 @@ class ObjcHeaderGenerator extends StructuredGenerator<ObjcOptions> {
|
||||
String? lastArgType;
|
||||
String? returnType;
|
||||
final String enumReturnType = _enumName(
|
||||
returnTypeName.baseName,
|
||||
func.returnType.baseName,
|
||||
suffix: ' *_Nullable',
|
||||
prefix: generatorOptions.prefix,
|
||||
box: true,
|
||||
@ -765,7 +765,7 @@ static FlutterError *createConnectionError(NSString *channelName) {
|
||||
} else if (arg.type.isEnum) {
|
||||
indent.writeln('NSNumber *${argName}AsNumber = $valueGetter;');
|
||||
indent.writeln(
|
||||
'${_enumName(arg.type.baseName, suffix: ' *', prefix: '', box: true)}$argName = ${argName}AsNumber == nil ? nil : [[${_enumName(arg.type.baseName, prefix: generatorOptions.prefix, box: true)} alloc] initWithValue:[${argName}AsNumber integerValue]];');
|
||||
'${_enumName(arg.type.baseName, suffix: ' *', prefix: generatorOptions.prefix, box: true)}$argName = ${argName}AsNumber == nil ? nil : [[${_enumName(arg.type.baseName, prefix: generatorOptions.prefix, box: true)} alloc] initWithValue:[${argName}AsNumber integerValue]];');
|
||||
} else {
|
||||
indent.writeln('${objcArgType.beforeString}$argName = $valueGetter;');
|
||||
}
|
||||
@ -799,7 +799,7 @@ static FlutterError *createConnectionError(NSString *channelName) {
|
||||
|
||||
if (func.returnType.isEnum) {
|
||||
returnTypeString =
|
||||
'${_enumName(returnType.baseName, suffix: ' *_Nullable', prefix: generatorOptions.prefix, box: true)} enumValue';
|
||||
'${_enumName(func.returnType.baseName, suffix: ' *_Nullable', prefix: generatorOptions.prefix, box: true)} enumValue';
|
||||
}
|
||||
if (func.parameters.isEmpty) {
|
||||
indent.writeScoped(
|
||||
@ -1132,7 +1132,7 @@ static FlutterError *createConnectionError(NSString *channelName) {
|
||||
indent.writeln('completion(nil);');
|
||||
} else {
|
||||
if (func.returnType.isEnum) {
|
||||
final String enumName = _enumName(returnType.baseName,
|
||||
final String enumName = _enumName(func.returnType.baseName,
|
||||
prefix: languageOptions.prefix, box: true);
|
||||
indent.writeln('NSNumber *outputAsNumber = $nullCheck;');
|
||||
indent.writeln(
|
||||
@ -1212,7 +1212,7 @@ String _callbackForType(
|
||||
if (type.isVoid) {
|
||||
return 'void (^)(FlutterError *_Nullable)';
|
||||
} else if (type.isEnum) {
|
||||
return 'void (^)(${_enumName(objcType.baseName, suffix: ' *_Nullable', prefix: options.prefix, box: true)}, FlutterError *_Nullable)';
|
||||
return 'void (^)(${_enumName(type.baseName, suffix: ' *_Nullable', prefix: options.prefix, box: true)}, FlutterError *_Nullable)';
|
||||
} else {
|
||||
return 'void (^)(${objcType.beforeString}_Nullable, FlutterError *_Nullable)';
|
||||
}
|
||||
|
@ -17,14 +17,14 @@
|
||||
@implementation AllDatatypesTest
|
||||
|
||||
- (void)testAllNull {
|
||||
AllNullableTypes *everything = [[AllNullableTypes alloc] init];
|
||||
FLTAllNullableTypes *everything = [[FLTAllNullableTypes alloc] init];
|
||||
EchoBinaryMessenger *binaryMessenger =
|
||||
[[EchoBinaryMessenger alloc] initWithCodec:FlutterIntegrationCoreApiGetCodec()];
|
||||
FlutterIntegrationCoreApi *api =
|
||||
[[FlutterIntegrationCoreApi alloc] initWithBinaryMessenger:binaryMessenger];
|
||||
[[EchoBinaryMessenger alloc] initWithCodec:FLTFlutterIntegrationCoreApiGetCodec()];
|
||||
FLTFlutterIntegrationCoreApi *api =
|
||||
[[FLTFlutterIntegrationCoreApi alloc] initWithBinaryMessenger:binaryMessenger];
|
||||
XCTestExpectation *expectation = [self expectationWithDescription:@"callback"];
|
||||
[api echoAllNullableTypes:everything
|
||||
completion:^(AllNullableTypes *_Nonnull result, FlutterError *_Nullable error) {
|
||||
completion:^(FLTAllNullableTypes *_Nonnull result, FlutterError *_Nullable error) {
|
||||
XCTAssertNil(result.aNullableBool);
|
||||
XCTAssertNil(result.aNullableInt);
|
||||
XCTAssertNil(result.aNullableDouble);
|
||||
@ -41,7 +41,7 @@
|
||||
}
|
||||
|
||||
- (void)testAllEquals {
|
||||
AllNullableTypes *everything = [[AllNullableTypes alloc] init];
|
||||
FLTAllNullableTypes *everything = [[FLTAllNullableTypes alloc] init];
|
||||
everything.aNullableBool = @NO;
|
||||
everything.aNullableInt = @(1);
|
||||
everything.aNullableDouble = @(2.0);
|
||||
@ -58,12 +58,12 @@
|
||||
everything.aNullableMap = @{@"hello" : @(1234)};
|
||||
everything.nullableMapWithObject = @{@"hello" : @(1234), @"goodbye" : @"world"};
|
||||
EchoBinaryMessenger *binaryMessenger =
|
||||
[[EchoBinaryMessenger alloc] initWithCodec:FlutterIntegrationCoreApiGetCodec()];
|
||||
FlutterIntegrationCoreApi *api =
|
||||
[[FlutterIntegrationCoreApi alloc] initWithBinaryMessenger:binaryMessenger];
|
||||
[[EchoBinaryMessenger alloc] initWithCodec:FLTFlutterIntegrationCoreApiGetCodec()];
|
||||
FLTFlutterIntegrationCoreApi *api =
|
||||
[[FLTFlutterIntegrationCoreApi alloc] initWithBinaryMessenger:binaryMessenger];
|
||||
XCTestExpectation *expectation = [self expectationWithDescription:@"callback"];
|
||||
[api echoAllNullableTypes:everything
|
||||
completion:^(AllNullableTypes *_Nonnull result, FlutterError *_Nullable error) {
|
||||
completion:^(FLTAllNullableTypes *_Nonnull result, FlutterError *_Nullable error) {
|
||||
XCTAssertEqual(result.aNullableBool, everything.aNullableBool);
|
||||
XCTAssertEqual(result.aNullableInt, everything.aNullableInt);
|
||||
XCTAssertEqual(result.aNullableDouble, everything.aNullableDouble);
|
||||
|
@ -10,7 +10,7 @@
|
||||
#import "MockBinaryMessenger.h"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
@interface MockHostSmallApi : NSObject <HostSmallApi>
|
||||
@interface MockHostSmallApi : NSObject <FLTHostSmallApi>
|
||||
@property(nonatomic, copy) NSString *output;
|
||||
@property(nonatomic, retain) FlutterError *voidVoidError;
|
||||
@end
|
||||
@ -42,11 +42,11 @@
|
||||
|
||||
- (void)testAsyncHost2Flutter {
|
||||
MockBinaryMessenger *binaryMessenger =
|
||||
[[MockBinaryMessenger alloc] initWithCodec:FlutterIntegrationCoreApiGetCodec()];
|
||||
[[MockBinaryMessenger alloc] initWithCodec:FLTFlutterIntegrationCoreApiGetCodec()];
|
||||
NSString *value = @"Test";
|
||||
binaryMessenger.result = value;
|
||||
FlutterIntegrationCoreApi *flutterApi =
|
||||
[[FlutterIntegrationCoreApi alloc] initWithBinaryMessenger:binaryMessenger];
|
||||
FLTFlutterIntegrationCoreApi *flutterApi =
|
||||
[[FLTFlutterIntegrationCoreApi alloc] initWithBinaryMessenger:binaryMessenger];
|
||||
XCTestExpectation *expectation = [self expectationWithDescription:@"echo callback"];
|
||||
[flutterApi echoAsyncString:value
|
||||
completion:^(NSString *_Nonnull output, FlutterError *_Nullable error) {
|
||||
@ -58,9 +58,9 @@
|
||||
|
||||
- (void)testAsyncFlutter2HostVoidVoid {
|
||||
MockBinaryMessenger *binaryMessenger =
|
||||
[[MockBinaryMessenger alloc] initWithCodec:HostSmallApiGetCodec()];
|
||||
[[MockBinaryMessenger alloc] initWithCodec:FLTHostSmallApiGetCodec()];
|
||||
MockHostSmallApi *mockHostSmallApi = [[MockHostSmallApi alloc] init];
|
||||
SetUpHostSmallApi(binaryMessenger, mockHostSmallApi);
|
||||
SetUpFLTHostSmallApi(binaryMessenger, mockHostSmallApi);
|
||||
NSString *channelName = @"dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.voidVoid";
|
||||
XCTAssertNotNil(binaryMessenger.handlers[channelName]);
|
||||
|
||||
@ -75,12 +75,12 @@
|
||||
|
||||
- (void)testAsyncFlutter2HostVoidVoidError {
|
||||
MockBinaryMessenger *binaryMessenger =
|
||||
[[MockBinaryMessenger alloc] initWithCodec:HostSmallApiGetCodec()];
|
||||
[[MockBinaryMessenger alloc] initWithCodec:FLTHostSmallApiGetCodec()];
|
||||
MockHostSmallApi *mockHostSmallApi = [[MockHostSmallApi alloc] init];
|
||||
mockHostSmallApi.voidVoidError = [FlutterError errorWithCode:@"code"
|
||||
message:@"message"
|
||||
details:nil];
|
||||
SetUpHostSmallApi(binaryMessenger, mockHostSmallApi);
|
||||
SetUpFLTHostSmallApi(binaryMessenger, mockHostSmallApi);
|
||||
NSString *channelName = @"dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.voidVoid";
|
||||
XCTAssertNotNil(binaryMessenger.handlers[channelName]);
|
||||
|
||||
@ -96,11 +96,11 @@
|
||||
|
||||
- (void)testAsyncFlutter2Host {
|
||||
MockBinaryMessenger *binaryMessenger =
|
||||
[[MockBinaryMessenger alloc] initWithCodec:HostSmallApiGetCodec()];
|
||||
[[MockBinaryMessenger alloc] initWithCodec:FLTHostSmallApiGetCodec()];
|
||||
MockHostSmallApi *mockHostSmallApi = [[MockHostSmallApi alloc] init];
|
||||
NSString *value = @"Test";
|
||||
mockHostSmallApi.output = value;
|
||||
SetUpHostSmallApi(binaryMessenger, mockHostSmallApi);
|
||||
SetUpFLTHostSmallApi(binaryMessenger, mockHostSmallApi);
|
||||
NSString *channelName = @"dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.echo";
|
||||
XCTAssertNotNil(binaryMessenger.handlers[channelName]);
|
||||
|
||||
@ -117,9 +117,9 @@
|
||||
|
||||
- (void)testAsyncFlutter2HostError {
|
||||
MockBinaryMessenger *binaryMessenger =
|
||||
[[MockBinaryMessenger alloc] initWithCodec:HostSmallApiGetCodec()];
|
||||
[[MockBinaryMessenger alloc] initWithCodec:FLTHostSmallApiGetCodec()];
|
||||
MockHostSmallApi *mockHostSmallApi = [[MockHostSmallApi alloc] init];
|
||||
SetUpHostSmallApi(binaryMessenger, mockHostSmallApi);
|
||||
SetUpFLTHostSmallApi(binaryMessenger, mockHostSmallApi);
|
||||
NSString *channelName = @"dev.flutter.pigeon.pigeon_integration_tests.HostSmallApi.echo";
|
||||
XCTAssertNotNil(binaryMessenger.handlers[channelName]);
|
||||
|
||||
|
@ -17,18 +17,18 @@
|
||||
@implementation ListTest
|
||||
|
||||
- (void)testListInList {
|
||||
TestMessage *top = [[TestMessage alloc] init];
|
||||
TestMessage *inside = [[TestMessage alloc] init];
|
||||
FLTTestMessage *top = [[FLTTestMessage alloc] init];
|
||||
FLTTestMessage *inside = [[FLTTestMessage alloc] init];
|
||||
inside.testList = @[ @1, @2, @3 ];
|
||||
top.testList = @[ inside ];
|
||||
EchoBinaryMessenger *binaryMessenger =
|
||||
[[EchoBinaryMessenger alloc] initWithCodec:FlutterSmallApiGetCodec()];
|
||||
FlutterSmallApi *api = [[FlutterSmallApi alloc] initWithBinaryMessenger:binaryMessenger];
|
||||
[[EchoBinaryMessenger alloc] initWithCodec:FLTFlutterSmallApiGetCodec()];
|
||||
FLTFlutterSmallApi *api = [[FLTFlutterSmallApi alloc] initWithBinaryMessenger:binaryMessenger];
|
||||
XCTestExpectation *expectation = [self expectationWithDescription:@"callback"];
|
||||
[api echoWrappedList:top
|
||||
completion:^(TestMessage *_Nonnull result, FlutterError *_Nullable err) {
|
||||
completion:^(FLTTestMessage *_Nonnull result, FlutterError *_Nullable err) {
|
||||
XCTAssertEqual(1u, result.testList.count);
|
||||
XCTAssertTrue([result.testList[0] isKindOfClass:[TestMessage class]]);
|
||||
XCTAssertTrue([result.testList[0] isKindOfClass:[FLTTestMessage class]]);
|
||||
XCTAssertEqualObjects(inside.testList, [result.testList[0] testList]);
|
||||
[expectation fulfill];
|
||||
}];
|
||||
|
@ -6,5 +6,5 @@
|
||||
|
||||
#import "CoreTests.gen.h"
|
||||
|
||||
@interface AlternateLanguageTestPlugin : NSObject <FlutterPlugin, HostIntegrationCoreApi>
|
||||
@interface AlternateLanguageTestPlugin : NSObject <FlutterPlugin, FLTHostIntegrationCoreApi>
|
||||
@end
|
||||
|
@ -7,16 +7,16 @@
|
||||
#import "CoreTests.gen.h"
|
||||
|
||||
@interface AlternateLanguageTestPlugin ()
|
||||
@property(nonatomic) FlutterIntegrationCoreApi *flutterAPI;
|
||||
@property(nonatomic) FLTFlutterIntegrationCoreApi *flutterAPI;
|
||||
@end
|
||||
|
||||
/// This plugin handles the native side of the integration tests in example/integration_test/.
|
||||
@implementation AlternateLanguageTestPlugin
|
||||
+ (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar> *)registrar {
|
||||
AlternateLanguageTestPlugin *plugin = [[AlternateLanguageTestPlugin alloc] init];
|
||||
SetUpHostIntegrationCoreApi([registrar messenger], plugin);
|
||||
SetUpFLTHostIntegrationCoreApi([registrar messenger], plugin);
|
||||
plugin.flutterAPI =
|
||||
[[FlutterIntegrationCoreApi alloc] initWithBinaryMessenger:[registrar messenger]];
|
||||
[[FLTFlutterIntegrationCoreApi alloc] initWithBinaryMessenger:[registrar messenger]];
|
||||
}
|
||||
|
||||
#pragma mark HostIntegrationCoreApi implementation
|
||||
@ -24,12 +24,12 @@
|
||||
- (void)noopWithError:(FlutterError *_Nullable *_Nonnull)error {
|
||||
}
|
||||
|
||||
- (nullable AllTypes *)echoAllTypes:(AllTypes *)everything
|
||||
- (nullable FLTAllTypes *)echoAllTypes:(FLTAllTypes *)everything
|
||||
error:(FlutterError *_Nullable *_Nonnull)error {
|
||||
return everything;
|
||||
}
|
||||
|
||||
- (nullable AllNullableTypes *)echoAllNullableTypes:(nullable AllNullableTypes *)everything
|
||||
- (nullable FLTAllNullableTypes *)echoAllNullableTypes:(nullable FLTAllNullableTypes *)everything
|
||||
error:(FlutterError *_Nullable *_Nonnull)error {
|
||||
return everything;
|
||||
}
|
||||
@ -84,13 +84,14 @@
|
||||
return aMap;
|
||||
}
|
||||
|
||||
- (nullable AllClassesWrapper *)echoClassWrapper:(AllClassesWrapper *)wrapper
|
||||
- (nullable FLTAllClassesWrapper *)echoClassWrapper:(FLTAllClassesWrapper *)wrapper
|
||||
error:(FlutterError *_Nullable *_Nonnull)error {
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
- (AnEnumBox *_Nullable)echoEnum:(AnEnum)anEnum error:(FlutterError *_Nullable *_Nonnull)error {
|
||||
return [[AnEnumBox alloc] initWithValue:anEnum];
|
||||
- (FLTAnEnumBox *_Nullable)echoEnum:(FLTAnEnum)anEnum
|
||||
error:(FlutterError *_Nullable *_Nonnull)error {
|
||||
return [[FLTAnEnumBox alloc] initWithValue:anEnum];
|
||||
}
|
||||
|
||||
- (nullable NSString *)echoNamedDefaultString:(NSString *)aString
|
||||
@ -108,25 +109,25 @@
|
||||
return @(anInt);
|
||||
}
|
||||
|
||||
- (nullable NSString *)extractNestedNullableStringFrom:(AllClassesWrapper *)wrapper
|
||||
- (nullable NSString *)extractNestedNullableStringFrom:(FLTAllClassesWrapper *)wrapper
|
||||
error:(FlutterError *_Nullable *_Nonnull)error {
|
||||
return wrapper.allNullableTypes.aNullableString;
|
||||
}
|
||||
|
||||
- (nullable AllClassesWrapper *)
|
||||
- (nullable FLTAllClassesWrapper *)
|
||||
createNestedObjectWithNullableString:(nullable NSString *)nullableString
|
||||
error:(FlutterError *_Nullable *_Nonnull)error {
|
||||
AllNullableTypes *innerObject = [[AllNullableTypes alloc] init];
|
||||
FLTAllNullableTypes *innerObject = [[FLTAllNullableTypes alloc] init];
|
||||
innerObject.aNullableString = nullableString;
|
||||
return [AllClassesWrapper makeWithAllNullableTypes:innerObject allTypes:nil];
|
||||
return [FLTAllClassesWrapper makeWithAllNullableTypes:innerObject allTypes:nil];
|
||||
}
|
||||
|
||||
- (nullable AllNullableTypes *)sendMultipleNullableTypesABool:(nullable NSNumber *)aNullableBool
|
||||
- (nullable FLTAllNullableTypes *)
|
||||
sendMultipleNullableTypesABool:(nullable NSNumber *)aNullableBool
|
||||
anInt:(nullable NSNumber *)aNullableInt
|
||||
aString:(nullable NSString *)aNullableString
|
||||
error:(FlutterError *_Nullable *_Nonnull)
|
||||
error {
|
||||
AllNullableTypes *someTypes = [[AllNullableTypes alloc] init];
|
||||
error:(FlutterError *_Nullable *_Nonnull)error {
|
||||
FLTAllNullableTypes *someTypes = [[FLTAllNullableTypes alloc] init];
|
||||
someTypes.aNullableBool = aNullableBool;
|
||||
someTypes.aNullableInt = aNullableInt;
|
||||
someTypes.aNullableString = aNullableString;
|
||||
@ -175,7 +176,7 @@
|
||||
return aNullableMap;
|
||||
}
|
||||
|
||||
- (AnEnumBox *_Nullable)echoNullableEnum:(nullable AnEnumBox *)AnEnumBoxed
|
||||
- (FLTAnEnumBox *_Nullable)echoNullableEnum:(nullable FLTAnEnumBox *)AnEnumBoxed
|
||||
error:(FlutterError *_Nullable *_Nonnull)error {
|
||||
return AnEnumBoxed;
|
||||
}
|
||||
@ -207,13 +208,13 @@
|
||||
completion(nil, [FlutterError errorWithCode:@"code" message:@"message" details:@"details"]);
|
||||
}
|
||||
|
||||
- (void)echoAsyncAllTypes:(AllTypes *)everything
|
||||
completion:(void (^)(AllTypes *_Nullable, FlutterError *_Nullable))completion {
|
||||
- (void)echoAsyncAllTypes:(FLTAllTypes *)everything
|
||||
completion:(void (^)(FLTAllTypes *_Nullable, FlutterError *_Nullable))completion {
|
||||
completion(everything, nil);
|
||||
}
|
||||
|
||||
- (void)echoAsyncNullableAllNullableTypes:(nullable AllNullableTypes *)everything
|
||||
completion:(void (^)(AllNullableTypes *_Nullable,
|
||||
- (void)echoAsyncNullableAllNullableTypes:(nullable FLTAllNullableTypes *)everything
|
||||
completion:(void (^)(FLTAllNullableTypes *_Nullable,
|
||||
FlutterError *_Nullable))completion {
|
||||
completion(everything, nil);
|
||||
}
|
||||
@ -260,9 +261,9 @@
|
||||
completion(aMap, nil);
|
||||
}
|
||||
|
||||
- (void)echoAsyncEnum:(AnEnum)anEnum
|
||||
completion:(void (^)(AnEnumBox *_Nullable, FlutterError *_Nullable))completion {
|
||||
completion([[AnEnumBox alloc] initWithValue:anEnum], nil);
|
||||
- (void)echoAsyncEnum:(FLTAnEnum)anEnum
|
||||
completion:(void (^)(FLTAnEnumBox *_Nullable, FlutterError *_Nullable))completion {
|
||||
completion([[FLTAnEnumBox alloc] initWithValue:anEnum], nil);
|
||||
}
|
||||
|
||||
- (void)echoAsyncNullableInt:(nullable NSNumber *)anInt
|
||||
@ -308,8 +309,9 @@
|
||||
completion(aMap, nil);
|
||||
}
|
||||
|
||||
- (void)echoAsyncNullableEnum:(nullable AnEnumBox *)AnEnumBoxed
|
||||
completion:(void (^)(AnEnumBox *_Nullable, FlutterError *_Nullable))completion {
|
||||
- (void)echoAsyncNullableEnum:(nullable FLTAnEnumBox *)AnEnumBoxed
|
||||
completion:
|
||||
(void (^)(FLTAnEnumBox *_Nullable, FlutterError *_Nullable))completion {
|
||||
completion(AnEnumBoxed, nil);
|
||||
}
|
||||
|
||||
@ -332,10 +334,11 @@
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)callFlutterEchoAllTypes:(AllTypes *)everything
|
||||
completion:(void (^)(AllTypes *_Nullable, FlutterError *_Nullable))completion {
|
||||
- (void)callFlutterEchoAllTypes:(FLTAllTypes *)everything
|
||||
completion:
|
||||
(void (^)(FLTAllTypes *_Nullable, FlutterError *_Nullable))completion {
|
||||
[self.flutterAPI echoAllTypes:everything
|
||||
completion:^(AllTypes *value, FlutterError *error) {
|
||||
completion:^(FLTAllTypes *value, FlutterError *error) {
|
||||
completion(value, error);
|
||||
}];
|
||||
}
|
||||
@ -343,12 +346,13 @@
|
||||
- (void)callFlutterSendMultipleNullableTypesABool:(nullable NSNumber *)aNullableBool
|
||||
anInt:(nullable NSNumber *)aNullableInt
|
||||
aString:(nullable NSString *)aNullableString
|
||||
completion:(void (^)(AllNullableTypes *_Nullable,
|
||||
completion:(void (^)(FLTAllNullableTypes *_Nullable,
|
||||
FlutterError *_Nullable))completion {
|
||||
[self.flutterAPI sendMultipleNullableTypesABool:aNullableBool
|
||||
[self.flutterAPI
|
||||
sendMultipleNullableTypesABool:aNullableBool
|
||||
anInt:aNullableInt
|
||||
aString:aNullableString
|
||||
completion:^(AllNullableTypes *value, FlutterError *error) {
|
||||
completion:^(FLTAllNullableTypes *value, FlutterError *error) {
|
||||
completion(value, error);
|
||||
}];
|
||||
}
|
||||
@ -411,19 +415,19 @@
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)callFlutterEchoEnum:(AnEnum)anEnum
|
||||
completion:(void (^)(AnEnumBox *_Nullable, FlutterError *_Nullable))completion {
|
||||
- (void)callFlutterEchoEnum:(FLTAnEnum)anEnum
|
||||
completion:(void (^)(FLTAnEnumBox *_Nullable, FlutterError *_Nullable))completion {
|
||||
[self.flutterAPI echoEnum:anEnum
|
||||
completion:^(AnEnumBox *value, FlutterError *error) {
|
||||
completion:^(FLTAnEnumBox *value, FlutterError *error) {
|
||||
completion(value, error);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)callFlutterEchoAllNullableTypes:(nullable AllNullableTypes *)everything
|
||||
completion:(void (^)(AllNullableTypes *_Nullable,
|
||||
- (void)callFlutterEchoAllNullableTypes:(nullable FLTAllNullableTypes *)everything
|
||||
completion:(void (^)(FLTAllNullableTypes *_Nullable,
|
||||
FlutterError *_Nullable))completion {
|
||||
[self.flutterAPI echoAllNullableTypes:everything
|
||||
completion:^(AllNullableTypes *value, FlutterError *error) {
|
||||
completion:^(FLTAllNullableTypes *value, FlutterError *error) {
|
||||
completion(value, error);
|
||||
}];
|
||||
}
|
||||
@ -491,11 +495,11 @@
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)callFlutterEchoNullableEnum:(nullable AnEnumBox *)AnEnumBoxed
|
||||
completion:
|
||||
(void (^)(AnEnumBox *_Nullable, FlutterError *_Nullable))completion {
|
||||
- (void)callFlutterEchoNullableEnum:(nullable FLTAnEnumBox *)AnEnumBoxed
|
||||
completion:(void (^)(FLTAnEnumBox *_Nullable,
|
||||
FlutterError *_Nullable))completion {
|
||||
[self.flutterAPI echoNullableEnum:AnEnumBoxed
|
||||
completion:^(AnEnumBox *value, FlutterError *error) {
|
||||
completion:^(FLTAnEnumBox *value, FlutterError *error) {
|
||||
completion(value, error);
|
||||
}];
|
||||
}
|
||||
|
@ -14,27 +14,27 @@
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
typedef NS_ENUM(NSUInteger, AnEnum) {
|
||||
AnEnumOne = 0,
|
||||
AnEnumTwo = 1,
|
||||
AnEnumThree = 2,
|
||||
AnEnumFortyTwo = 3,
|
||||
AnEnumFourHundredTwentyTwo = 4,
|
||||
typedef NS_ENUM(NSUInteger, FLTAnEnum) {
|
||||
FLTAnEnumOne = 0,
|
||||
FLTAnEnumTwo = 1,
|
||||
FLTAnEnumThree = 2,
|
||||
FLTAnEnumFortyTwo = 3,
|
||||
FLTAnEnumFourHundredTwentyTwo = 4,
|
||||
};
|
||||
|
||||
/// Wrapper for AnEnum to allow for nullability.
|
||||
@interface AnEnumBox : NSObject
|
||||
@property(nonatomic, assign) AnEnum value;
|
||||
- (instancetype)initWithValue:(AnEnum)value;
|
||||
/// Wrapper for FLTAnEnum to allow for nullability.
|
||||
@interface FLTAnEnumBox : NSObject
|
||||
@property(nonatomic, assign) FLTAnEnum value;
|
||||
- (instancetype)initWithValue:(FLTAnEnum)value;
|
||||
@end
|
||||
|
||||
@class AllTypes;
|
||||
@class AllNullableTypes;
|
||||
@class AllClassesWrapper;
|
||||
@class TestMessage;
|
||||
@class FLTAllTypes;
|
||||
@class FLTAllNullableTypes;
|
||||
@class FLTAllClassesWrapper;
|
||||
@class FLTTestMessage;
|
||||
|
||||
/// A class containing all supported types.
|
||||
@interface AllTypes : NSObject
|
||||
@interface FLTAllTypes : NSObject
|
||||
/// `init` unavailable to enforce nonnull fields, see the `make` class method.
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
+ (instancetype)makeWithABool:(BOOL)aBool
|
||||
@ -47,7 +47,7 @@ typedef NS_ENUM(NSUInteger, AnEnum) {
|
||||
aFloatArray:(FlutterStandardTypedData *)aFloatArray
|
||||
aList:(NSArray *)aList
|
||||
aMap:(NSDictionary *)aMap
|
||||
anEnum:(AnEnum)anEnum
|
||||
anEnum:(FLTAnEnum)anEnum
|
||||
aString:(NSString *)aString
|
||||
anObject:(id)anObject;
|
||||
@property(nonatomic, assign) BOOL aBool;
|
||||
@ -60,13 +60,13 @@ typedef NS_ENUM(NSUInteger, AnEnum) {
|
||||
@property(nonatomic, strong) FlutterStandardTypedData *aFloatArray;
|
||||
@property(nonatomic, copy) NSArray *aList;
|
||||
@property(nonatomic, copy) NSDictionary *aMap;
|
||||
@property(nonatomic, assign) AnEnum anEnum;
|
||||
@property(nonatomic, assign) FLTAnEnum anEnum;
|
||||
@property(nonatomic, copy) NSString *aString;
|
||||
@property(nonatomic, strong) id anObject;
|
||||
@end
|
||||
|
||||
/// A class containing all supported nullable types.
|
||||
@interface AllNullableTypes : NSObject
|
||||
@interface FLTAllNullableTypes : NSObject
|
||||
+ (instancetype)makeWithANullableBool:(nullable NSNumber *)aNullableBool
|
||||
aNullableInt:(nullable NSNumber *)aNullableInt
|
||||
aNullableInt64:(nullable NSNumber *)aNullableInt64
|
||||
@ -81,7 +81,7 @@ typedef NS_ENUM(NSUInteger, AnEnum) {
|
||||
nullableMapWithAnnotations:
|
||||
(nullable NSDictionary<NSString *, NSString *> *)nullableMapWithAnnotations
|
||||
nullableMapWithObject:(nullable NSDictionary<NSString *, id> *)nullableMapWithObject
|
||||
aNullableEnum:(nullable AnEnumBox *)aNullableEnum
|
||||
aNullableEnum:(nullable FLTAnEnumBox *)aNullableEnum
|
||||
aNullableString:(nullable NSString *)aNullableString
|
||||
aNullableObject:(nullable id)aNullableObject;
|
||||
@property(nonatomic, strong, nullable) NSNumber *aNullableBool;
|
||||
@ -98,7 +98,7 @@ typedef NS_ENUM(NSUInteger, AnEnum) {
|
||||
@property(nonatomic, copy, nullable)
|
||||
NSDictionary<NSString *, NSString *> *nullableMapWithAnnotations;
|
||||
@property(nonatomic, copy, nullable) NSDictionary<NSString *, id> *nullableMapWithObject;
|
||||
@property(nonatomic, strong, nullable) AnEnumBox *aNullableEnum;
|
||||
@property(nonatomic, strong, nullable) FLTAnEnumBox *aNullableEnum;
|
||||
@property(nonatomic, copy, nullable) NSString *aNullableString;
|
||||
@property(nonatomic, strong, nullable) id aNullableObject;
|
||||
@end
|
||||
@ -108,34 +108,34 @@ typedef NS_ENUM(NSUInteger, AnEnum) {
|
||||
/// This is needed to test nested nullable and non-nullable classes,
|
||||
/// `AllNullableTypes` is non-nullable here as it is easier to instantiate
|
||||
/// than `AllTypes` when testing doesn't require both (ie. testing null classes).
|
||||
@interface AllClassesWrapper : NSObject
|
||||
@interface FLTAllClassesWrapper : NSObject
|
||||
/// `init` unavailable to enforce nonnull fields, see the `make` class method.
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
+ (instancetype)makeWithAllNullableTypes:(AllNullableTypes *)allNullableTypes
|
||||
allTypes:(nullable AllTypes *)allTypes;
|
||||
@property(nonatomic, strong) AllNullableTypes *allNullableTypes;
|
||||
@property(nonatomic, strong, nullable) AllTypes *allTypes;
|
||||
+ (instancetype)makeWithAllNullableTypes:(FLTAllNullableTypes *)allNullableTypes
|
||||
allTypes:(nullable FLTAllTypes *)allTypes;
|
||||
@property(nonatomic, strong) FLTAllNullableTypes *allNullableTypes;
|
||||
@property(nonatomic, strong, nullable) FLTAllTypes *allTypes;
|
||||
@end
|
||||
|
||||
/// A data class containing a List, used in unit tests.
|
||||
@interface TestMessage : NSObject
|
||||
@interface FLTTestMessage : NSObject
|
||||
+ (instancetype)makeWithTestList:(nullable NSArray *)testList;
|
||||
@property(nonatomic, copy, nullable) NSArray *testList;
|
||||
@end
|
||||
|
||||
/// The codec used by HostIntegrationCoreApi.
|
||||
NSObject<FlutterMessageCodec> *HostIntegrationCoreApiGetCodec(void);
|
||||
/// The codec used by FLTHostIntegrationCoreApi.
|
||||
NSObject<FlutterMessageCodec> *FLTHostIntegrationCoreApiGetCodec(void);
|
||||
|
||||
/// The core interface that each host language plugin must implement in
|
||||
/// platform_test integration tests.
|
||||
@protocol HostIntegrationCoreApi
|
||||
@protocol FLTHostIntegrationCoreApi
|
||||
/// A no-op function taking no arguments and returning no value, to sanity
|
||||
/// test basic calling.
|
||||
- (void)noopWithError:(FlutterError *_Nullable *_Nonnull)error;
|
||||
/// Returns the passed object, to test serialization and deserialization.
|
||||
///
|
||||
/// @return `nil` only when `error != nil`.
|
||||
- (nullable AllTypes *)echoAllTypes:(AllTypes *)everything
|
||||
- (nullable FLTAllTypes *)echoAllTypes:(FLTAllTypes *)everything
|
||||
error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
/// Returns an error, to test error handling.
|
||||
- (nullable id)throwErrorWithError:(FlutterError *_Nullable *_Nonnull)error;
|
||||
@ -182,12 +182,13 @@ NSObject<FlutterMessageCodec> *HostIntegrationCoreApiGetCodec(void);
|
||||
/// Returns the passed map to test nested class serialization and deserialization.
|
||||
///
|
||||
/// @return `nil` only when `error != nil`.
|
||||
- (nullable AllClassesWrapper *)echoClassWrapper:(AllClassesWrapper *)wrapper
|
||||
- (nullable FLTAllClassesWrapper *)echoClassWrapper:(FLTAllClassesWrapper *)wrapper
|
||||
error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
/// Returns the passed enum to test serialization and deserialization.
|
||||
///
|
||||
/// @return `nil` only when `error != nil`.
|
||||
- (AnEnumBox *_Nullable)echoEnum:(AnEnum)anEnum error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
- (FLTAnEnumBox *_Nullable)echoEnum:(FLTAnEnum)anEnum
|
||||
error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
/// Returns the default string.
|
||||
///
|
||||
/// @return `nil` only when `error != nil`.
|
||||
@ -204,27 +205,27 @@ NSObject<FlutterMessageCodec> *HostIntegrationCoreApiGetCodec(void);
|
||||
- (nullable NSNumber *)echoRequiredInt:(NSInteger)anInt
|
||||
error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
/// Returns the passed object, to test serialization and deserialization.
|
||||
- (nullable AllNullableTypes *)echoAllNullableTypes:(nullable AllNullableTypes *)everything
|
||||
- (nullable FLTAllNullableTypes *)echoAllNullableTypes:(nullable FLTAllNullableTypes *)everything
|
||||
error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
/// Returns the inner `aString` value from the wrapped object, to test
|
||||
/// sending of nested objects.
|
||||
- (nullable NSString *)extractNestedNullableStringFrom:(AllClassesWrapper *)wrapper
|
||||
- (nullable NSString *)extractNestedNullableStringFrom:(FLTAllClassesWrapper *)wrapper
|
||||
error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
/// Returns the inner `aString` value from the wrapped object, to test
|
||||
/// sending of nested objects.
|
||||
///
|
||||
/// @return `nil` only when `error != nil`.
|
||||
- (nullable AllClassesWrapper *)
|
||||
- (nullable FLTAllClassesWrapper *)
|
||||
createNestedObjectWithNullableString:(nullable NSString *)nullableString
|
||||
error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
/// Returns passed in arguments of multiple types.
|
||||
///
|
||||
/// @return `nil` only when `error != nil`.
|
||||
- (nullable AllNullableTypes *)sendMultipleNullableTypesABool:(nullable NSNumber *)aNullableBool
|
||||
- (nullable FLTAllNullableTypes *)
|
||||
sendMultipleNullableTypesABool:(nullable NSNumber *)aNullableBool
|
||||
anInt:(nullable NSNumber *)aNullableInt
|
||||
aString:(nullable NSString *)aNullableString
|
||||
error:(FlutterError *_Nullable *_Nonnull)
|
||||
error;
|
||||
error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
/// Returns passed in int.
|
||||
- (nullable NSNumber *)echoNullableInt:(nullable NSNumber *)aNullableInt
|
||||
error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
@ -251,7 +252,7 @@ NSObject<FlutterMessageCodec> *HostIntegrationCoreApiGetCodec(void);
|
||||
- (nullable NSDictionary<NSString *, id> *)echoNullableMap:
|
||||
(nullable NSDictionary<NSString *, id> *)aNullableMap
|
||||
error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
- (AnEnumBox *_Nullable)echoNullableEnum:(nullable AnEnumBox *)anEnumBoxed
|
||||
- (FLTAnEnumBox *_Nullable)echoNullableEnum:(nullable FLTAnEnumBox *)anEnumBoxed
|
||||
error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
/// Returns passed in int.
|
||||
- (nullable NSNumber *)echoOptionalNullableInt:(nullable NSNumber *)aNullableInt
|
||||
@ -289,8 +290,8 @@ NSObject<FlutterMessageCodec> *HostIntegrationCoreApiGetCodec(void);
|
||||
completion:(void (^)(NSDictionary<NSString *, id> *_Nullable,
|
||||
FlutterError *_Nullable))completion;
|
||||
/// Returns the passed enum, to test asynchronous serialization and deserialization.
|
||||
- (void)echoAsyncEnum:(AnEnum)anEnum
|
||||
completion:(void (^)(AnEnumBox *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)echoAsyncEnum:(FLTAnEnum)anEnum
|
||||
completion:(void (^)(FLTAnEnumBox *_Nullable, FlutterError *_Nullable))completion;
|
||||
/// Responds with an error from an async function returning a value.
|
||||
- (void)throwAsyncErrorWithCompletion:(void (^)(id _Nullable, FlutterError *_Nullable))completion;
|
||||
/// Responds with an error from an async void function.
|
||||
@ -299,11 +300,11 @@ NSObject<FlutterMessageCodec> *HostIntegrationCoreApiGetCodec(void);
|
||||
- (void)throwAsyncFlutterErrorWithCompletion:(void (^)(id _Nullable,
|
||||
FlutterError *_Nullable))completion;
|
||||
/// Returns the passed object, to test async serialization and deserialization.
|
||||
- (void)echoAsyncAllTypes:(AllTypes *)everything
|
||||
completion:(void (^)(AllTypes *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)echoAsyncAllTypes:(FLTAllTypes *)everything
|
||||
completion:(void (^)(FLTAllTypes *_Nullable, FlutterError *_Nullable))completion;
|
||||
/// Returns the passed object, to test serialization and deserialization.
|
||||
- (void)echoAsyncNullableAllNullableTypes:(nullable AllNullableTypes *)everything
|
||||
completion:(void (^)(AllNullableTypes *_Nullable,
|
||||
- (void)echoAsyncNullableAllNullableTypes:(nullable FLTAllNullableTypes *)everything
|
||||
completion:(void (^)(FLTAllNullableTypes *_Nullable,
|
||||
FlutterError *_Nullable))completion;
|
||||
/// Returns passed in int asynchronously.
|
||||
- (void)echoAsyncNullableInt:(nullable NSNumber *)anInt
|
||||
@ -332,21 +333,23 @@ NSObject<FlutterMessageCodec> *HostIntegrationCoreApiGetCodec(void);
|
||||
completion:(void (^)(NSDictionary<NSString *, id> *_Nullable,
|
||||
FlutterError *_Nullable))completion;
|
||||
/// Returns the passed enum, to test asynchronous serialization and deserialization.
|
||||
- (void)echoAsyncNullableEnum:(nullable AnEnumBox *)anEnumBoxed
|
||||
completion:(void (^)(AnEnumBox *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)echoAsyncNullableEnum:(nullable FLTAnEnumBox *)anEnumBoxed
|
||||
completion:
|
||||
(void (^)(FLTAnEnumBox *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)callFlutterNoopWithCompletion:(void (^)(FlutterError *_Nullable))completion;
|
||||
- (void)callFlutterThrowErrorWithCompletion:(void (^)(id _Nullable,
|
||||
FlutterError *_Nullable))completion;
|
||||
- (void)callFlutterThrowErrorFromVoidWithCompletion:(void (^)(FlutterError *_Nullable))completion;
|
||||
- (void)callFlutterEchoAllTypes:(AllTypes *)everything
|
||||
completion:(void (^)(AllTypes *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)callFlutterEchoAllNullableTypes:(nullable AllNullableTypes *)everything
|
||||
completion:(void (^)(AllNullableTypes *_Nullable,
|
||||
- (void)callFlutterEchoAllTypes:(FLTAllTypes *)everything
|
||||
completion:
|
||||
(void (^)(FLTAllTypes *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)callFlutterEchoAllNullableTypes:(nullable FLTAllNullableTypes *)everything
|
||||
completion:(void (^)(FLTAllNullableTypes *_Nullable,
|
||||
FlutterError *_Nullable))completion;
|
||||
- (void)callFlutterSendMultipleNullableTypesABool:(nullable NSNumber *)aNullableBool
|
||||
anInt:(nullable NSNumber *)aNullableInt
|
||||
aString:(nullable NSString *)aNullableString
|
||||
completion:(void (^)(AllNullableTypes *_Nullable,
|
||||
completion:(void (^)(FLTAllNullableTypes *_Nullable,
|
||||
FlutterError *_Nullable))completion;
|
||||
- (void)callFlutterEchoBool:(BOOL)aBool
|
||||
completion:(void (^)(NSNumber *_Nullable, FlutterError *_Nullable))completion;
|
||||
@ -364,8 +367,8 @@ NSObject<FlutterMessageCodec> *HostIntegrationCoreApiGetCodec(void);
|
||||
- (void)callFlutterEchoMap:(NSDictionary<NSString *, id> *)aMap
|
||||
completion:(void (^)(NSDictionary<NSString *, id> *_Nullable,
|
||||
FlutterError *_Nullable))completion;
|
||||
- (void)callFlutterEchoEnum:(AnEnum)anEnum
|
||||
completion:(void (^)(AnEnumBox *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)callFlutterEchoEnum:(FLTAnEnum)anEnum
|
||||
completion:(void (^)(FLTAnEnumBox *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)callFlutterEchoNullableBool:(nullable NSNumber *)aBool
|
||||
completion:
|
||||
(void (^)(NSNumber *_Nullable, FlutterError *_Nullable))completion;
|
||||
@ -387,20 +390,20 @@ NSObject<FlutterMessageCodec> *HostIntegrationCoreApiGetCodec(void);
|
||||
- (void)callFlutterEchoNullableMap:(nullable NSDictionary<NSString *, id> *)aMap
|
||||
completion:(void (^)(NSDictionary<NSString *, id> *_Nullable,
|
||||
FlutterError *_Nullable))completion;
|
||||
- (void)callFlutterEchoNullableEnum:(nullable AnEnumBox *)anEnumBoxed
|
||||
- (void)callFlutterEchoNullableEnum:(nullable FLTAnEnumBox *)anEnumBoxed
|
||||
completion:
|
||||
(void (^)(AnEnumBox *_Nullable, FlutterError *_Nullable))completion;
|
||||
(void (^)(FLTAnEnumBox *_Nullable, FlutterError *_Nullable))completion;
|
||||
@end
|
||||
|
||||
extern void SetUpHostIntegrationCoreApi(id<FlutterBinaryMessenger> binaryMessenger,
|
||||
NSObject<HostIntegrationCoreApi> *_Nullable api);
|
||||
extern void SetUpFLTHostIntegrationCoreApi(id<FlutterBinaryMessenger> binaryMessenger,
|
||||
NSObject<FLTHostIntegrationCoreApi> *_Nullable api);
|
||||
|
||||
/// The codec used by FlutterIntegrationCoreApi.
|
||||
NSObject<FlutterMessageCodec> *FlutterIntegrationCoreApiGetCodec(void);
|
||||
/// The codec used by FLTFlutterIntegrationCoreApi.
|
||||
NSObject<FlutterMessageCodec> *FLTFlutterIntegrationCoreApiGetCodec(void);
|
||||
|
||||
/// The core interface that the Dart platform_test code implements for host
|
||||
/// integration tests to call into.
|
||||
@interface FlutterIntegrationCoreApi : NSObject
|
||||
@interface FLTFlutterIntegrationCoreApi : NSObject
|
||||
- (instancetype)initWithBinaryMessenger:(id<FlutterBinaryMessenger>)binaryMessenger;
|
||||
/// A no-op function taking no arguments and returning no value, to sanity
|
||||
/// test basic calling.
|
||||
@ -410,19 +413,19 @@ NSObject<FlutterMessageCodec> *FlutterIntegrationCoreApiGetCodec(void);
|
||||
/// Responds with an error from an async void function.
|
||||
- (void)throwErrorFromVoidWithCompletion:(void (^)(FlutterError *_Nullable))completion;
|
||||
/// Returns the passed object, to test serialization and deserialization.
|
||||
- (void)echoAllTypes:(AllTypes *)everything
|
||||
completion:(void (^)(AllTypes *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)echoAllTypes:(FLTAllTypes *)everything
|
||||
completion:(void (^)(FLTAllTypes *_Nullable, FlutterError *_Nullable))completion;
|
||||
/// Returns the passed object, to test serialization and deserialization.
|
||||
- (void)echoAllNullableTypes:(nullable AllNullableTypes *)everything
|
||||
- (void)echoAllNullableTypes:(nullable FLTAllNullableTypes *)everything
|
||||
completion:
|
||||
(void (^)(AllNullableTypes *_Nullable, FlutterError *_Nullable))completion;
|
||||
(void (^)(FLTAllNullableTypes *_Nullable, FlutterError *_Nullable))completion;
|
||||
/// Returns passed in arguments of multiple types.
|
||||
///
|
||||
/// Tests multiple-arity FlutterApi handling.
|
||||
- (void)sendMultipleNullableTypesABool:(nullable NSNumber *)aNullableBool
|
||||
anInt:(nullable NSNumber *)aNullableInt
|
||||
aString:(nullable NSString *)aNullableString
|
||||
completion:(void (^)(AllNullableTypes *_Nullable,
|
||||
completion:(void (^)(FLTAllNullableTypes *_Nullable,
|
||||
FlutterError *_Nullable))completion;
|
||||
/// Returns the passed boolean, to test serialization and deserialization.
|
||||
- (void)echoBool:(BOOL)aBool
|
||||
@ -448,8 +451,8 @@ NSObject<FlutterMessageCodec> *FlutterIntegrationCoreApiGetCodec(void);
|
||||
completion:
|
||||
(void (^)(NSDictionary<NSString *, id> *_Nullable, FlutterError *_Nullable))completion;
|
||||
/// Returns the passed enum to test serialization and deserialization.
|
||||
- (void)echoEnum:(AnEnum)anEnum
|
||||
completion:(void (^)(AnEnumBox *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)echoEnum:(FLTAnEnum)anEnum
|
||||
completion:(void (^)(FLTAnEnumBox *_Nullable, FlutterError *_Nullable))completion;
|
||||
/// Returns the passed boolean, to test serialization and deserialization.
|
||||
- (void)echoNullableBool:(nullable NSNumber *)aBool
|
||||
completion:(void (^)(NSNumber *_Nullable, FlutterError *_Nullable))completion;
|
||||
@ -474,8 +477,8 @@ NSObject<FlutterMessageCodec> *FlutterIntegrationCoreApiGetCodec(void);
|
||||
completion:(void (^)(NSDictionary<NSString *, id> *_Nullable,
|
||||
FlutterError *_Nullable))completion;
|
||||
/// Returns the passed enum to test serialization and deserialization.
|
||||
- (void)echoNullableEnum:(nullable AnEnumBox *)anEnumBoxed
|
||||
completion:(void (^)(AnEnumBox *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)echoNullableEnum:(nullable FLTAnEnumBox *)anEnumBoxed
|
||||
completion:(void (^)(FLTAnEnumBox *_Nullable, FlutterError *_Nullable))completion;
|
||||
/// A no-op function taking no arguments and returning no value, to sanity
|
||||
/// test basic asynchronous calling.
|
||||
- (void)noopAsyncWithCompletion:(void (^)(FlutterError *_Nullable))completion;
|
||||
@ -484,38 +487,38 @@ NSObject<FlutterMessageCodec> *FlutterIntegrationCoreApiGetCodec(void);
|
||||
completion:(void (^)(NSString *_Nullable, FlutterError *_Nullable))completion;
|
||||
@end
|
||||
|
||||
/// The codec used by HostTrivialApi.
|
||||
NSObject<FlutterMessageCodec> *HostTrivialApiGetCodec(void);
|
||||
/// The codec used by FLTHostTrivialApi.
|
||||
NSObject<FlutterMessageCodec> *FLTHostTrivialApiGetCodec(void);
|
||||
|
||||
/// An API that can be implemented for minimal, compile-only tests.
|
||||
@protocol HostTrivialApi
|
||||
@protocol FLTHostTrivialApi
|
||||
- (void)noopWithError:(FlutterError *_Nullable *_Nonnull)error;
|
||||
@end
|
||||
|
||||
extern void SetUpHostTrivialApi(id<FlutterBinaryMessenger> binaryMessenger,
|
||||
NSObject<HostTrivialApi> *_Nullable api);
|
||||
extern void SetUpFLTHostTrivialApi(id<FlutterBinaryMessenger> binaryMessenger,
|
||||
NSObject<FLTHostTrivialApi> *_Nullable api);
|
||||
|
||||
/// The codec used by HostSmallApi.
|
||||
NSObject<FlutterMessageCodec> *HostSmallApiGetCodec(void);
|
||||
/// The codec used by FLTHostSmallApi.
|
||||
NSObject<FlutterMessageCodec> *FLTHostSmallApiGetCodec(void);
|
||||
|
||||
/// A simple API implemented in some unit tests.
|
||||
@protocol HostSmallApi
|
||||
@protocol FLTHostSmallApi
|
||||
- (void)echoString:(NSString *)aString
|
||||
completion:(void (^)(NSString *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)voidVoidWithCompletion:(void (^)(FlutterError *_Nullable))completion;
|
||||
@end
|
||||
|
||||
extern void SetUpHostSmallApi(id<FlutterBinaryMessenger> binaryMessenger,
|
||||
NSObject<HostSmallApi> *_Nullable api);
|
||||
extern void SetUpFLTHostSmallApi(id<FlutterBinaryMessenger> binaryMessenger,
|
||||
NSObject<FLTHostSmallApi> *_Nullable api);
|
||||
|
||||
/// The codec used by FlutterSmallApi.
|
||||
NSObject<FlutterMessageCodec> *FlutterSmallApiGetCodec(void);
|
||||
/// The codec used by FLTFlutterSmallApi.
|
||||
NSObject<FlutterMessageCodec> *FLTFlutterSmallApiGetCodec(void);
|
||||
|
||||
/// A simple API called in some unit tests.
|
||||
@interface FlutterSmallApi : NSObject
|
||||
@interface FLTFlutterSmallApi : NSObject
|
||||
- (instancetype)initWithBinaryMessenger:(id<FlutterBinaryMessenger>)binaryMessenger;
|
||||
- (void)echoWrappedList:(TestMessage *)msg
|
||||
completion:(void (^)(TestMessage *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)echoWrappedList:(FLTTestMessage *)msg
|
||||
completion:(void (^)(FLTTestMessage *_Nullable, FlutterError *_Nullable))completion;
|
||||
- (void)echoString:(NSString *)aString
|
||||
completion:(void (^)(NSString *_Nullable, FlutterError *_Nullable))completion;
|
||||
@end
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,7 @@ name: pigeon
|
||||
description: Code generator tool to make communication between Flutter and the host platform type-safe and easier.
|
||||
repository: https://github.com/flutter/packages/tree/main/packages/pigeon
|
||||
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+pigeon%22
|
||||
version: 17.1.2 # This must match the version in lib/generator_tools.dart
|
||||
version: 17.1.3 # This must match the version in lib/generator_tools.dart
|
||||
|
||||
environment:
|
||||
sdk: ^3.1.0
|
||||
|
@ -2931,4 +2931,178 @@ void main() {
|
||||
'return [FlutterError errorWithCode:@"channel-error" message:[NSString stringWithFormat:@"%@/%@/%@", @"Unable to establish connection on channel: \'", channelName, @"\'."] details:@""]'));
|
||||
expect(code, contains('completion(createConnectionError(channelName))'));
|
||||
});
|
||||
|
||||
test('header of FlutterApi uses correct enum name with prefix', () {
|
||||
final Enum enum1 = Enum(
|
||||
name: 'Enum1',
|
||||
members: <EnumMember>[
|
||||
EnumMember(name: 'one'),
|
||||
EnumMember(name: 'two'),
|
||||
],
|
||||
);
|
||||
final Root root = Root(apis: <Api>[
|
||||
AstFlutterApi(name: 'Api', methods: <Method>[
|
||||
Method(
|
||||
name: 'doSomething',
|
||||
location: ApiLocation.flutter,
|
||||
isAsynchronous: true,
|
||||
parameters: <Parameter>[],
|
||||
returnType: TypeDeclaration(
|
||||
baseName: 'Enum1',
|
||||
isNullable: false,
|
||||
associatedEnum: enum1,
|
||||
),
|
||||
)
|
||||
]),
|
||||
], classes: <Class>[], enums: <Enum>[
|
||||
enum1,
|
||||
]);
|
||||
final StringBuffer sink = StringBuffer();
|
||||
const ObjcGenerator generator = ObjcGenerator();
|
||||
final OutputFileOptions<ObjcOptions> generatorOptions =
|
||||
OutputFileOptions<ObjcOptions>(
|
||||
fileType: FileType.header,
|
||||
languageOptions: const ObjcOptions(prefix: 'FLT'),
|
||||
);
|
||||
generator.generate(
|
||||
generatorOptions,
|
||||
root,
|
||||
sink,
|
||||
dartPackageName: DEFAULT_PACKAGE_NAME,
|
||||
);
|
||||
final String code = sink.toString();
|
||||
expect(code, isNot(contains('FLTFLT')));
|
||||
expect(code, contains('FLTEnum1Box'));
|
||||
});
|
||||
|
||||
test('source of FlutterApi uses correct enum name with prefix', () {
|
||||
final Enum enum1 = Enum(
|
||||
name: 'Enum1',
|
||||
members: <EnumMember>[
|
||||
EnumMember(name: 'one'),
|
||||
EnumMember(name: 'two'),
|
||||
],
|
||||
);
|
||||
final Root root = Root(apis: <Api>[
|
||||
AstFlutterApi(name: 'Api', methods: <Method>[
|
||||
Method(
|
||||
name: 'doSomething',
|
||||
location: ApiLocation.flutter,
|
||||
isAsynchronous: true,
|
||||
parameters: <Parameter>[],
|
||||
returnType: TypeDeclaration(
|
||||
baseName: 'Enum1',
|
||||
isNullable: false,
|
||||
associatedEnum: enum1,
|
||||
),
|
||||
)
|
||||
]),
|
||||
], classes: <Class>[], enums: <Enum>[
|
||||
enum1,
|
||||
]);
|
||||
final StringBuffer sink = StringBuffer();
|
||||
const ObjcGenerator generator = ObjcGenerator();
|
||||
final OutputFileOptions<ObjcOptions> generatorOptions =
|
||||
OutputFileOptions<ObjcOptions>(
|
||||
fileType: FileType.source,
|
||||
languageOptions: const ObjcOptions(prefix: 'FLT'),
|
||||
);
|
||||
generator.generate(
|
||||
generatorOptions,
|
||||
root,
|
||||
sink,
|
||||
dartPackageName: DEFAULT_PACKAGE_NAME,
|
||||
);
|
||||
final String code = sink.toString();
|
||||
expect(code, isNot(contains('FLTFLT')));
|
||||
expect(code, contains('FLTEnum1Box'));
|
||||
});
|
||||
|
||||
test('header of HostApi uses correct enum name with prefix', () {
|
||||
final Enum enum1 = Enum(
|
||||
name: 'Enum1',
|
||||
members: <EnumMember>[
|
||||
EnumMember(name: 'one'),
|
||||
EnumMember(name: 'two'),
|
||||
],
|
||||
);
|
||||
final TypeDeclaration enumType = TypeDeclaration(
|
||||
baseName: 'Enum1',
|
||||
isNullable: false,
|
||||
associatedEnum: enum1,
|
||||
);
|
||||
final Root root = Root(apis: <Api>[
|
||||
AstHostApi(name: 'Api', methods: <Method>[
|
||||
Method(
|
||||
name: 'doSomething',
|
||||
location: ApiLocation.host,
|
||||
isAsynchronous: true,
|
||||
parameters: <Parameter>[Parameter(name: 'value', type: enumType)],
|
||||
returnType: enumType,
|
||||
)
|
||||
]),
|
||||
], classes: <Class>[], enums: <Enum>[
|
||||
enum1,
|
||||
]);
|
||||
final StringBuffer sink = StringBuffer();
|
||||
const ObjcGenerator generator = ObjcGenerator();
|
||||
final OutputFileOptions<ObjcOptions> generatorOptions =
|
||||
OutputFileOptions<ObjcOptions>(
|
||||
fileType: FileType.header,
|
||||
languageOptions: const ObjcOptions(prefix: 'FLT'),
|
||||
);
|
||||
generator.generate(
|
||||
generatorOptions,
|
||||
root,
|
||||
sink,
|
||||
dartPackageName: DEFAULT_PACKAGE_NAME,
|
||||
);
|
||||
final String code = sink.toString();
|
||||
expect(code, isNot(contains('FLTFLT')));
|
||||
expect(code, contains('FLTEnum1Box'));
|
||||
});
|
||||
|
||||
test('source of HostApi uses correct enum name with prefix', () {
|
||||
final Enum enum1 = Enum(
|
||||
name: 'Enum1',
|
||||
members: <EnumMember>[
|
||||
EnumMember(name: 'one'),
|
||||
EnumMember(name: 'two'),
|
||||
],
|
||||
);
|
||||
final TypeDeclaration enumType = TypeDeclaration(
|
||||
baseName: 'Enum1',
|
||||
isNullable: false,
|
||||
associatedEnum: enum1,
|
||||
);
|
||||
final Root root = Root(apis: <Api>[
|
||||
AstHostApi(name: 'Api', methods: <Method>[
|
||||
Method(
|
||||
name: 'doSomething',
|
||||
location: ApiLocation.host,
|
||||
isAsynchronous: true,
|
||||
parameters: <Parameter>[Parameter(name: 'value', type: enumType)],
|
||||
returnType: enumType,
|
||||
)
|
||||
]),
|
||||
], classes: <Class>[], enums: <Enum>[
|
||||
enum1,
|
||||
]);
|
||||
final StringBuffer sink = StringBuffer();
|
||||
const ObjcGenerator generator = ObjcGenerator();
|
||||
final OutputFileOptions<ObjcOptions> generatorOptions =
|
||||
OutputFileOptions<ObjcOptions>(
|
||||
fileType: FileType.source,
|
||||
languageOptions: const ObjcOptions(prefix: 'FLT'),
|
||||
);
|
||||
generator.generate(
|
||||
generatorOptions,
|
||||
root,
|
||||
sink,
|
||||
dartPackageName: DEFAULT_PACKAGE_NAME,
|
||||
);
|
||||
final String code = sink.toString();
|
||||
expect(code, isNot(contains('FLTFLT')));
|
||||
expect(code, contains('FLTEnum1Box'));
|
||||
});
|
||||
}
|
||||
|
@ -151,6 +151,7 @@ Future<int> generateTestPigeons({required String baseDir}) async {
|
||||
objcSourceOut: skipLanguages.contains(GeneratorLanguage.objc)
|
||||
? null
|
||||
: '$alternateOutputBase/ios/Classes/$pascalCaseName.gen.m',
|
||||
objcPrefix: input == 'core_tests' ? 'FLT' : '',
|
||||
suppressVersion: true,
|
||||
dartPackageName: 'pigeon_integration_tests',
|
||||
);
|
||||
|
Reference in New Issue
Block a user