Bug 1477415 - part2 : add test. draft
authoralwu <alwu@mozilla.com>
Mon, 23 Jul 2018 11:30:12 -0700
changeset 822668 3c76d7c515e11348ed4ce703f670ef168c1625e5
parent 822667 1c7b512ac526c3af59c94c340b50e593845c04c3
push id117433
push userbmo:alwu@mozilla.com
push dateWed, 25 Jul 2018 16:33:31 +0000
bugs1477415
milestone63.0a1
Bug 1477415 - part2 : add test. MozReview-Commit-ID: 9Besbb3JWRP
toolkit/content/tests/browser/browser.ini
toolkit/content/tests/browser/browser_autoplay_videoDocument.js
--- a/toolkit/content/tests/browser/browser.ini
+++ b/toolkit/content/tests/browser/browser.ini
@@ -45,16 +45,17 @@ support-files =
 [browser_autoplay_policy_request_permission.js]
 support-files =
   file_empty.html
   gizmo.mp4
 [browser_autoplay_policy_user_gestures.js]
 support-files =
   gizmo.mp4
   file_video.html
+[browser_autoplay_videoDocument.js]
 [browser_autoscroll_disabled.js]
 [browser_block_autoplay_media.js]
 tags = audiochannel
 [browser_block_autoplay_media_pausedAfterPlay.js]
 tags = audiochannel
 [browser_block_autoplay_playAfterTabVisible.js]
 tags = audiochannel
 [browser_block_multipleMedia.js]
new file mode 100644
--- /dev/null
+++ b/toolkit/content/tests/browser/browser_autoplay_videoDocument.js
@@ -0,0 +1,33 @@
+"use strict";
+
+const PAGE = "https://example.com/browser/toolkit/content/tests/browser/audio.ogg";
+
+function setup_test_preference() {
+  return SpecialPowers.pushPrefEnv({"set": [
+    ["media.autoplay.default", SpecialPowers.Ci.nsIAutoplay.PROMPT],
+    ["media.autoplay.enabled.user-gestures-needed", true],
+    ["media.autoplay.ask-permission", true],
+  ]});
+}
+
+function checkIsVideoDocumentAutoplay(browser) {
+  return ContentTask.spawn(browser, null, async () => {
+    let video = content.document.getElementsByTagName("video")[0];
+    let played = video && await video.play().then(() => true, () => false);
+    ok(played, "Should be able to play in video document.");
+  });
+}
+
+add_task(async () => {
+  await BrowserTestUtils.withNewTab({
+    gBrowser,
+    url: PAGE,
+  }, async (browser) => {
+    info("- setup test preference -");
+    await setup_test_preference();
+
+    info(`- check whether video document is autoplay -`);
+    await checkIsVideoDocumentAutoplay(browser);
+  });
+});
+