Bug 1398542 - Add test coverage for video/audio context menus draft
authorRob Wu <rob@robwu.nl>
Wed, 01 Aug 2018 18:20:17 +0200
changeset 825385 3bd657892936fd0e970f7b34b99e8458f420c6e8
parent 824607 0d72c7996d60a7c07e35c5f90d78b02a47d17460
push id118093
push userbmo:rob@robwu.nl
push dateWed, 01 Aug 2018 16:27:18 +0000
bugs1398542
milestone63.0a1
Bug 1398542 - Add test coverage for video/audio context menus MozReview-Commit-ID: 22VB0Jltj56
browser/components/extensions/test/browser/browser_ext_menus_events.js
--- a/browser/components/extensions/test/browser/browser_ext_menus_events.js
+++ b/browser/components/extensions/test/browser/browser_ext_menus_events.js
@@ -522,10 +522,83 @@ add_task(async function test_show_hide_e
       await openContextMenu("#editabletext");
     },
     async doCloseMenu() {
       await closeExtensionContextMenu();
     },
   });
 });
 
-// TODO(robwu): Add test coverage for contexts audio, video (bug 1398542).
+add_task(async function test_show_hide_video() {
+  const VIDEO_URL = "data:video/webm,xxx";
+  await testShowHideEvent({
+    menuCreateParams: {
+      title: "video item",
+      contexts: ["video"],
+    },
+    expectedShownEvent: {
+      contexts: ["video", "all"],
+      mediaType: "video",
+      editable: false,
+      frameId: 0,
+    },
+    expectedShownEventWithPermissions: {
+      contexts: ["video", "all"],
+      mediaType: "video",
+      editable: false,
+      frameId: 0,
+      srcUrl: VIDEO_URL,
+      pageUrl: PAGE,
+    },
+    async doOpenMenu() {
+      await ContentTask.spawn(gBrowser.selectedBrowser, VIDEO_URL, function(VIDEO_URL) {
+        let video = content.document.createElement("video");
+        video.controls = true;
+        video.src = VIDEO_URL;
+        content.document.body.appendChild(video);
+        video.focus();
+      });
+
+      await openContextMenu("video");
+    },
+    async doCloseMenu() {
+      await closeExtensionContextMenu();
+    },
+  });
+});
 
+add_task(async function test_show_hide_audio() {
+  const AUDIO_URL = "data:audio/ogg,xxx";
+  await testShowHideEvent({
+    menuCreateParams: {
+      title: "audio item",
+      contexts: ["audio"],
+    },
+    expectedShownEvent: {
+      contexts: ["audio", "all"],
+      mediaType: "audio",
+      editable: false,
+      frameId: 0,
+    },
+    expectedShownEventWithPermissions: {
+      contexts: ["audio", "all"],
+      mediaType: "audio",
+      editable: false,
+      frameId: 0,
+      srcUrl: AUDIO_URL,
+      pageUrl: PAGE,
+    },
+    async doOpenMenu() {
+      await ContentTask.spawn(gBrowser.selectedBrowser, AUDIO_URL, function(AUDIO_URL) {
+        let audio = content.document.createElement("audio");
+        audio.controls = true;
+        audio.src = AUDIO_URL;
+        content.document.body.appendChild(audio);
+        audio.focus();
+      });
+
+      await openContextMenu("audio");
+    },
+    async doCloseMenu() {
+      await closeExtensionContextMenu();
+    },
+  });
+});