forked from mirrors/gecko-dev
		
	 1f830c96da
			
		
	
	
		1f830c96da
		
	
	
	
	
		
			
			# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D36042 --HG-- extra : source : d3afcafdce650a6f36cebbc126ee93b17f13cf52
		
			
				
	
	
		
			66 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			2.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 preview dimensions
 | |
|        before they're changed to match the screen */
 | |
|       await TestUtils.waitForTick();
 | |
| 
 | |
|       const canvas = win.document.getElementById("screen");
 | |
|       const screenRatio = screen.width / screen.height;
 | |
|       const previewRatio = canvas.clientWidth / canvas.clientHeight;
 | |
| 
 | |
|       info(`Screen dimensions are ${screen.width}x${screen.height}`);
 | |
|       info(`Screen's raw ratio is ${screenRatio}`);
 | |
|       info(
 | |
|         `Preview dimensions are ${canvas.clientWidth}x${canvas.clientHeight}`
 | |
|       );
 | |
|       info(`Preview's raw ratio is ${previewRatio}`);
 | |
| 
 | |
|       Assert.ok(
 | |
|         previewRatio < screenRatio + 0.01 && previewRatio > screenRatio - 0.01,
 | |
|         "Preview's aspect ratio is within ±.01 of screen's"
 | |
|       );
 | |
| 
 | |
|       win.close();
 | |
| 
 | |
|       await menuClosed;
 | |
|     }
 | |
|   );
 | |
| });
 |