forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* Any copyright is dedicated to the Public Domain.
 | |
|    http://creativecommons.org/publicdomain/zero/1.0/ */
 | |
| 
 | |
| add_task(async function() {
 | |
|   await setLinks("0,1,2,3,4,5,6,7,8");
 | |
|   setPinnedLinks("");
 | |
| 
 | |
|   await addNewTabPageTab();
 | |
| 
 | |
|   await ContentTask.spawn(gBrowser.selectedBrowser, {}, async function() {
 | |
|     let grid = content.gGrid;
 | |
|     let cell = grid.cells[0];
 | |
|     let site = cell.site.node;
 | |
|     let link = site.querySelector(".newtab-link");
 | |
| 
 | |
|     function checkGridLocked(aLocked, aMessage) {
 | |
|       Assert.equal(grid.node.hasAttribute("locked"), aLocked, aMessage);
 | |
|     }
 | |
| 
 | |
|     function sendDragEvent(aEventType, aTarget) {
 | |
|       let dataTransfer = new content.DataTransfer(aEventType, false);
 | |
|       let event = content.document.createEvent("DragEvent");
 | |
|       event.initDragEvent(aEventType, true, true, content, 0, 0, 0, 0, 0,
 | |
|                           false, false, false, false, 0, null, dataTransfer);
 | |
|       aTarget.dispatchEvent(event);
 | |
|     }
 | |
| 
 | |
|     checkGridLocked(false, "grid is unlocked");
 | |
| 
 | |
|     sendDragEvent("dragstart", link);
 | |
|     checkGridLocked(true, "grid is now locked");
 | |
| 
 | |
|     sendDragEvent("dragend", link);
 | |
|     checkGridLocked(false, "grid isn't locked anymore");
 | |
| 
 | |
|     sendDragEvent("dragstart", cell.node);
 | |
|     checkGridLocked(false, "grid isn't locked - dragstart was ignored");
 | |
| 
 | |
|     sendDragEvent("dragstart", site);
 | |
|     checkGridLocked(false, "grid isn't locked - dragstart was ignored");
 | |
|   });
 | |
| });
 | 
