browser_test_tab_drag_zoom.js (2946B)
1 /* This test is a a mash up of 2 https://searchfox.org/mozilla-central/rev/016925857e2f81a9425de9e03021dcf4251cafcc/gfx/layers/apz/test/mochitest/browser_test_select_zoom.js 3 https://searchfox.org/mozilla-central/rev/016925857e2f81a9425de9e03021dcf4251cafcc/browser/base/content/test/general/browser_tab_drag_drop_perwindow.js 4 */ 5 6 const EVENTUTILS_URL = 7 "chrome://mochikit/content/tests/SimpleTest/EventUtils.js"; 8 var EventUtils = {}; 9 10 Services.scriptloader.loadSubScript(EVENTUTILS_URL, EventUtils); 11 12 add_task(async function test_dragging_zoom_handling() { 13 function httpURL(filename) { 14 let chromeURL = getRootDirectory(gTestPath) + filename; 15 //return chromeURL; 16 return chromeURL.replace( 17 "chrome://mochitests/content/", 18 "http://mochi.test:8888/" 19 ); 20 } 21 22 const pageUrl = httpURL("helper_test_tab_drag_zoom.html"); 23 24 let win1 = await BrowserTestUtils.openNewBrowserWindow(); 25 let win2 = await BrowserTestUtils.openNewBrowserWindow(); 26 27 let tab1 = await BrowserTestUtils.openNewForegroundTab(win1.gBrowser); 28 let tab2 = await BrowserTestUtils.openNewForegroundTab( 29 win2.gBrowser, 30 pageUrl 31 ); 32 33 await SpecialPowers.spawn(tab2.linkedBrowser, [], async () => { 34 await content.wrappedJSObject.waitUntilApzStable(); 35 }); 36 37 const initial_resolution = await SpecialPowers.spawn( 38 tab2.linkedBrowser, 39 [], 40 () => { 41 return content.window.windowUtils.getResolution(); 42 } 43 ); 44 45 ok( 46 initial_resolution > 0, 47 "The initial_resolution is " + 48 initial_resolution + 49 ", which is some sane value" 50 ); 51 52 let effect = EventUtils.synthesizeDrop( 53 tab2, 54 tab1, 55 [[{ type: TAB_DROP_TYPE, data: tab2 }]], 56 null, 57 win2, 58 win1 59 ); 60 is(effect, "move", "Tab should be moved from win2 to win1."); 61 62 await SpecialPowers.spawn(win1.gBrowser.selectedBrowser, [], async () => { 63 await content.wrappedJSObject.waitUntilApzStable(); 64 }); 65 66 let resolution = await SpecialPowers.spawn( 67 win1.gBrowser.selectedBrowser, 68 [], 69 () => { 70 return content.window.windowUtils.getResolution(); 71 } 72 ); 73 74 ok( 75 resolution == initial_resolution, 76 "The resolution (" + resolution + ") is the same after tab dragging" 77 ); 78 79 await SpecialPowers.spawn(win1.gBrowser.selectedBrowser, [], async () => { 80 await content.wrappedJSObject.pinchZoomInWithTouch(150, 300); 81 }); 82 83 // Flush state and get the resolution we're at now 84 await SpecialPowers.spawn(win1.gBrowser.selectedBrowser, [], async () => { 85 await content.wrappedJSObject.promiseApzFlushedRepaints(); 86 }); 87 88 resolution = await SpecialPowers.spawn( 89 win1.gBrowser.selectedBrowser, 90 [], 91 () => { 92 return content.window.windowUtils.getResolution(); 93 } 94 ); 95 96 ok( 97 resolution > initial_resolution, 98 "The resolution (" + resolution + ") is greater after zooming in" 99 ); 100 101 await BrowserTestUtils.closeWindow(win1); 102 await BrowserTestUtils.closeWindow(win2); 103 });