summaryrefslogtreecommitdiffstats
path: root/dom/media/test/test_background_video_suspend.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/test/test_background_video_suspend.html')
-rw-r--r--dom/media/test/test_background_video_suspend.html50
1 files changed, 50 insertions, 0 deletions
diff --git a/dom/media/test/test_background_video_suspend.html b/dom/media/test/test_background_video_suspend.html
new file mode 100644
index 000000000..e872eacf8
--- /dev/null
+++ b/dom/media/test/test_background_video_suspend.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Test Background Video Suspends</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";
+
+var manager = new MediaTestManager;
+
+var MIN_DELAY = 100;
+
+function testDelay(v, start, min) {
+ let end = performance.now();
+ let delay = end - start;
+ ok(delay > min, `${v.token} suspended with a delay of ${delay} ms`);
+}
+
+startTest({
+ desc: 'Test Background Video Suspends',
+ prefs: [
+ [ "media.test.setVisible", 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", MIN_DELAY ]
+ ],
+ tests: gDecodeSuspendTests,
+ runTest: (test, token) => {
+ let v = appendVideoToDoc(test.name, token);
+ manager.started(token);
+
+ let start;
+ waitUntilPlaying(v)
+ .then(() => { start = performance.now(); })
+ .then(() => testVideoSuspendsWhenHidden(v))
+ .then(() => {
+ testDelay(v, start, MIN_DELAY);
+ return testVideoResumesWhenShown(v);
+ })
+ .then(() => waitUntilEnded(v))
+ .then(() => {
+ removeNodeAndSource(v);
+ manager.finished(token);
+ });
+ }
+});
+</script>