nexus/integration_test/helpers/fakes.dart
2026-11-10 18:29:02 -05:00

47 lines
1.3 KiB
Dart

import "dart:async";
import "package:app_links_platform_interface/app_links_platform_interface.dart";
import "package:url_launcher_platform_interface/link.dart";
import "package:url_launcher_platform_interface/url_launcher_platform_interface.dart";
/// Delivers links to the app as if the OS had opened them.
class FakeAppLinks extends AppLinksPlatform {
final _links = StreamController<Uri>.broadcast();
void open(Uri uri) => _links.add(uri);
@override
Future<Uri?> getInitialLink() async => null;
@override
Future<String?> getInitialLinkString() async => null;
@override
Future<Uri?> getLatestLink() async => null;
@override
Future<String?> getLatestLinkString() async => null;
@override
Stream<Uri> get uriLinkStream => _links.stream;
@override
Stream<String> get stringLinkStream =>
_links.stream.map((uri) => uri.toString());
}
/// Hands launched URLs to [onLaunch] instead of opening a browser.
class FakeUrlLauncher(final void Function(Uri url) onLaunch)
extends UrlLauncherPlatform {
@override
LinkDelegate? get linkDelegate => null;
@override
Future<bool> canLaunch(String url) async => true;
@override
Future<bool> launchUrl(String url, LaunchOptions options) async {
onLaunch(.parse(url));
return true;
}
}