feat: compose Android app and verify native calendar and reminders
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||
import 'package:hepan_everyday/services/local_notification_service.dart';
|
||||
|
||||
void main() {
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
test('transient native initialization failure can be retried', () async {
|
||||
debugDefaultTargetPlatformOverride = TargetPlatform.android;
|
||||
AndroidFlutterLocalNotificationsPlugin.registerWith();
|
||||
const channel = MethodChannel('dexterous.com/flutter/local_notifications');
|
||||
var attempts = 0;
|
||||
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
|
||||
.setMockMethodCallHandler(channel, (call) async {
|
||||
if (call.method == 'initialize') {
|
||||
attempts++;
|
||||
if (attempts == 1) {
|
||||
throw PlatformException(code: 'temporarily-unavailable');
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (call.method == 'getNotificationAppLaunchDetails') {
|
||||
return {'notificationLaunchedApp': false};
|
||||
}
|
||||
return null;
|
||||
});
|
||||
addTearDown(() {
|
||||
debugDefaultTargetPlatformOverride = null;
|
||||
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
|
||||
.setMockMethodCallHandler(channel, null);
|
||||
});
|
||||
final gateway = PluginReminderGateway();
|
||||
await expectLater(gateway.initialize(), throwsA(isA<PlatformException>()));
|
||||
await gateway.initialize();
|
||||
expect(attempts, 2);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user