Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

Commit 3b7b0e2

Browse files
committed
use a bundled audio asset in the test
1 parent 4394cda commit 3b7b0e2

3 files changed

Lines changed: 33 additions & 23 deletions

File tree

36 KB
Binary file not shown.

packages/webview_flutter/example/pubspec.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,5 @@ dev_dependencies:
2020

2121
flutter:
2222
uses-material-design: true
23+
assets:
24+
- assets/sample_audio.ogg

packages/webview_flutter/example/test_driver/webview.dart

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44

55
import 'dart:async';
66
import 'dart:convert';
7+
import 'dart:typed_data';
78

89
import 'package:flutter/foundation.dart';
10+
import 'package:flutter/services.dart';
911
import 'package:flutter/widgets.dart';
1012
import 'package:flutter_driver/driver_extension.dart';
1113
import 'package:flutter_test/flutter_test.dart';
@@ -136,29 +138,35 @@ void main() {
136138
});
137139

138140
group('Media playback policy', () {
139-
final String audioTest = '''
140-
<!DOCTYPE html><html>
141-
<head><title>Audio auto play</title>
142-
<script type="text/javascript">
143-
function play() {
144-
var audio = document.getElementById("audio");
145-
audio.play();
146-
}
147-
function isPaused() {
148-
var audio = document.getElementById("audio");
149-
return audio.paused;
150-
}
151-
</script>
152-
</head>
153-
<body onload="play();">
154-
<audio controls id="audio">
155-
<source src="https://file-examples.com/wp-content/uploads/2017/11/file_example_MP3_700KB.mp3">
156-
</audio>
157-
</body>
158-
</html>
159-
''';
160-
final String audioTestBase64 =
161-
base64Encode(const Utf8Encoder().convert(audioTest));
141+
String audioTestBase64;
142+
setUpAll(() async {
143+
final ByteData audioData =
144+
await rootBundle.load('assets/sample_audio.ogg');
145+
final String base64AudioData =
146+
base64Encode(Uint8List.view(audioData.buffer));
147+
final String audioTest = '''
148+
<!DOCTYPE html><html>
149+
<head><title>Audio auto play</title>
150+
<script type="text/javascript">
151+
function play() {
152+
var audio = document.getElementById("audio");
153+
audio.play();
154+
}
155+
function isPaused() {
156+
var audio = document.getElementById("audio");
157+
return audio.paused;
158+
}
159+
</script>
160+
</head>
161+
<body onload="play();">
162+
<audio controls id="audio">
163+
<source src="data:audio/ogg;charset=utf-8;base64,$base64AudioData">
164+
</audio>
165+
</body>
166+
</html>
167+
''';
168+
audioTestBase64 = base64Encode(const Utf8Encoder().convert(audioTest));
169+
});
162170

163171
test('Auto media playback', () async {
164172
Completer<WebViewController> controllerCompleter =

0 commit comments

Comments
 (0)