diff --git a/android/build.gradle b/android/build.gradle index 96a4ebeb..961e4593 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -53,6 +53,10 @@ android { targetCompatibility = JavaVersion.VERSION_17 } + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17 + } + packagingOptions { exclude("androidsupportmultidexversion.txt") } diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 6ce2dfc3..2c0fdb62 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -56,6 +56,10 @@ android { targetCompatibility = JavaVersion.VERSION_17 } + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17 + } + packagingOptions { resources { // Required for minSdkVersion < 21 diff --git a/example/integration_test/initialize_with_error_test.dart b/example/integration_test/initialize_with_error_test.dart index c65d460b..d52dbb31 100644 --- a/example/integration_test/initialize_with_error_test.dart +++ b/example/integration_test/initialize_with_error_test.dart @@ -69,6 +69,7 @@ void main() { await tester.tap(initializeBtnFinder); await tester.pumpAndSettle(); + // Wait for initialization error await Future.delayed(Duration(seconds: 4)); // SDK is not ready diff --git a/example/integration_test/initialize_with_local_config_test.dart b/example/integration_test/initialize_with_local_config_test.dart index e4018114..d06f359e 100644 --- a/example/integration_test/initialize_with_local_config_test.dart +++ b/example/integration_test/initialize_with_local_config_test.dart @@ -9,6 +9,7 @@ import 'package:integration_test/integration_test.dart'; import 'util/assertion_helper.dart'; import 'util/constants.dart'; +import 'util/initialize_helper.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); @@ -52,10 +53,8 @@ void main() { assertNativeMessage("onReady", sdkNotReadyMessage); await tester.tap(localConfigBoxFinder); - await tester.tap(initializeBtnFinder); - await tester.pumpAndSettle(); - await Future.delayed(Duration(seconds: 4)); + await InitializeHelper.initialize(tester, initializeBtnFinder); assertNativeMessage("initialize", okMessage); diff --git a/example/integration_test/initialize_with_success_test.dart b/example/integration_test/initialize_with_success_test.dart index d4aab596..e7510f8c 100644 --- a/example/integration_test/initialize_with_success_test.dart +++ b/example/integration_test/initialize_with_success_test.dart @@ -7,6 +7,7 @@ import 'package:integration_test/integration_test.dart'; import 'util/assertion_helper.dart'; import 'util/constants.dart'; +import 'util/initialize_helper.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); @@ -69,10 +70,7 @@ void main() { assertNativeMessage("onReady", sdkNotReadyMessage); - await tester.tap(initializeBtnFinder); - await tester.pumpAndSettle(); - - await Future.delayed(Duration(seconds: 4)); + await InitializeHelper.initialize(tester, initializeBtnFinder); assertNativeMessage("initialize", okMessage); @@ -108,10 +106,7 @@ void main() { FocusManager.instance.primaryFocus?.unfocus(); await tester.pumpAndSettle(); - await tester.tap(initializeBtnFinder); - await tester.pumpAndSettle(); - - await Future.delayed(Duration(seconds: 4)); + await InitializeHelper.initialize(tester, initializeBtnFinder); assertNativeMessage("initialize", okMessage); @@ -147,10 +142,7 @@ void main() { await tester.tap(disableRemoteConfigFinder); await tester.pumpAndSettle(); - await tester.tap(initializeBtnFinder); - await tester.pumpAndSettle(); - - await Future.delayed(Duration(seconds: 4)); + await InitializeHelper.initialize(tester, initializeBtnFinder); assertNativeMessage("initialize", okMessage); diff --git a/example/integration_test/setup_test.dart b/example/integration_test/setup_test.dart index e6e4f87f..20b19bcd 100644 --- a/example/integration_test/setup_test.dart +++ b/example/integration_test/setup_test.dart @@ -9,6 +9,7 @@ import 'package:integration_test/integration_test.dart'; import 'util/assertion_helper.dart'; import 'util/constants.dart'; +import 'util/initialize_helper.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); @@ -69,10 +70,7 @@ void main() { assertNativeMessage("setupUI", okMessage); - await tester.tap(initializeBtnFinder); - await tester.pumpAndSettle(); - - await Future.delayed(Duration(seconds: 10)); + await InitializeHelper.initialize(tester, initializeBtnFinder); assert(isError == false); assert(isReady == true); diff --git a/example/integration_test/util/initialize_helper.dart b/example/integration_test/util/initialize_helper.dart index 35765c6d..cae6c627 100644 --- a/example/integration_test/util/initialize_helper.dart +++ b/example/integration_test/util/initialize_helper.dart @@ -2,13 +2,17 @@ import 'package:didomi_sdk/didomi_sdk.dart'; import 'package:flutter_test/flutter_test.dart'; class InitializeHelper { + static const initializationTimeout = Duration(seconds: 20); + static Future initialize(WidgetTester tester, Finder finder) async { + await tester.tap(finder); await tester.pumpAndSettle(); + final startTime = DateTime.now(); // Wait for sdk init await tester.runAsync(() async { - while (await DidomiSdk.isReady == false) { + while (await DidomiSdk.isReady == false && DateTime.now().difference(startTime) < initializationTimeout) { await Future.delayed(Duration(milliseconds: 100)); } await expectLater(await DidomiSdk.isReady, isTrue); diff --git a/example/integration_test/vendor_status_listener_test.dart b/example/integration_test/vendor_status_listener_test.dart index 81da9af1..04812dcc 100644 --- a/example/integration_test/vendor_status_listener_test.dart +++ b/example/integration_test/vendor_status_listener_test.dart @@ -33,11 +33,13 @@ void main() { await tester.tap(agreeToAllBtnFinder); await tester.pumpAndSettle(); + await Future.delayed(Duration(milliseconds: 100)); assert(vendorStatusEnabled == true); await tester.tap(disagreeToAllBtnFinder); await tester.pumpAndSettle(); + await Future.delayed(Duration(milliseconds: 100)); assert(vendorStatusEnabled == false); // Check removeVendorStatusListener @@ -46,6 +48,7 @@ void main() { await tester.tap(agreeToAllBtnFinder); await tester.pumpAndSettle(); + await Future.delayed(Duration(milliseconds: 100)); // Vendor status not updated assert(vendorStatusEnabled == false); });