Bug 1294358 - P2: Add test for 'ended' event firing for suspended video. r=jwwang
authordglastonbury@mozilla.com <dglastonbury@mozilla.com>
Thu, 11 Aug 2016 09:57:52 +0000
changeset 336377 24f0a2f224c44fb11ff1cdbb3773375084c4f010
parent 336376 15de17e6f1e152dd814f8fae2fc387b39b8e601c
child 336378 25b8cda49700d3cb4de8f3875ccadfb5b75041db
push id10033
push userraliiev@mozilla.com
push dateMon, 19 Sep 2016 13:50:26 +0000
treeherdermozilla-aurora@5dddbefdf759 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjwwang
bugs1294358
milestone51.0a1
Bug 1294358 - P2: Add test for 'ended' event firing for suspended video. r=jwwang
dom/media/test/mochitest.ini
dom/media/test/test_background_video_suspend_ends.html
--- a/dom/media/test/mochitest.ini
+++ b/dom/media/test/mochitest.ini
@@ -881,12 +881,14 @@ tags = webvtt
 # tests rather than adding to this list.
 [test_can_play_type_webm.html]
 [test_can_play_type_wave.html]
 [test_fragment_noplay.html]
 [test_fragment_play.html]
 
 [test_background_video_suspend.html]
 tags = suspend
+[test_background_video_suspend_ends.html]
+tags = suspend
 [test_background_video_no_suspend_short_vid.html]
 tags = suspend
 [test_background_video_no_suspend_disabled.html]
 tags = suspend
new file mode 100644
--- /dev/null
+++ b/dom/media/test/test_background_video_suspend_ends.html
@@ -0,0 +1,43 @@
+<!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"/>
+<p id="display">
+<div id="content" style="display: none"></div>
+<pre id="test">
+<script type="text/javascript">
+"use strict";
+
+var manager = new MediaTestManager;
+
+startTest({
+  desc: "Test Background Suspended Video Fires 'ended' Event",
+  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", 1000 ]
+  ],
+  tests: gDecodeSuspendTests,
+  runTest: (test, token) => {
+    let v = 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.
+    waitUntilPlaying(v)
+      .then(() => testVideoSuspendsWhenHidden(v))
+      .then(() => waitUntilEnded(v))
+      .then(() => {
+        ok(v.currentTime >= v.duration, 'current time approximates duration.');
+        manager.finished(token);
+      });
+  }
+});
+</script>
+</pre>