Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -523,58 +523,6 @@ Future<void> main() async {
await controller.runJavascriptReturningResult('isFullScreen();');
expect(fullScreen, _webviewBool(false));
});

// allowsInlineMediaPlayback is a noop on Android, so it is skipped.
testWidgets(
'Video plays full screen when allowsInlineMediaPlayback is false',
(WidgetTester tester) async {
final Completer<WebViewController> controllerCompleter =
Completer<WebViewController>();
final Completer<void> pageLoaded = Completer<void>();
final Completer<void> videoPlaying = Completer<void>();

await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: WebView(
initialUrl: 'data:text/html;charset=utf-8;base64,$videoTestBase64',
onWebViewCreated: (WebViewController controller) {
controllerCompleter.complete(controller);
},
javascriptMode: JavascriptMode.unrestricted,
javascriptChannels: <JavascriptChannel>{
JavascriptChannel(
name: 'VideoTestTime',
onMessageReceived: (JavascriptMessage message) {
final double currentTime = double.parse(message.message);
// Let it play for at least 1 second to make sure the related video's properties are set.
if (currentTime > 1 && !videoPlaying.isCompleted) {
videoPlaying.complete(null);
}
},
),
},
onPageFinished: (String url) {
pageLoaded.complete(null);
},
initialMediaPlaybackPolicy: AutoMediaPlaybackPolicy.always_allow,
allowsInlineMediaPlayback: false,
),
),
);
final WebViewController controller = await controllerCompleter.future;
await pageLoaded.future;

// Pump once to trigger the video play.
await tester.pump();

// Makes sure we get the correct event that indicates the video is actually playing.
await videoPlaying.future;

final String fullScreen =
await controller.runJavascriptReturningResult('isFullScreen();');
expect(fullScreen, _webviewBool(true));
}, skip: Platform.isAndroid);
});

group('Audio playback policy', () {
Expand Down Expand Up @@ -876,42 +824,6 @@ Future<void> main() async {
}, skip: Platform.isAndroid && _skipDueToIssue86757);
});

// Minimial end-to-end testing of the legacy Android implementation.
group('AndroidWebView (virtual display)', () {
setUpAll(() {
WebView.platform = AndroidWebView();
});

tearDownAll(() {
WebView.platform = null;
});

testWidgets('initialUrl', (WidgetTester tester) async {
final Completer<WebViewController> controllerCompleter =
Completer<WebViewController>();
final Completer<void> loadCompleter = Completer<void>();
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: WebView(
key: GlobalKey(),
initialUrl: primaryUrl,
onWebViewCreated: (WebViewController controller) {
controllerCompleter.complete(controller);
},
onPageFinished: (String url) {
loadCompleter.complete();
},
),
),
);
final WebViewController controller = await controllerCompleter.future;
await loadCompleter.future;
final String? currentUrl = await controller.currentUrl();
expect(currentUrl, primaryUrl);
});
}, skip: !Platform.isAndroid || _skipDueToIssue86757);

group('NavigationDelegate', () {
const String blankPage = '<!DOCTYPE html><head></head><body></body></html>';
final String blankPageEncoded = 'data:text/html;charset=utf-8;base64,' +
Expand Down Expand Up @@ -1123,32 +1035,6 @@ Future<void> main() async {
});
});

testWidgets('launches with gestureNavigationEnabled on iOS',
(WidgetTester tester) async {
final Completer<WebViewController> controllerCompleter =
Completer<WebViewController>();
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: SizedBox(
width: 400,
height: 300,
child: WebView(
key: GlobalKey(),
initialUrl: primaryUrl,
gestureNavigationEnabled: true,
onWebViewCreated: (WebViewController controller) {
controllerCompleter.complete(controller);
},
),
),
),
);
final WebViewController controller = await controllerCompleter.future;
final String? currentUrl = await controller.currentUrl();
expect(currentUrl, primaryUrl);
});

// TODO(bparrishMines): skipped due to https://github.com/flutter/flutter/issues/86757
testWidgets('target _blank opens in same window',
(WidgetTester tester) async {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ dependencies:
# the parent directory to use the current plugin's version.
path: ../

dependency_overrides:
webview_flutter_android:
path: ../../webview_flutter_android
webview_flutter_platform_interface:
path: ../../webview_flutter_platform_interface
webview_flutter_wkwebview:
path: ../../webview_flutter_wkwebview

dev_dependencies:
espresso: ^0.1.0+2
flutter_driver:
Expand Down
Loading