Bug 1346116 part 3 - a test case for not suspend not-in-tree videos; r=jwwang
authorKaku Kuo <kaku@mozilla.com>
Sun, 12 Mar 2017 14:03:04 +0800
changeset 347428 c4688144319f23332b7d90b486677c6e4acd5457
parent 347427 f7ca43d48a42b0f9b0e2b0e80d0aa820a6c2a0d7
child 347429 0be052ad24c1d058cf629ef490c48f7c5b2510bb
push id31496
push usercbook@mozilla.com
push dateTue, 14 Mar 2017 13:21:57 +0000
treeherdermozilla-central@9a26ed658fdc [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjwwang
bugs1346116
milestone55.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1346116 part 3 - a test case for not suspend not-in-tree videos; r=jwwang MozReview-Commit-ID: JooStwaUGcx
dom/media/test/mochitest.ini
dom/media/test/test_background_video_no_suspend_not_in_tree.html
--- a/dom/media/test/mochitest.ini
+++ b/dom/media/test/mochitest.ini
@@ -1135,16 +1135,19 @@ tags = suspend
 skip-if = toolkit == 'android' # bug 1346705
 tags = suspend
 [test_background_video_no_suspend_disabled.html]
 skip-if = toolkit == 'android' # android(bug 1304480)
 tags = suspend
 [test_background_video_no_suspend_short_vid.html]
 skip-if = toolkit == 'android' # android(bug 1304480)
 tags = suspend
+[test_background_video_no_suspend_not_in_tree.html]
+skip-if = toolkit == 'android' # bug 1346705
+tags = suspend
 [test_background_video_suspend.html]
 skip-if = toolkit == 'android' # android(bug 1304480)
 tags = suspend
 [test_background_video_suspend_ends.html]
 skip-if = toolkit == 'android' # bug 1295884, android(bug 1304480, bug 1232305)
 tags = suspend
 [test_background_video_tainted_by_drawimage.html]
 skip-if = toolkit == 'android' # bug 1346705
new file mode 100644
--- /dev/null
+++ b/dom/media/test/test_background_video_no_suspend_not_in_tree.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Test Background Video Doesn't Suspend When Timeout Is Longer Than Video</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>
+"use strict";
+
+var manager = new MediaTestManager;
+
+var MIN_DELAY = 100;
+
+/**
+ * @param {string} url video src.
+ * @returns {HTMLMediaElement} The created video element.
+ */
+function createVideoNotAppendToDoc(url, token, width, height) {
+  // Default size of (160, 120) is used by other media tests.
+  if (width === undefined) { width = 160; }
+  if (height === undefined) { height = 3*width/4; }
+
+  let v = document.createElement('video');
+  v.token = token;
+  v.width = width;
+  v.height = height;
+  v.src = url;
+  return v;
+}
+
+startTest({
+  desc: "Test Background Video Doesn't Suspend When If The Video Is Not In Tree.",
+  prefs: [
+    [ 'media.test.video-suspend', true ],
+    [ 'media.suspend-bkgnd-video.enabled', true ],
+    [ 'media.suspend-bkgnd-video.delay-ms', MIN_DELAY ]
+  ],
+  tests: gDecodeSuspendTests,
+  runTest: (test, token) => {
+    let v = createVideoNotAppendToDoc(test.name, token);
+    manager.started(token);
+
+    /* This test checks that suspend doesn't occur if a video element is not
+       append to tree. */
+    waitUntilPlaying(v)
+      .then(() => checkVideoDoesntSuspend(v))
+      .then(() => {
+        ok(true, 'Video ended before decode was suspended');
+        manager.finished(token); })
+      .catch((e) => {
+        ok(false, 'Test Failed: ' + e.toString());
+        manager.finished(token); });
+  }
+});
+</script>
\ No newline at end of file