forked from mirrors/gecko-dev
		
	 8cdd233ac6
			
		
	
	
		8cdd233ac6
		
	
	
	
	
		
			
			--HG-- extra : commitid : GukwXUsbANw extra : rebase_source : 7fd34f268859887633c39db31504b9237126a55b extra : source : 32196b22b4544981f5658ce028e7566bff3fbca4
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| add_task(function* () {
 | |
|   let tab = gBrowser.selectedTab = gBrowser.addTab("about:mozilla");
 | |
|   yield promiseBrowserLoaded(gBrowser.selectedBrowser);
 | |
| 
 | |
|   let win = gBrowser.replaceTabWithWindow(tab);
 | |
|   yield promiseDelayedStartupFinished(win);
 | |
|   yield promiseBrowserHasURL(win.gBrowser.browsers[0], "about:mozilla");
 | |
| 
 | |
|   win.duplicateTabIn(win.gBrowser.selectedTab, "tab");
 | |
|   yield promiseTabRestored(win.gBrowser.tabs[1]);
 | |
| 
 | |
|   let browser = win.gBrowser.browsers[1];
 | |
|   is(browser.currentURI.spec, "about:mozilla", "tab was duplicated");
 | |
| 
 | |
|   yield BrowserTestUtils.closeWindow(win);
 | |
| });
 | |
| 
 | |
| function promiseDelayedStartupFinished(win) {
 | |
|   let deferred = Promise.defer();
 | |
|   whenDelayedStartupFinished(win, deferred.resolve);
 | |
|   return deferred.promise;
 | |
| }
 | |
| 
 | |
| function promiseBrowserHasURL(browser, url) {
 | |
|   let promise = Promise.resolve();
 | |
| 
 | |
|   if (browser.contentDocument.readyState === "complete" &&
 | |
|       browser.currentURI.spec === url) {
 | |
|     return promise;
 | |
|   }
 | |
| 
 | |
|   return promise.then(() => promiseBrowserHasURL(browser, url));
 | |
| }
 |