From e37ad76551dcd3b7de9fd66a2e4b9a501d09dde9 Mon Sep 17 00:00:00 2001 From: Sebastian Roth Date: Fri, 26 Mar 2021 18:24:46 +0000 Subject: [PATCH 1/2] Migrate e2e testing to integration_test --- .../codeheadlabs/zendesk/ZendeskPigeon.java | 113 +++--- .../codeheadlabs/zendesk/ZendeskPlugin.java | 10 +- .../zendesk/EmbeddingV1ActivityTest.java | 15 - .../android/app/src/main/AndroidManifest.xml | 7 - .../zendeskexample/EmbeddingV1Activity.java | 16 - .../visitor_info_test.dart} | 6 +- example/pubspec.yaml | 10 +- example/test_driver/integration_test.dart | 5 + example/test_driver/zendesk_e2e_test.dart | 5 - ios/Classes/zendesk.pigeon.h | 2 +- ios/Classes/zendesk.pigeon.m | 38 +- lib/src/pigeon.dart | 347 +++++++++--------- pubspec.yaml | 8 +- 13 files changed, 264 insertions(+), 318 deletions(-) delete mode 100644 example/android/app/src/androidTest/java/com/codeheadlabs/zendesk/EmbeddingV1ActivityTest.java delete mode 100644 example/android/app/src/main/java/com/codeheadlabs/zendeskexample/EmbeddingV1Activity.java rename example/{test_driver/zendesk_e2e.dart => integration_test/visitor_info_test.dart} (66%) create mode 100644 example/test_driver/integration_test.dart delete mode 100644 example/test_driver/zendesk_e2e_test.dart diff --git a/android/src/main/java/com/codeheadlabs/zendesk/ZendeskPigeon.java b/android/src/main/java/com/codeheadlabs/zendesk/ZendeskPigeon.java index 45fa4b8..55c8878 100644 --- a/android/src/main/java/com/codeheadlabs/zendesk/ZendeskPigeon.java +++ b/android/src/main/java/com/codeheadlabs/zendesk/ZendeskPigeon.java @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v0.1.9), do not edit directly. +// Autogenerated from Pigeon (v0.1.23), do not edit directly. // See also: https://pub.dev/packages/pigeon package com.codeheadlabs.zendesk.pigeon; @@ -6,11 +6,12 @@ import io.flutter.plugin.common.BasicMessageChannel; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.StandardMessageCodec; -import java.util.ArrayList; +import java.util.List; +import java.util.Map; import java.util.HashMap; /** Generated class from Pigeon. */ -@SuppressWarnings("unused") +@SuppressWarnings({"unused", "unchecked", "CodeBlock2Expr", "RedundantSuppression"}) public class ZendeskPigeon { /** Generated class from Pigeon that represents data sent in messages. */ @@ -23,13 +24,13 @@ public static class InitializeRequest { public String getAppId() { return appId; } public void setAppId(String setterArg) { this.appId = setterArg; } - HashMap toMap() { - HashMap toMapResult = new HashMap<>(); + Map toMap() { + Map toMapResult = new HashMap<>(); toMapResult.put("accountKey", accountKey); toMapResult.put("appId", appId); return toMapResult; } - static InitializeRequest fromMap(HashMap map) { + static InitializeRequest fromMap(Map map) { InitializeRequest fromMapResult = new InitializeRequest(); Object accountKey = map.get("accountKey"); fromMapResult.accountKey = (String)accountKey; @@ -45,12 +46,12 @@ public static class SetDepartmentRequest { public String getDepartment() { return department; } public void setDepartment(String setterArg) { this.department = setterArg; } - HashMap toMap() { - HashMap toMapResult = new HashMap<>(); + Map toMap() { + Map toMapResult = new HashMap<>(); toMapResult.put("department", department); return toMapResult; } - static SetDepartmentRequest fromMap(HashMap map) { + static SetDepartmentRequest fromMap(Map map) { SetDepartmentRequest fromMapResult = new SetDepartmentRequest(); Object department = map.get("department"); fromMapResult.department = (String)department; @@ -92,8 +93,8 @@ public static class StartChatRequest { public Long getIosNavigationTitleColor() { return iosNavigationTitleColor; } public void setIosNavigationTitleColor(Long setterArg) { this.iosNavigationTitleColor = setterArg; } - HashMap toMap() { - HashMap toMapResult = new HashMap<>(); + Map toMap() { + Map toMapResult = new HashMap<>(); toMapResult.put("isPreChatFormEnabled", isPreChatFormEnabled); toMapResult.put("isOfflineFormEnabled", isOfflineFormEnabled); toMapResult.put("isAgentAvailabilityEnabled", isAgentAvailabilityEnabled); @@ -104,7 +105,7 @@ HashMap toMap() { toMapResult.put("iosNavigationTitleColor", iosNavigationTitleColor); return toMapResult; } - static StartChatRequest fromMap(HashMap map) { + static StartChatRequest fromMap(Map map) { StartChatRequest fromMapResult = new StartChatRequest(); Object isPreChatFormEnabled = map.get("isPreChatFormEnabled"); fromMapResult.isPreChatFormEnabled = (Boolean)isPreChatFormEnabled; @@ -140,14 +141,14 @@ public static class SetVisitorInfoRequest { public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String setterArg) { this.phoneNumber = setterArg; } - HashMap toMap() { - HashMap toMapResult = new HashMap<>(); + Map toMap() { + Map toMapResult = new HashMap<>(); toMapResult.put("name", name); toMapResult.put("email", email); toMapResult.put("phoneNumber", phoneNumber); return toMapResult; } - static SetVisitorInfoRequest fromMap(HashMap map) { + static SetVisitorInfoRequest fromMap(Map map) { SetVisitorInfoRequest fromMapResult = new SetVisitorInfoRequest(); Object name = map.get("name"); fromMapResult.name = (String)name; @@ -161,19 +162,19 @@ static SetVisitorInfoRequest fromMap(HashMap map) { /** Generated class from Pigeon that represents data sent in messages. */ public static class VisitorTagsRequest { - private ArrayList tags; - public ArrayList getTags() { return tags; } - public void setTags(ArrayList setterArg) { this.tags = setterArg; } + private List tags; + public List getTags() { return tags; } + public void setTags(List setterArg) { this.tags = setterArg; } - HashMap toMap() { - HashMap toMapResult = new HashMap<>(); + Map toMap() { + Map toMapResult = new HashMap<>(); toMapResult.put("tags", tags); return toMapResult; } - static VisitorTagsRequest fromMap(HashMap map) { + static VisitorTagsRequest fromMap(Map map) { VisitorTagsRequest fromMapResult = new VisitorTagsRequest(); Object tags = map.get("tags"); - fromMapResult.tags = (ArrayList)tags; + fromMapResult.tags = (List)tags; return fromMapResult; } } @@ -184,12 +185,12 @@ public static class VisitorNoteRequest { public String getNote() { return note; } public void setNote(String setterArg) { this.note = setterArg; } - HashMap toMap() { - HashMap toMapResult = new HashMap<>(); + Map toMap() { + Map toMapResult = new HashMap<>(); toMapResult.put("note", note); return toMapResult; } - static VisitorNoteRequest fromMap(HashMap map) { + static VisitorNoteRequest fromMap(Map map) { VisitorNoteRequest fromMapResult = new VisitorNoteRequest(); Object note = map.get("note"); fromMapResult.note = (String)note; @@ -203,21 +204,21 @@ public interface ChatApi { void setDepartment(SetDepartmentRequest arg); void startChat(StartChatRequest arg); - /** Sets up an instance of `ChatApi` to handle messages through the `binaryMessenger` */ + /** Sets up an instance of `ChatApi` to handle messages through the `binaryMessenger`. */ static void setup(BinaryMessenger binaryMessenger, ChatApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.ChatApi.initialize", new StandardMessageCodec()); if (api != null) { channel.setMessageHandler((message, reply) -> { - HashMap wrapped = new HashMap<>(); + Map wrapped = new HashMap<>(); try { @SuppressWarnings("ConstantConditions") - InitializeRequest input = InitializeRequest.fromMap((HashMap)message); + InitializeRequest input = InitializeRequest.fromMap((Map)message); api.initialize(input); wrapped.put("result", null); } - catch (Exception exception) { + catch (Error | RuntimeException exception) { wrapped.put("error", wrapError(exception)); } reply.reply(wrapped); @@ -231,14 +232,14 @@ static void setup(BinaryMessenger binaryMessenger, ChatApi api) { new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.ChatApi.setDepartment", new StandardMessageCodec()); if (api != null) { channel.setMessageHandler((message, reply) -> { - HashMap wrapped = new HashMap<>(); + Map wrapped = new HashMap<>(); try { @SuppressWarnings("ConstantConditions") - SetDepartmentRequest input = SetDepartmentRequest.fromMap((HashMap)message); + SetDepartmentRequest input = SetDepartmentRequest.fromMap((Map)message); api.setDepartment(input); wrapped.put("result", null); } - catch (Exception exception) { + catch (Error | RuntimeException exception) { wrapped.put("error", wrapError(exception)); } reply.reply(wrapped); @@ -252,14 +253,14 @@ static void setup(BinaryMessenger binaryMessenger, ChatApi api) { new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.ChatApi.startChat", new StandardMessageCodec()); if (api != null) { channel.setMessageHandler((message, reply) -> { - HashMap wrapped = new HashMap<>(); + Map wrapped = new HashMap<>(); try { @SuppressWarnings("ConstantConditions") - StartChatRequest input = StartChatRequest.fromMap((HashMap)message); + StartChatRequest input = StartChatRequest.fromMap((Map)message); api.startChat(input); wrapped.put("result", null); } - catch (Exception exception) { + catch (Error | RuntimeException exception) { wrapped.put("error", wrapError(exception)); } reply.reply(wrapped); @@ -280,21 +281,21 @@ public interface ProfileApi { void appendVisitorNote(VisitorNoteRequest arg); void clearVisitorNotes(); - /** Sets up an instance of `ProfileApi` to handle messages through the `binaryMessenger` */ + /** Sets up an instance of `ProfileApi` to handle messages through the `binaryMessenger`. */ static void setup(BinaryMessenger binaryMessenger, ProfileApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.ProfileApi.setVisitorInfo", new StandardMessageCodec()); if (api != null) { channel.setMessageHandler((message, reply) -> { - HashMap wrapped = new HashMap<>(); + Map wrapped = new HashMap<>(); try { @SuppressWarnings("ConstantConditions") - SetVisitorInfoRequest input = SetVisitorInfoRequest.fromMap((HashMap)message); + SetVisitorInfoRequest input = SetVisitorInfoRequest.fromMap((Map)message); api.setVisitorInfo(input); wrapped.put("result", null); } - catch (Exception exception) { + catch (Error | RuntimeException exception) { wrapped.put("error", wrapError(exception)); } reply.reply(wrapped); @@ -308,14 +309,14 @@ static void setup(BinaryMessenger binaryMessenger, ProfileApi api) { new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.ProfileApi.addVisitorTags", new StandardMessageCodec()); if (api != null) { channel.setMessageHandler((message, reply) -> { - HashMap wrapped = new HashMap<>(); + Map wrapped = new HashMap<>(); try { @SuppressWarnings("ConstantConditions") - VisitorTagsRequest input = VisitorTagsRequest.fromMap((HashMap)message); + VisitorTagsRequest input = VisitorTagsRequest.fromMap((Map)message); api.addVisitorTags(input); wrapped.put("result", null); } - catch (Exception exception) { + catch (Error | RuntimeException exception) { wrapped.put("error", wrapError(exception)); } reply.reply(wrapped); @@ -329,14 +330,14 @@ static void setup(BinaryMessenger binaryMessenger, ProfileApi api) { new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.ProfileApi.removeVisitorTags", new StandardMessageCodec()); if (api != null) { channel.setMessageHandler((message, reply) -> { - HashMap wrapped = new HashMap<>(); + Map wrapped = new HashMap<>(); try { @SuppressWarnings("ConstantConditions") - VisitorTagsRequest input = VisitorTagsRequest.fromMap((HashMap)message); + VisitorTagsRequest input = VisitorTagsRequest.fromMap((Map)message); api.removeVisitorTags(input); wrapped.put("result", null); } - catch (Exception exception) { + catch (Error | RuntimeException exception) { wrapped.put("error", wrapError(exception)); } reply.reply(wrapped); @@ -350,14 +351,14 @@ static void setup(BinaryMessenger binaryMessenger, ProfileApi api) { new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.ProfileApi.setVisitorNote", new StandardMessageCodec()); if (api != null) { channel.setMessageHandler((message, reply) -> { - HashMap wrapped = new HashMap<>(); + Map wrapped = new HashMap<>(); try { @SuppressWarnings("ConstantConditions") - VisitorNoteRequest input = VisitorNoteRequest.fromMap((HashMap)message); + VisitorNoteRequest input = VisitorNoteRequest.fromMap((Map)message); api.setVisitorNote(input); wrapped.put("result", null); } - catch (Exception exception) { + catch (Error | RuntimeException exception) { wrapped.put("error", wrapError(exception)); } reply.reply(wrapped); @@ -371,14 +372,14 @@ static void setup(BinaryMessenger binaryMessenger, ProfileApi api) { new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.ProfileApi.appendVisitorNote", new StandardMessageCodec()); if (api != null) { channel.setMessageHandler((message, reply) -> { - HashMap wrapped = new HashMap<>(); + Map wrapped = new HashMap<>(); try { @SuppressWarnings("ConstantConditions") - VisitorNoteRequest input = VisitorNoteRequest.fromMap((HashMap)message); + VisitorNoteRequest input = VisitorNoteRequest.fromMap((Map)message); api.appendVisitorNote(input); wrapped.put("result", null); } - catch (Exception exception) { + catch (Error | RuntimeException exception) { wrapped.put("error", wrapError(exception)); } reply.reply(wrapped); @@ -392,12 +393,12 @@ static void setup(BinaryMessenger binaryMessenger, ProfileApi api) { new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.ProfileApi.clearVisitorNotes", new StandardMessageCodec()); if (api != null) { channel.setMessageHandler((message, reply) -> { - HashMap wrapped = new HashMap<>(); + Map wrapped = new HashMap<>(); try { api.clearVisitorNotes(); wrapped.put("result", null); } - catch (Exception exception) { + catch (Error | RuntimeException exception) { wrapped.put("error", wrapError(exception)); } reply.reply(wrapped); @@ -408,10 +409,10 @@ static void setup(BinaryMessenger binaryMessenger, ProfileApi api) { } } } - private static HashMap wrapError(Exception exception) { - HashMap errorMap = new HashMap<>(); + private static Map wrapError(Throwable exception) { + Map errorMap = new HashMap<>(); errorMap.put("message", exception.toString()); - errorMap.put("code", null); + errorMap.put("code", exception.getClass().getSimpleName()); errorMap.put("details", null); return errorMap; } diff --git a/android/src/main/java/com/codeheadlabs/zendesk/ZendeskPlugin.java b/android/src/main/java/com/codeheadlabs/zendesk/ZendeskPlugin.java index f11e5ca..eb7da67 100644 --- a/android/src/main/java/com/codeheadlabs/zendesk/ZendeskPlugin.java +++ b/android/src/main/java/com/codeheadlabs/zendesk/ZendeskPlugin.java @@ -18,6 +18,7 @@ import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.PluginRegistry.Registrar; import java.util.ArrayList; +import java.util.List; import zendesk.chat.Chat; import zendesk.chat.ChatConfiguration; import zendesk.chat.ChatEngine; @@ -36,11 +37,6 @@ public class ZendeskPlugin implements FlutterPlugin, ActivityAware, ChatApi, Pro public ZendeskPlugin() {} - public static void registerWith(Registrar registrar) { - ZendeskPlugin plugin = new ZendeskPlugin(); - plugin.startListening(registrar.context(), registrar.messenger()); - } - @Override public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { startListening(binding.getApplicationContext(), binding.getBinaryMessenger()); @@ -137,7 +133,7 @@ public void setVisitorInfo(SetVisitorInfoRequest arg) { @Override public void addVisitorTags(VisitorTagsRequest arg) { final ProfileProvider profileProvider = getProfileProvider(); - ArrayList raw = arg.getTags(); + List raw = arg.getTags(); ArrayList tags = new ArrayList<>(); for (Object o : raw) { if (o instanceof String) { @@ -151,7 +147,7 @@ public void addVisitorTags(VisitorTagsRequest arg) { @Override public void removeVisitorTags(VisitorTagsRequest arg) { final ProfileProvider profileProvider = getProfileProvider(); - ArrayList raw = arg.getTags(); + List raw = arg.getTags(); ArrayList tags = new ArrayList<>(); for (Object o : raw) { if (o instanceof String) { diff --git a/example/android/app/src/androidTest/java/com/codeheadlabs/zendesk/EmbeddingV1ActivityTest.java b/example/android/app/src/androidTest/java/com/codeheadlabs/zendesk/EmbeddingV1ActivityTest.java deleted file mode 100644 index 8770e38..0000000 --- a/example/android/app/src/androidTest/java/com/codeheadlabs/zendesk/EmbeddingV1ActivityTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.codeheadlabs.zendesk; - -import androidx.test.rule.ActivityTestRule; -import com.codeheadlabs.zendeskexample.EmbeddingV1Activity; -import dev.flutter.plugins.e2e.FlutterTestRunner; -import org.junit.Rule; -import org.junit.runner.RunWith; - -@RunWith(FlutterTestRunner.class) -public class EmbeddingV1ActivityTest { - - @Rule - public ActivityTestRule rule = - new ActivityTestRule<>(EmbeddingV1Activity.class); -} \ No newline at end of file diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index 092bb62..7ab2dd6 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -34,13 +34,6 @@ - - diff --git a/example/android/app/src/main/java/com/codeheadlabs/zendeskexample/EmbeddingV1Activity.java b/example/android/app/src/main/java/com/codeheadlabs/zendeskexample/EmbeddingV1Activity.java deleted file mode 100644 index 19ce8bf..0000000 --- a/example/android/app/src/main/java/com/codeheadlabs/zendeskexample/EmbeddingV1Activity.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.codeheadlabs.zendeskexample; - -import android.os.Bundle; -import com.codeheadlabs.zendesk.ZendeskPlugin; -import dev.flutter.plugins.e2e.E2EPlugin; -import io.flutter.app.FlutterActivity; - -public class EmbeddingV1Activity extends FlutterActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - ZendeskPlugin.registerWith(registrarFor("com.codeheadlabs.zendesk.ZendeskPlugin")); - E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin")); - } -} diff --git a/example/test_driver/zendesk_e2e.dart b/example/integration_test/visitor_info_test.dart similarity index 66% rename from example/test_driver/zendesk_e2e.dart rename to example/integration_test/visitor_info_test.dart index 24c8faa..629fdc6 100644 --- a/example/test_driver/zendesk_e2e.dart +++ b/example/integration_test/visitor_info_test.dart @@ -1,11 +1,13 @@ import 'package:flutter_test/flutter_test.dart'; -import 'package:e2e/e2e.dart'; +import 'package:integration_test/integration_test.dart'; import 'package:zendesk/zendesk.dart'; void main() { - E2EWidgetsFlutterBinding.ensureInitialized(); + IntegrationTestWidgetsFlutterBinding.ensureInitialized(); testWidgets('sets visitor info', (WidgetTester tester) async { + await Zendesk().init('ABC'); + await Zendesk().setVisitorInfo( name: 'some-user', email: 'email@domain.com', diff --git a/example/pubspec.yaml b/example/pubspec.yaml index c233d6f..6af10e5 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -1,6 +1,9 @@ name: zendesk_example description: Demonstrates how to use the zendesk plugin. +environment: + sdk: '>=2.10.0 <3.0.0' + # The following defines the version and build number for your application. # A version number is three numbers separated by dots, like 1.2.43 # followed by an optional build number separated by a +. @@ -13,15 +16,10 @@ dependencies: flutter: sdk: flutter - # The following adds the Cupertino Icons font to your application. - # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^0.1.2 - dev_dependencies: flutter_test: sdk: flutter - e2e: ^0.5.0 - flutter_driver: + integration_test: sdk: flutter zendesk: diff --git a/example/test_driver/integration_test.dart b/example/test_driver/integration_test.dart new file mode 100644 index 0000000..3edf86a --- /dev/null +++ b/example/test_driver/integration_test.dart @@ -0,0 +1,5 @@ +import 'dart:async'; + +import 'package:integration_test/integration_test_driver.dart'; + +Future main() => integrationDriver(); diff --git a/example/test_driver/zendesk_e2e_test.dart b/example/test_driver/zendesk_e2e_test.dart deleted file mode 100644 index 983c386..0000000 --- a/example/test_driver/zendesk_e2e_test.dart +++ /dev/null @@ -1,5 +0,0 @@ -import 'dart:async'; - -import 'package:e2e/e2e_driver.dart' as e2e; - -Future main() async => e2e.main(); diff --git a/ios/Classes/zendesk.pigeon.h b/ios/Classes/zendesk.pigeon.h index 6ca1d06..23e94ab 100644 --- a/ios/Classes/zendesk.pigeon.h +++ b/ios/Classes/zendesk.pigeon.h @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v0.1.9), do not edit directly. +// Autogenerated from Pigeon (v0.1.23), do not edit directly. // See also: https://pub.dev/packages/pigeon #import @protocol FlutterBinaryMessenger; diff --git a/ios/Classes/zendesk.pigeon.m b/ios/Classes/zendesk.pigeon.m index 2e3a8c4..4760f92 100644 --- a/ios/Classes/zendesk.pigeon.m +++ b/ios/Classes/zendesk.pigeon.m @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v0.1.9), do not edit directly. +// Autogenerated from Pigeon (v0.1.23), do not edit directly. // See also: https://pub.dev/packages/pigeon #import "zendesk.pigeon.h" #import @@ -7,19 +7,19 @@ #error File requires ARC to be enabled. #endif -static NSDictionary* wrapResult(NSDictionary *result, FlutterError *error) { +static NSDictionary* wrapResult(NSDictionary *result, FlutterError *error) { NSDictionary *errorDict = (NSDictionary *)[NSNull null]; if (error) { - errorDict = [NSDictionary dictionaryWithObjectsAndKeys: - (error.code ? error.code : [NSNull null]), @"code", - (error.message ? error.message : [NSNull null]), @"message", - (error.details ? error.details : [NSNull null]), @"details", - nil]; + errorDict = @{ + @"code": (error.code ? error.code : [NSNull null]), + @"message": (error.message ? error.message : [NSNull null]), + @"details": (error.details ? error.details : [NSNull null]), + }; } - return [NSDictionary dictionaryWithObjectsAndKeys: - (result ? result : [NSNull null]), @"result", - errorDict, @"error", - nil]; + return @{ + @"result": (result ? result : [NSNull null]), + @"error": errorDict, + }; } @interface InitializeRequest () @@ -179,8 +179,8 @@ void ChatApiSetup(id binaryMessenger, id api) { binaryMessenger:binaryMessenger]; if (api) { [channel setMessageHandler:^(id _Nullable message, FlutterReply callback) { - FlutterError *error; InitializeRequest *input = [InitializeRequest fromMap:message]; + FlutterError *error; [api initialize:input error:&error]; callback(wrapResult(nil, error)); }]; @@ -196,8 +196,8 @@ void ChatApiSetup(id binaryMessenger, id api) { binaryMessenger:binaryMessenger]; if (api) { [channel setMessageHandler:^(id _Nullable message, FlutterReply callback) { - FlutterError *error; SetDepartmentRequest *input = [SetDepartmentRequest fromMap:message]; + FlutterError *error; [api setDepartment:input error:&error]; callback(wrapResult(nil, error)); }]; @@ -213,8 +213,8 @@ void ChatApiSetup(id binaryMessenger, id api) { binaryMessenger:binaryMessenger]; if (api) { [channel setMessageHandler:^(id _Nullable message, FlutterReply callback) { - FlutterError *error; StartChatRequest *input = [StartChatRequest fromMap:message]; + FlutterError *error; [api startChat:input error:&error]; callback(wrapResult(nil, error)); }]; @@ -232,8 +232,8 @@ void ProfileApiSetup(id binaryMessenger, id binaryMessenger:binaryMessenger]; if (api) { [channel setMessageHandler:^(id _Nullable message, FlutterReply callback) { - FlutterError *error; SetVisitorInfoRequest *input = [SetVisitorInfoRequest fromMap:message]; + FlutterError *error; [api setVisitorInfo:input error:&error]; callback(wrapResult(nil, error)); }]; @@ -249,8 +249,8 @@ void ProfileApiSetup(id binaryMessenger, id binaryMessenger:binaryMessenger]; if (api) { [channel setMessageHandler:^(id _Nullable message, FlutterReply callback) { - FlutterError *error; VisitorTagsRequest *input = [VisitorTagsRequest fromMap:message]; + FlutterError *error; [api addVisitorTags:input error:&error]; callback(wrapResult(nil, error)); }]; @@ -266,8 +266,8 @@ void ProfileApiSetup(id binaryMessenger, id binaryMessenger:binaryMessenger]; if (api) { [channel setMessageHandler:^(id _Nullable message, FlutterReply callback) { - FlutterError *error; VisitorTagsRequest *input = [VisitorTagsRequest fromMap:message]; + FlutterError *error; [api removeVisitorTags:input error:&error]; callback(wrapResult(nil, error)); }]; @@ -283,8 +283,8 @@ void ProfileApiSetup(id binaryMessenger, id binaryMessenger:binaryMessenger]; if (api) { [channel setMessageHandler:^(id _Nullable message, FlutterReply callback) { - FlutterError *error; VisitorNoteRequest *input = [VisitorNoteRequest fromMap:message]; + FlutterError *error; [api setVisitorNote:input error:&error]; callback(wrapResult(nil, error)); }]; @@ -300,8 +300,8 @@ void ProfileApiSetup(id binaryMessenger, id binaryMessenger:binaryMessenger]; if (api) { [channel setMessageHandler:^(id _Nullable message, FlutterReply callback) { - FlutterError *error; VisitorNoteRequest *input = [VisitorNoteRequest fromMap:message]; + FlutterError *error; [api appendVisitorNote:input error:&error]; callback(wrapResult(nil, error)); }]; diff --git a/lib/src/pigeon.dart b/lib/src/pigeon.dart index c6f1135..fa7eab7 100644 --- a/lib/src/pigeon.dart +++ b/lib/src/pigeon.dart @@ -1,49 +1,44 @@ -// Autogenerated from Pigeon (v0.1.9), do not edit directly. +// Autogenerated from Pigeon (v0.1.23), do not edit directly. // See also: https://pub.dev/packages/pigeon -// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import +// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators // @dart = 2.8 import 'dart:async'; -import 'package:flutter/services.dart'; import 'dart:typed_data' show Uint8List, Int32List, Int64List, Float64List; +import 'package:flutter/services.dart'; + class InitializeRequest { String accountKey; String appId; - // ignore: unused_element - Map _toMap() { - final Map pigeonMap = {}; + + Object encode() { + final Map pigeonMap = {}; pigeonMap['accountKey'] = accountKey; pigeonMap['appId'] = appId; return pigeonMap; } - // ignore: unused_element - static InitializeRequest _fromMap(Map pigeonMap) { - if (pigeonMap == null){ - return null; - } - final InitializeRequest result = InitializeRequest(); - result.accountKey = pigeonMap['accountKey']; - result.appId = pigeonMap['appId']; - return result; + + static InitializeRequest decode(Object message) { + final Map pigeonMap = message as Map; + return InitializeRequest() + ..accountKey = pigeonMap['accountKey'] as String + ..appId = pigeonMap['appId'] as String; } } class SetDepartmentRequest { String department; - // ignore: unused_element - Map _toMap() { - final Map pigeonMap = {}; + + Object encode() { + final Map pigeonMap = {}; pigeonMap['department'] = department; return pigeonMap; } - // ignore: unused_element - static SetDepartmentRequest _fromMap(Map pigeonMap) { - if (pigeonMap == null){ - return null; - } - final SetDepartmentRequest result = SetDepartmentRequest(); - result.department = pigeonMap['department']; - return result; + + static SetDepartmentRequest decode(Object message) { + final Map pigeonMap = message as Map; + return SetDepartmentRequest() + ..department = pigeonMap['department'] as String; } } @@ -56,9 +51,9 @@ class StartChatRequest { String iosBackButtonTitle; int iosNavigationBarColor; int iosNavigationTitleColor; - // ignore: unused_element - Map _toMap() { - final Map pigeonMap = {}; + + Object encode() { + final Map pigeonMap = {}; pigeonMap['isPreChatFormEnabled'] = isPreChatFormEnabled; pigeonMap['isOfflineFormEnabled'] = isOfflineFormEnabled; pigeonMap['isAgentAvailabilityEnabled'] = isAgentAvailabilityEnabled; @@ -69,21 +64,18 @@ class StartChatRequest { pigeonMap['iosNavigationTitleColor'] = iosNavigationTitleColor; return pigeonMap; } - // ignore: unused_element - static StartChatRequest _fromMap(Map pigeonMap) { - if (pigeonMap == null){ - return null; - } - final StartChatRequest result = StartChatRequest(); - result.isPreChatFormEnabled = pigeonMap['isPreChatFormEnabled']; - result.isOfflineFormEnabled = pigeonMap['isOfflineFormEnabled']; - result.isAgentAvailabilityEnabled = pigeonMap['isAgentAvailabilityEnabled']; - result.isChatTranscriptPromptEnabled = pigeonMap['isChatTranscriptPromptEnabled']; - result.messagingName = pigeonMap['messagingName']; - result.iosBackButtonTitle = pigeonMap['iosBackButtonTitle']; - result.iosNavigationBarColor = pigeonMap['iosNavigationBarColor']; - result.iosNavigationTitleColor = pigeonMap['iosNavigationTitleColor']; - return result; + + static StartChatRequest decode(Object message) { + final Map pigeonMap = message as Map; + return StartChatRequest() + ..isPreChatFormEnabled = pigeonMap['isPreChatFormEnabled'] as bool + ..isOfflineFormEnabled = pigeonMap['isOfflineFormEnabled'] as bool + ..isAgentAvailabilityEnabled = pigeonMap['isAgentAvailabilityEnabled'] as bool + ..isChatTranscriptPromptEnabled = pigeonMap['isChatTranscriptPromptEnabled'] as bool + ..messagingName = pigeonMap['messagingName'] as String + ..iosBackButtonTitle = pigeonMap['iosBackButtonTitle'] as String + ..iosNavigationBarColor = pigeonMap['iosNavigationBarColor'] as int + ..iosNavigationTitleColor = pigeonMap['iosNavigationTitleColor'] as int; } } @@ -91,265 +83,262 @@ class SetVisitorInfoRequest { String name; String email; String phoneNumber; - // ignore: unused_element - Map _toMap() { - final Map pigeonMap = {}; + + Object encode() { + final Map pigeonMap = {}; pigeonMap['name'] = name; pigeonMap['email'] = email; pigeonMap['phoneNumber'] = phoneNumber; return pigeonMap; } - // ignore: unused_element - static SetVisitorInfoRequest _fromMap(Map pigeonMap) { - if (pigeonMap == null){ - return null; - } - final SetVisitorInfoRequest result = SetVisitorInfoRequest(); - result.name = pigeonMap['name']; - result.email = pigeonMap['email']; - result.phoneNumber = pigeonMap['phoneNumber']; - return result; + + static SetVisitorInfoRequest decode(Object message) { + final Map pigeonMap = message as Map; + return SetVisitorInfoRequest() + ..name = pigeonMap['name'] as String + ..email = pigeonMap['email'] as String + ..phoneNumber = pigeonMap['phoneNumber'] as String; } } class VisitorTagsRequest { - List tags; - // ignore: unused_element - Map _toMap() { - final Map pigeonMap = {}; + List tags; + + Object encode() { + final Map pigeonMap = {}; pigeonMap['tags'] = tags; return pigeonMap; } - // ignore: unused_element - static VisitorTagsRequest _fromMap(Map pigeonMap) { - if (pigeonMap == null){ - return null; - } - final VisitorTagsRequest result = VisitorTagsRequest(); - result.tags = pigeonMap['tags']; - return result; + + static VisitorTagsRequest decode(Object message) { + final Map pigeonMap = message as Map; + return VisitorTagsRequest() + ..tags = pigeonMap['tags'] as List; } } class VisitorNoteRequest { String note; - // ignore: unused_element - Map _toMap() { - final Map pigeonMap = {}; + + Object encode() { + final Map pigeonMap = {}; pigeonMap['note'] = note; return pigeonMap; } - // ignore: unused_element - static VisitorNoteRequest _fromMap(Map pigeonMap) { - if (pigeonMap == null){ - return null; - } - final VisitorNoteRequest result = VisitorNoteRequest(); - result.note = pigeonMap['note']; - return result; + + static VisitorNoteRequest decode(Object message) { + final Map pigeonMap = message as Map; + return VisitorNoteRequest() + ..note = pigeonMap['note'] as String; } } class ChatApi { Future initialize(InitializeRequest arg) async { - final Map requestMap = arg._toMap(); - const BasicMessageChannel channel = - BasicMessageChannel('dev.flutter.pigeon.ChatApi.initialize', StandardMessageCodec()); - - final Map replyMap = await channel.send(requestMap); + final Object encoded = arg.encode(); + const BasicMessageChannel channel = + BasicMessageChannel('dev.flutter.pigeon.ChatApi.initialize', StandardMessageCodec()); + final Map replyMap = await channel.send(encoded) as Map; if (replyMap == null) { throw PlatformException( code: 'channel-error', message: 'Unable to establish connection on channel.', - details: null); + details: null, + ); } else if (replyMap['error'] != null) { - final Map error = replyMap['error']; + final Map error = (replyMap['error'] as Map); throw PlatformException( - code: error['code'], - message: error['message'], - details: error['details']); + code: (error['code'] as String), + message: error['message'] as String, + details: error['details'], + ); } else { // noop } - } + Future setDepartment(SetDepartmentRequest arg) async { - final Map requestMap = arg._toMap(); - const BasicMessageChannel channel = - BasicMessageChannel('dev.flutter.pigeon.ChatApi.setDepartment', StandardMessageCodec()); - - final Map replyMap = await channel.send(requestMap); + final Object encoded = arg.encode(); + const BasicMessageChannel channel = + BasicMessageChannel('dev.flutter.pigeon.ChatApi.setDepartment', StandardMessageCodec()); + final Map replyMap = await channel.send(encoded) as Map; if (replyMap == null) { throw PlatformException( code: 'channel-error', message: 'Unable to establish connection on channel.', - details: null); + details: null, + ); } else if (replyMap['error'] != null) { - final Map error = replyMap['error']; + final Map error = (replyMap['error'] as Map); throw PlatformException( - code: error['code'], - message: error['message'], - details: error['details']); + code: (error['code'] as String), + message: error['message'] as String, + details: error['details'], + ); } else { // noop } - } + Future startChat(StartChatRequest arg) async { - final Map requestMap = arg._toMap(); - const BasicMessageChannel channel = - BasicMessageChannel('dev.flutter.pigeon.ChatApi.startChat', StandardMessageCodec()); - - final Map replyMap = await channel.send(requestMap); + final Object encoded = arg.encode(); + const BasicMessageChannel channel = + BasicMessageChannel('dev.flutter.pigeon.ChatApi.startChat', StandardMessageCodec()); + final Map replyMap = await channel.send(encoded) as Map; if (replyMap == null) { throw PlatformException( code: 'channel-error', message: 'Unable to establish connection on channel.', - details: null); + details: null, + ); } else if (replyMap['error'] != null) { - final Map error = replyMap['error']; + final Map error = (replyMap['error'] as Map); throw PlatformException( - code: error['code'], - message: error['message'], - details: error['details']); + code: (error['code'] as String), + message: error['message'] as String, + details: error['details'], + ); } else { // noop } - } } class ProfileApi { Future setVisitorInfo(SetVisitorInfoRequest arg) async { - final Map requestMap = arg._toMap(); - const BasicMessageChannel channel = - BasicMessageChannel('dev.flutter.pigeon.ProfileApi.setVisitorInfo', StandardMessageCodec()); - - final Map replyMap = await channel.send(requestMap); + final Object encoded = arg.encode(); + const BasicMessageChannel channel = + BasicMessageChannel('dev.flutter.pigeon.ProfileApi.setVisitorInfo', StandardMessageCodec()); + final Map replyMap = await channel.send(encoded) as Map; if (replyMap == null) { throw PlatformException( code: 'channel-error', message: 'Unable to establish connection on channel.', - details: null); + details: null, + ); } else if (replyMap['error'] != null) { - final Map error = replyMap['error']; + final Map error = (replyMap['error'] as Map); throw PlatformException( - code: error['code'], - message: error['message'], - details: error['details']); + code: (error['code'] as String), + message: error['message'] as String, + details: error['details'], + ); } else { // noop } - } + Future addVisitorTags(VisitorTagsRequest arg) async { - final Map requestMap = arg._toMap(); - const BasicMessageChannel channel = - BasicMessageChannel('dev.flutter.pigeon.ProfileApi.addVisitorTags', StandardMessageCodec()); - - final Map replyMap = await channel.send(requestMap); + final Object encoded = arg.encode(); + const BasicMessageChannel channel = + BasicMessageChannel('dev.flutter.pigeon.ProfileApi.addVisitorTags', StandardMessageCodec()); + final Map replyMap = await channel.send(encoded) as Map; if (replyMap == null) { throw PlatformException( code: 'channel-error', message: 'Unable to establish connection on channel.', - details: null); + details: null, + ); } else if (replyMap['error'] != null) { - final Map error = replyMap['error']; + final Map error = (replyMap['error'] as Map); throw PlatformException( - code: error['code'], - message: error['message'], - details: error['details']); + code: (error['code'] as String), + message: error['message'] as String, + details: error['details'], + ); } else { // noop } - } + Future removeVisitorTags(VisitorTagsRequest arg) async { - final Map requestMap = arg._toMap(); - const BasicMessageChannel channel = - BasicMessageChannel('dev.flutter.pigeon.ProfileApi.removeVisitorTags', StandardMessageCodec()); - - final Map replyMap = await channel.send(requestMap); + final Object encoded = arg.encode(); + const BasicMessageChannel channel = + BasicMessageChannel('dev.flutter.pigeon.ProfileApi.removeVisitorTags', StandardMessageCodec()); + final Map replyMap = await channel.send(encoded) as Map; if (replyMap == null) { throw PlatformException( code: 'channel-error', message: 'Unable to establish connection on channel.', - details: null); + details: null, + ); } else if (replyMap['error'] != null) { - final Map error = replyMap['error']; + final Map error = (replyMap['error'] as Map); throw PlatformException( - code: error['code'], - message: error['message'], - details: error['details']); + code: (error['code'] as String), + message: error['message'] as String, + details: error['details'], + ); } else { // noop } - } + Future setVisitorNote(VisitorNoteRequest arg) async { - final Map requestMap = arg._toMap(); - const BasicMessageChannel channel = - BasicMessageChannel('dev.flutter.pigeon.ProfileApi.setVisitorNote', StandardMessageCodec()); - - final Map replyMap = await channel.send(requestMap); + final Object encoded = arg.encode(); + const BasicMessageChannel channel = + BasicMessageChannel('dev.flutter.pigeon.ProfileApi.setVisitorNote', StandardMessageCodec()); + final Map replyMap = await channel.send(encoded) as Map; if (replyMap == null) { throw PlatformException( code: 'channel-error', message: 'Unable to establish connection on channel.', - details: null); + details: null, + ); } else if (replyMap['error'] != null) { - final Map error = replyMap['error']; + final Map error = (replyMap['error'] as Map); throw PlatformException( - code: error['code'], - message: error['message'], - details: error['details']); + code: (error['code'] as String), + message: error['message'] as String, + details: error['details'], + ); } else { // noop } - } + Future appendVisitorNote(VisitorNoteRequest arg) async { - final Map requestMap = arg._toMap(); - const BasicMessageChannel channel = - BasicMessageChannel('dev.flutter.pigeon.ProfileApi.appendVisitorNote', StandardMessageCodec()); - - final Map replyMap = await channel.send(requestMap); + final Object encoded = arg.encode(); + const BasicMessageChannel channel = + BasicMessageChannel('dev.flutter.pigeon.ProfileApi.appendVisitorNote', StandardMessageCodec()); + final Map replyMap = await channel.send(encoded) as Map; if (replyMap == null) { throw PlatformException( code: 'channel-error', message: 'Unable to establish connection on channel.', - details: null); + details: null, + ); } else if (replyMap['error'] != null) { - final Map error = replyMap['error']; + final Map error = (replyMap['error'] as Map); throw PlatformException( - code: error['code'], - message: error['message'], - details: error['details']); + code: (error['code'] as String), + message: error['message'] as String, + details: error['details'], + ); } else { // noop } - } + Future clearVisitorNotes() async { - const BasicMessageChannel channel = - BasicMessageChannel('dev.flutter.pigeon.ProfileApi.clearVisitorNotes', StandardMessageCodec()); - - final Map replyMap = await channel.send(null); + const BasicMessageChannel channel = + BasicMessageChannel('dev.flutter.pigeon.ProfileApi.clearVisitorNotes', StandardMessageCodec()); + final Map replyMap = await channel.send(null) as Map; if (replyMap == null) { throw PlatformException( code: 'channel-error', message: 'Unable to establish connection on channel.', - details: null); + details: null, + ); } else if (replyMap['error'] != null) { - final Map error = replyMap['error']; + final Map error = (replyMap['error'] as Map); throw PlatformException( - code: error['code'], - message: error['message'], - details: error['details']); + code: (error['code'] as String), + message: error['message'] as String, + details: error['details'], + ); } else { // noop } - } } - diff --git a/pubspec.yaml b/pubspec.yaml index 57b4d86..28c56a6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,10 +10,9 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - e2e: ^0.5.0 - pigeon: ^0.1.9 - flutter_driver: + integration_test: sdk: flutter + pigeon: ^0.1.23 flutter: plugin: @@ -25,5 +24,4 @@ flutter: pluginClass: ZendeskPlugin environment: - sdk: ">=2.8.0 <3.0.0" - flutter: ">=1.12.13+hotfix.6 <2.0.0" + sdk: '>=2.10.0 <3.0.0' \ No newline at end of file From 33b12895dccd37e6666301a2a4c49755ad58f64c Mon Sep 17 00:00:00 2001 From: Sebastian Roth Date: Fri, 26 Mar 2021 18:46:57 +0000 Subject: [PATCH 2/2] Changelog & version bump --- CHANGELOG.md | 6 ++++++ pubspec.yaml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec5bbbd..c36841f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 2.0.1 + +* Remove compatibility with V1 plugin embedding +* Upgrade integration_test dependency + + ## 2.0.0 (20201022) * Migrate to Zendesk Chat SDK v2 diff --git a/pubspec.yaml b/pubspec.yaml index 28c56a6..b3cb631 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: zendesk description: Flutter interface for Zendesk Mobile SDK -version: 2.0.0 +version: 2.0.1 homepage: https://github.com/emostar/flutter-zendesk dependencies: