mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Tests for Bug 36619 r=sicking a=blocking
This commit is contained in:
parent
a65da96f73
commit
76be33e32b
@ -52,15 +52,15 @@ MockFilePicker.prototype = {
|
||||
}
|
||||
};
|
||||
|
||||
var mockFilePickerRegisterer =
|
||||
var mockFilePickerRegisterer =
|
||||
new MockObjectRegisterer("@mozilla.org/filepicker;1",MockFilePicker);
|
||||
|
||||
|
||||
function test() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var wu = window.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
.getInterface(Ci.nsIDOMWindowUtils);
|
||||
|
||||
|
||||
mockFilePickerRegisterer.register();
|
||||
try {
|
||||
var domActivateEvents;
|
||||
@ -82,8 +82,14 @@ function test() {
|
||||
is(domActivateEvents, 1, "click on button should only fire 1 DOMActivate event");
|
||||
|
||||
} finally {
|
||||
mockFilePickerRegisterer.unregister();
|
||||
SimpleTest.executeSoon(unregister);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function unregister()
|
||||
{
|
||||
mockFilePickerRegisterer.unregister();
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
|
@ -73,6 +73,7 @@ _TEST_FILES = test_bug231389.html \
|
||||
test_bug377624.html \
|
||||
test_bug571352.html \
|
||||
test_bug572406.html \
|
||||
test_bug36619.html \
|
||||
$(NULL)
|
||||
|
||||
libs:: $(_TEST_FILES)
|
||||
|
@ -30,6 +30,7 @@ MockFilePicker.prototype = {
|
||||
filterIndex: 0,
|
||||
displayDirectory: null,
|
||||
get file() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var f = window.parent.dirs[window.parent.index].clone();
|
||||
f.append("aFile.txt");
|
||||
return f;
|
||||
@ -41,10 +42,12 @@ MockFilePicker.prototype = {
|
||||
throw Cr.NS_ERROR_NOT_IMPLEMENTED;
|
||||
},
|
||||
show: function MFP_show() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
if (this.displayDirectory)
|
||||
window.parent.postMessage(this.displayDirectory.path, "*");
|
||||
else
|
||||
window.parent.postMessage("", "*");
|
||||
mockFilePickerRegisterer.unregister();
|
||||
return Ci.nsIFilePicker.returnOK;
|
||||
}
|
||||
};
|
||||
@ -67,7 +70,6 @@ function test() {
|
||||
} catch (e) {
|
||||
Cu.reportError(e);
|
||||
} finally {
|
||||
mockFilePickerRegisterer.unregister();
|
||||
}
|
||||
}
|
||||
|
||||
|
120
layout/forms/test/test_bug36619.html
Normal file
120
layout/forms/test/test_bug36619.html
Normal file
@ -0,0 +1,120 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=36619
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 36619</title>
|
||||
<script type="application/javascript" src="/MochiKit/packed.js"></script>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body onload="runTests();">
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=36619">Mozilla Bug 36619</a>
|
||||
<p id="display"></p>
|
||||
<div id="content">
|
||||
<input id='a' type='file'>
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script type="application/javascript">
|
||||
|
||||
/** Test for Bug 36619 **/
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
const Cm = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
|
||||
const Cu = Components.utils;
|
||||
|
||||
Cc["@mozilla.org/moz/jssubscript-loader;1"]
|
||||
.getService(Ci.mozIJSSubScriptLoader)
|
||||
.loadSubScript("chrome://mochikit/content/browser/toolkit/content/tests/browser/common/mockObjects.js", this);
|
||||
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
function MockFilePicker()
|
||||
{
|
||||
}
|
||||
|
||||
MockFilePicker.prototype = {
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIFilePicker]),
|
||||
|
||||
// properties
|
||||
defaultExtension: "",
|
||||
defaultString: "",
|
||||
get displayDirectory() { return null; },
|
||||
set displayDirectory(val) { },
|
||||
file: null,
|
||||
get files() { return null; },
|
||||
get fileURL() { return null; },
|
||||
filterIndex: 0,
|
||||
|
||||
// methods
|
||||
appendFilter: function(val)
|
||||
{
|
||||
},
|
||||
|
||||
appendFilters: function(val)
|
||||
{
|
||||
},
|
||||
|
||||
init: function() {
|
||||
},
|
||||
|
||||
show: function()
|
||||
{
|
||||
shown = true;
|
||||
}
|
||||
};
|
||||
|
||||
var mockFilePickerRegisterer =
|
||||
new MockObjectRegisterer("@mozilla.org/filepicker;1",MockFilePicker);
|
||||
|
||||
mockFilePickerRegisterer.register();
|
||||
|
||||
// enable popups the first time
|
||||
var pbi = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch2);
|
||||
var oldAllow = pbi.getBoolPref("dom.disable_open_during_load");
|
||||
var oldShowBar = pbi.getBoolPref("privacy.popups.showBrowserMessage");
|
||||
pbi.setBoolPref("dom.disable_open_during_load", true);
|
||||
pbi.setBoolPref("privacy.popups.showBrowserMessage", false);
|
||||
|
||||
var shown = false;
|
||||
|
||||
function checkFirst()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
ok(shown,
|
||||
"File picker show method should have been called");
|
||||
shown = false;
|
||||
document.getElementById("a").click();
|
||||
setTimeout(finishTest, 1000);
|
||||
}
|
||||
|
||||
function finishTest()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
ok(!shown,
|
||||
"File picker show method should not have been called");
|
||||
|
||||
mockFilePickerRegisterer.unregister();
|
||||
|
||||
pbi.setBoolPref("dom.disable_open_during_load", oldAllow);
|
||||
pbi.setBoolPref("privacy.popups.showBrowserMessage", oldShowBar);
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
function runTests()
|
||||
{
|
||||
document.getElementById("a").click();
|
||||
SimpleTest.executeSoon(checkFirst);
|
||||
}
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
@ -46,6 +46,12 @@ const FILE_PICKER_DESCRIPTION = "File Picker Test Service";
|
||||
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
// disable popups to make sure that the popup blocker does not interfere
|
||||
// with manually opened file pickers.
|
||||
var pbi = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch2);
|
||||
var oldAllow = pbi.getBoolPref("dom.disable_open_during_load");
|
||||
pbi.setBoolPref("dom.disable_open_during_load", true);
|
||||
|
||||
function FilePickerService()
|
||||
{
|
||||
}
|
||||
@ -92,6 +98,7 @@ FilePickerService.prototype = {
|
||||
|
||||
appendFilters: function(val)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
this._obs.notifyObservers(null, "TEST_FILEPICKER_APPENDFILTERS", val);
|
||||
},
|
||||
|
||||
@ -99,6 +106,7 @@ FilePickerService.prototype = {
|
||||
|
||||
show: function()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
this._obs.notifyObservers(null, "TEST_FILEPICKER_SHOW", this.filterIndex);
|
||||
return this.returnOK;
|
||||
}
|
||||
@ -197,7 +205,8 @@ function runTests()
|
||||
"File Picker Service",
|
||||
FILE_PICKER_CID,
|
||||
null);
|
||||
|
||||
|
||||
pbi.setBoolPref("dom.disable_open_during_load", oldAllow);
|
||||
SimpleTest.finish();
|
||||
} else {
|
||||
launchNextTest(observer);
|
||||
|
Loading…
Reference in New Issue
Block a user