browser_pageinfo_images.js (3454B)
1 /* Check proper image url retrieval from all kinds of elements/styles */ 2 3 const TEST_PATH = getRootDirectory(gTestPath).replace( 4 "chrome://mochitests/content", 5 "https://example.com" 6 ); 7 8 add_task(async function test_all_images_mentioned() { 9 await BrowserTestUtils.withNewTab( 10 TEST_PATH + "all_images.html", 11 async function () { 12 let pageInfo = BrowserCommands.pageInfo( 13 gBrowser.selectedBrowser.currentURI.spec, 14 "mediaTab" 15 ); 16 await BrowserTestUtils.waitForEvent(pageInfo, "page-info-init"); 17 18 let imageTree = pageInfo.document.getElementById("imagetree"); 19 let imageRowsNum = imageTree.view.rowCount; 20 21 ok(imageTree, "Image tree is null (media tab is broken)"); 22 23 Assert.equal( 24 imageRowsNum, 25 7, 26 "Number of images listed: " + imageRowsNum + ", should be 7" 27 ); 28 29 // Check that select all works 30 imageTree.focus(); 31 ok( 32 !pageInfo.document.getElementById("cmd_copy").hasAttribute("disabled"), 33 "copy is enabled" 34 ); 35 ok( 36 !pageInfo.document 37 .getElementById("cmd_selectAll") 38 .hasAttribute("disabled"), 39 "select all is enabled" 40 ); 41 pageInfo.goDoCommand("cmd_selectAll"); 42 is(imageTree.view.selection.count, 7, "all rows selected"); 43 44 pageInfo.close(); 45 } 46 ); 47 }); 48 49 add_task(async function test_view_image_info() { 50 await SpecialPowers.pushPrefEnv({ 51 set: [["browser.menu.showViewImageInfo", true]], 52 }); 53 54 await BrowserTestUtils.withNewTab( 55 TEST_PATH + "all_images.html", 56 57 async function (browser) { 58 let contextMenu = document.getElementById("contentAreaContextMenu"); 59 let viewImageInfo = document.getElementById("context-viewimageinfo"); 60 61 let imageInfo = await SpecialPowers.spawn(browser, [], () => { 62 let testImg = content.document.querySelector("img"); 63 return { 64 src: testImg.src, 65 }; 66 }); 67 68 await BrowserTestUtils.synthesizeMouseAtCenter( 69 "img", 70 { type: "contextmenu", button: 2 }, 71 browser 72 ); 73 74 await BrowserTestUtils.waitForEvent(contextMenu, "popupshown"); 75 76 let promiseMediaLoad = BrowserTestUtils.domWindowOpened().then(win => 77 BrowserTestUtils.waitForEvent(win, "page-info-mediapreview-load") 78 ); 79 80 contextMenu.activateItem(viewImageInfo); 81 82 let pageInfo = (await promiseMediaLoad).target.ownerGlobal; 83 let mediaBrowser = pageInfo.document.getElementById("mediaBrowser"); 84 85 let previewImageInfo = await SpecialPowers.spawn(mediaBrowser, [], () => { 86 let img = content.document.querySelector("img"); 87 return { 88 src: img.src, 89 }; 90 }); 91 92 Assert.equal( 93 previewImageInfo.src, 94 imageInfo.src, 95 "selected image is correct" 96 ); 97 98 await BrowserTestUtils.closeWindow(pageInfo); 99 } 100 ); 101 }); 102 103 add_task(async function test_image_size() { 104 await BrowserTestUtils.withNewTab( 105 TEST_PATH + "all_images.html", 106 async function () { 107 let pageInfo = BrowserCommands.pageInfo( 108 gBrowser.selectedBrowser.currentURI.spec, 109 "mediaTab" 110 ); 111 await BrowserTestUtils.waitForEvent( 112 pageInfo, 113 "page-info-mediapreview-load" 114 ); 115 116 let imageSize = pageInfo.document.getElementById("imagesizetext"); 117 118 Assert.notEqual("media-unknown-not-cached", imageSize.value); 119 120 pageInfo.close(); 121 } 122 ); 123 });