128 lines
3.4 KiB
Dart
128 lines
3.4 KiB
Dart
// 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 {}
|
|
|
|
@override
|
|
Future<void> setOnUrlChange(UrlChangeCallback onUrlChange) async {}
|
|
|
|
@override
|
|
Future<void> setOnHttpAuthRequest(
|
|
HttpAuthRequestCallback handler,
|
|
) async {}
|
|
|
|
@override
|
|
Future<void> setOnHttpError(HttpResponseErrorCallback onHttpError) async {}
|
|
}
|