forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  *  License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| var rootDir = getRootDirectory(gTestPath);
 | |
| const gHttpTestRoot = rootDir.replace("chrome://mochitests/content/", "http://127.0.0.1:8888/");
 | |
| const Cc = Components.classes;
 | |
| const Ci = Components.interfaces;
 | |
| var gTestBrowser = null;
 | |
| var gConsoleErrors = 0;
 | |
| 
 | |
| function test() {
 | |
|   waitForExplicitFinish();
 | |
|   var newTab = gBrowser.addTab();
 | |
|   gBrowser.selectedTab = newTab;
 | |
|   gTestBrowser = gBrowser.selectedBrowser;
 | |
|   gTestBrowser.addEventListener("PluginBindingAttached", pluginBindingAttached, true, true);
 | |
|   var consoleService = Cc["@mozilla.org/consoleservice;1"]
 | |
|                          .getService(Ci.nsIConsoleService);
 | |
|   var errorListener = {
 | |
|     observe: function(aMessage) {
 | |
|       if (aMessage.message.includes("NS_ERROR"))
 | |
|         gConsoleErrors++;
 | |
|     }
 | |
|   };
 | |
|   consoleService.registerListener(errorListener);
 | |
|   registerCleanupFunction(function() {
 | |
|     gTestBrowser.removeEventListener("PluginBindingAttached", pluginBindingAttached, true);
 | |
|     consoleService.unregisterListener(errorListener);
 | |
|     gBrowser.removeCurrentTab();
 | |
|     window.focus();
 | |
|   });
 | |
|   gTestBrowser.contentWindow.location = gHttpTestRoot + "plugin_bug797677.html";
 | |
| }
 | |
| 
 | |
| function pluginBindingAttached() {
 | |
|   // Let browser-plugins.js handle the PluginNotFound event, then run the test
 | |
|   executeSoon(runTest);
 | |
| }
 | |
| 
 | |
| function runTest() {
 | |
|   var doc = gTestBrowser.contentDocument;
 | |
|   var plugin = doc.getElementById("plugin");
 | |
|   ok(plugin, "plugin should be in the page");
 | |
|   is(gConsoleErrors, 0, "should have no console errors");
 | |
|   finish();
 | |
| }
 | 
