summaryrefslogtreecommitdiffstats
path: root/dom/media/test/test_background_video_suspend_ends.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/test/test_background_video_suspend_ends.html')
-rw-r--r--dom/media/test/test_background_video_suspend_ends.html55
1 files changed, 55 insertions, 0 deletions
diff --git a/dom/media/test/test_background_video_suspend_ends.html b/dom/media/test/test_background_video_suspend_ends.html
new file mode 100644
index 0000000000..c16ffff290
--- /dev/null
+++ b/dom/media/test/test_background_video_suspend_ends.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Test Background Suspended Video Fires 'ended' Event</title>
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<script src="manifest.js"></script>
+<script src="background_video.js"></script>
+<link rel="stylesheet" href="/tests/SimpleTest/test.css" />
+<script type="text/javascript">
+ "use strict";
+
+ PARALLEL_TESTS = 1;
+
+ var manager = new MediaTestManager;
+
+ async function runTest(test, token) {
+ let video = appendVideoToDoc(test.name, token);
+ manager.started(token);
+
+ // This test checks that 'ended' event is received for videos with
+ // suspended video decoding. This is important for looping video logic
+ // handling in HTMLMediaElement.
+
+ let ended = nextVideoEnded(video);
+ let suspends = nextVideoSuspends(video);
+
+ Log(token, "Start playing");
+ video.play();
+
+ Log(token, "Set hidden");
+ video.setVisible(false);
+
+ Log(token, "Waiting for video suspend");
+ await suspends;
+
+ Log(token, "Waiting for ended");
+ await ended;
+
+ ok(video.currentTime >= video.duration, 'current time approximates duration.');
+
+ manager.finished(token);
+ }
+
+ startTest({
+ desc: "Test Background Suspended Video Fires 'ended' Event",
+ prefs: [
+ ["media.test.video-suspend", true],
+ ["media.suspend-bkgnd-video.enabled", true],
+ // User a short delay to ensure video decode suspend happens before end
+ // of video.
+ ["media.suspend-bkgnd-video.delay-ms", 1000]
+ ],
+ tests: gDecodeSuspendTests,
+ runTest
+ });
+</script> \ No newline at end of file