forked from mirrors/gecko-dev
		
	 fa3f04ecef
			
		
	
	
		fa3f04ecef
		
	
	
	
	
		
			
			--HG-- rename : browser/themes/shared/setDesktopBackground.css => browser/themes/linux/setDesktopBackground.css
		
			
				
	
	
		
			60 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* Any copyright is dedicated to the Public Domain.
 | |
|  * http://creativecommons.org/publicdomain/zero/1.0/ */
 | |
| 
 | |
| /**
 | |
|  * Check whether the preview image for setDesktopBackground is rendered
 | |
|  * correctly, without stretching
 | |
|  */
 | |
| 
 | |
| add_task(async function() {
 | |
|   await BrowserTestUtils.withNewTab({
 | |
|     gBrowser,
 | |
|     url: "about:logo",
 | |
|   }, async (browser) => {
 | |
|     const dialogLoad = BrowserTestUtils.domWindowOpened(
 | |
|       null,
 | |
|       async win => {
 | |
|         await BrowserTestUtils.waitForEvent(win, "load");
 | |
|         Assert.equal(
 | |
|           win.document.documentElement.getAttribute("windowtype"),
 | |
|           "Shell:SetDesktopBackground",
 | |
|           "Opened correct window"
 | |
|         );
 | |
|         return true;
 | |
|       }
 | |
|     );
 | |
| 
 | |
|     const image = content.document.images[0];
 | |
|     EventUtils.synthesizeMouseAtCenter(image, { type: "contextmenu" });
 | |
| 
 | |
|     const menu = document.getElementById("contentAreaContextMenu");
 | |
|     await BrowserTestUtils.waitForPopupEvent(menu, "shown");
 | |
|     document.getElementById("context-setDesktopBackground").click();
 | |
| 
 | |
|     // Need to explicitly close the menu (and wait for it), otherwise it fails
 | |
|     // verify/later tests
 | |
|     const menuClosed = BrowserTestUtils.waitForPopupEvent(menu, "hidden");
 | |
|     menu.hidePopup();
 | |
| 
 | |
|     const win = await dialogLoad;
 | |
| 
 | |
|     /* setDesktopBackground.js does a setTimeout to wait for correct
 | |
|        dimensions. If we don't wait here we could read the monitor image
 | |
|        URL before it's changed to the widescreen version */
 | |
|     await TestUtils.waitForTick();
 | |
| 
 | |
|     const img = win.document.getElementById("monitor");
 | |
|     const measure = new Image();
 | |
|     const measureLoad = BrowserTestUtils.waitForEvent(measure, "load");
 | |
|     measure.src =
 | |
|       getComputedStyle(img).listStyleImage.slice(4, -1).replace(/"/g, "");
 | |
|     await measureLoad;
 | |
| 
 | |
|     Assert.equal(img.clientWidth, measure.naturalWidth, "Monitor image correct width");
 | |
|     Assert.equal(img.clientHeight, measure.naturalHeight, "Monitor image correct height");
 | |
| 
 | |
|     win.close();
 | |
| 
 | |
|     await menuClosed;
 | |
|   });
 | |
| });
 |