blob: 7857022c14a0c43cb04058b91132a986f07749f2 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:webview_flutter_example/main.dart';
import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart';
void main() {
setUp(() {
WebViewPlatform.instance = FakeWebViewPlatform();
});
testWidgets('Test snackbar from ScaffoldMessenger',
(WidgetTester tester) async {
await tester.pumpWidget(const MaterialApp(home: WebViewExample()));
expect(find.byIcon(Icons.favorite), findsOneWidget);
await tester.tap(find.byIcon(Icons.favorite));
await tester.pump();
expect(find.byType(SnackBar), findsOneWidget);
});
}
class FakeWebViewPlatform extends WebViewPlatform {
@override
PlatformWebViewController createPlatformWebViewController(
PlatformWebViewControllerCreationParams params,
) {
return FakeWebViewController(params);
}
@override
PlatformWebViewWidget createPlatformWebViewWidget(
PlatformWebViewWidgetCreationParams params,
) {
return FakeWebViewWidget(params);
}
@override
PlatformWebViewCookieManager createPlatformCookieManager(
PlatformWebViewCookieManagerCreationParams params,
) {
return FakeCookieManager(params);
}
@override
PlatformNavigationDelegate createPlatformNavigationDelegate(
PlatformNavigationDelegateCreationParams params,
) {
return FakeNavigationDelegate(params);
}
}
class FakeWebViewController extends PlatformWebViewController {
FakeWebViewController(super.params) : super.implementation();
@override
Future<void> setJavaScriptMode(JavaScriptMode javaScriptMode) async {}
@override
Future<void> setBackgroundColor(Color color) async {}
@override
Future<void> setPlatformNavigationDelegate(
PlatformNavigationDelegate handler,
) async {}
@override
Future<void> addJavaScriptChannel(
JavaScriptChannelParams javaScriptChannelParams) async {}
@override
Future<void> loadRequest(LoadRequestParams params) async {}
@override
Future<String?> currentUrl() async {
return 'https://www.google.com';
}
}
class FakeCookieManager extends PlatformWebViewCookieManager {
FakeCookieManager(super.params) : super.implementation();
}
class FakeWebViewWidget extends PlatformWebViewWidget {
FakeWebViewWidget(super.params) : super.implementation();
@override
Widget build(BuildContext context) {
return Container();
}
}
class FakeNavigationDelegate extends PlatformNavigationDelegate {
FakeNavigationDelegate(super.params) : super.implementation();
@override
Future<void> setOnNavigationRequest(
NavigationRequestCallback onNavigationRequest,
) async {}
@override
Future<void> setOnPageFinished(PageEventCallback onPageFinished) async {}
@override
Future<void> setOnPageStarted(PageEventCallback onPageStarted) async {}
@override
Future<void> setOnProgress(ProgressCallback onProgress) async {}
@override
Future<void> setOnWebResourceError(
WebResourceErrorCallback onWebResourceError,
) async {}
}