blob: 41b9f6f5ec6cc6e837233ae5f8be1f0eb597264d [file] [log] [blame]
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';
import 'package:mockito/mockito.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart';
import 'package:url_launcher_example/main.dart';
void main() {
final MockUrlLauncher mock = MockUrlLauncher();
UrlLauncherPlatform.instance = mock;
testWidgets('Can open URLs', (WidgetTester tester) async {
await tester.pumpWidget(MyApp());
const String defaultUrl = 'https://www.cylog.org/headers/';
when(mock.canLaunch(defaultUrl)).thenAnswer((_) => Future.value(true));
const Map<String, String> defaultHeaders = {
'my_header_key': 'my_header_value'
};
verifyNever(mock.launch(defaultUrl,
useSafariVC: false,
useWebView: false,
enableDomStorage: false,
enableJavaScript: false,
universalLinksOnly: false,
headers: defaultHeaders));
Finder browserlaunchBtn =
find.widgetWithText(RaisedButton, 'Launch in browser');
expect(browserlaunchBtn, findsOneWidget);
await tester.tap(browserlaunchBtn);
verify(mock.launch(defaultUrl,
useSafariVC: false,
useWebView: false,
enableDomStorage: false,
enableJavaScript: false,
universalLinksOnly: false,
headers: defaultHeaders))
.called(1);
});
}
class MockUrlLauncher extends Mock
with MockPlatformInterfaceMixin
implements UrlLauncherPlatform {}