mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 16:25:38 +00:00
Bug 944407 - Tests. r=bz
This commit is contained in:
parent
4047601939
commit
9d29199dc3
@ -1,4 +1,6 @@
|
||||
[DEFAULT]
|
||||
support-files =
|
||||
file_bug944407.xml
|
||||
|
||||
[test_bug378518.xul]
|
||||
[test_bug398135.xul]
|
||||
@ -6,3 +8,4 @@
|
||||
[test_bug721452.xul]
|
||||
[test_bug723676.xul]
|
||||
[test_bug772966.xul]
|
||||
[test_bug944407.xul]
|
||||
|
8
content/xbl/test/file_bug944407.html
Normal file
8
content/xbl/test/file_bug944407.html
Normal file
@ -0,0 +1,8 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body>
|
||||
<div id="deny" style="-moz-binding: url(file_bug944407.xml#testAllowScript)"></div>
|
||||
<div id="allow" style="-moz-binding: url(chrome://mochitests/content/chrome/content/xbl/test/file_bug944407.xml#testAllowScript)"</div>
|
||||
<script>/* Flush layout with a script tab - see bug 944407 comment 37. */</script>
|
||||
</body>
|
||||
</html>
|
78
content/xbl/test/file_bug944407.xml
Normal file
78
content/xbl/test/file_bug944407.xml
Normal file
@ -0,0 +1,78 @@
|
||||
<?xml version="1.0"?>
|
||||
<bindings id="testBindings" xmlns="http://www.mozilla.org/xbl"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||
<binding id="testAllowScript">
|
||||
<implementation>
|
||||
<property name="someProp" onget="return 2;" readonly="true"></property>
|
||||
<method name="someMethod"><body> return 3; </body></method>
|
||||
<method name="startTest">
|
||||
<body>
|
||||
<![CDATA[
|
||||
// Make sure we only get constructed when we're loaded from a domain
|
||||
// with script enabled.
|
||||
is(this.id, 'allow', "XBL should only be bound when the origin of the binding allows scripts");
|
||||
|
||||
var t = this;
|
||||
doFinish = function() {
|
||||
// Take a moment to make sure that other constructors don't run when they shouldn't.
|
||||
if (t.id == 'allow')
|
||||
setTimeout(SpecialPowers.wrap(window.parent).finish, 100);
|
||||
}
|
||||
|
||||
onTestEvent = function(target) {
|
||||
ok(true, 'called event handler');
|
||||
|
||||
// First, dispatch an event to the anonymous content. The event
|
||||
// handlers on the AC should run, but they won't until bug 948000
|
||||
// is fixed. So the check here is a todo().
|
||||
var e = new MouseEvent('click');
|
||||
document.getAnonymousNodes(target)[1].dispatchEvent(e);
|
||||
|
||||
// Now, dispatch a key event to test key handlers and move the test along.
|
||||
var k = document.createEvent('KeyboardEvent');
|
||||
k.initEvent('keyup', true, true);
|
||||
target.dispatchEvent(k);
|
||||
}
|
||||
|
||||
// Check the implementation.
|
||||
is(this.someProp, 2, "Properties work");
|
||||
is(this.someMethod(), 3, "Methods work");
|
||||
|
||||
// Kick over to the event handlers. This tests XBL event handlers,
|
||||
// XBL key handlers, and event handlers on anonymous content.
|
||||
this.dispatchEvent(new CustomEvent('testEvent'));
|
||||
]]>
|
||||
</body>
|
||||
</method>
|
||||
|
||||
<constructor>
|
||||
<![CDATA[
|
||||
win = XPCNativeWrapper.unwrap(window);
|
||||
SpecialPowers = win.SpecialPowers;
|
||||
ok = win.ok = SpecialPowers.wrap(window.parent).ok;
|
||||
todo = win.todo = SpecialPowers.wrap(window.parent).todo;
|
||||
is = win.is = SpecialPowers.wrap(window.parent).is;
|
||||
info = win.info = SpecialPowers.wrap(window.parent).info;
|
||||
|
||||
info("Invoked constructor for " + this.id);
|
||||
|
||||
var t = this;
|
||||
window.addEventListener('load', function loadListener() {
|
||||
window.removeEventListener('load', loadListener);
|
||||
// Wait two refresh-driver ticks to make sure that the constructor runs
|
||||
// for both |allow| and |deny| if it's ever going to.
|
||||
//
|
||||
// See bug 944407 comment 37.
|
||||
info("Invoked load listener for " + t.id);
|
||||
window.requestAnimationFrame(function() { window.requestAnimationFrame(t.startTest.bind(t)); });
|
||||
});
|
||||
]]>
|
||||
</constructor>
|
||||
</implementation>
|
||||
<handlers>
|
||||
<handler event="testEvent" action="onTestEvent(this)" allowuntrusted="true"/>
|
||||
<handler event="keyup" action="ok(true, 'called key handler'); doFinish();" allowuntrusted="true"/>
|
||||
</handlers>
|
||||
<content>Anonymous Content<html:div onclick="todo(true, 'called event handler on ac, this needs bug 948000');"></html:div><html:b style="display:none"><children/></html:b></content>
|
||||
</binding>
|
||||
</bindings>
|
@ -12,6 +12,8 @@ support-files =
|
||||
file_bug591198_xbl.xml
|
||||
file_bug821850.xhtml
|
||||
file_bug844783.xhtml
|
||||
file_bug944407.html
|
||||
file_bug944407.xml
|
||||
|
||||
[test_bug310107.html]
|
||||
[test_bug366770.html]
|
||||
|
44
content/xbl/test/test_bug944407.xul
Normal file
44
content/xbl/test/test_bug944407.xul
Normal file
@ -0,0 +1,44 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=944407
|
||||
-->
|
||||
<window title="Mozilla Bug 944407"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=944407"
|
||||
target="_blank">Mozilla Bug 944407</a>
|
||||
</body>
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
/** Test for XBL bindings with script disabled. **/
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
const Cu = Components.utils;
|
||||
Cu.import('resource://gre/modules/Services.jsm');
|
||||
|
||||
function go() {
|
||||
|
||||
// Disable javascript, and load the frame.
|
||||
function loadFrame() {
|
||||
ok(!Services.prefs.getBoolPref('javascript.enabled'), "Javascript should be disabled");
|
||||
$('ifr').setAttribute('src', 'http://mochi.test:8888/tests/content/xbl/test/file_bug944407.html');
|
||||
}
|
||||
SpecialPowers.pushPrefEnv({ set: [['javascript.enabled', false]] }, loadFrame);
|
||||
}
|
||||
|
||||
function finish() {
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
addLoadEvent(go);
|
||||
]]>
|
||||
</script>
|
||||
<iframe id='ifr' />
|
||||
</window>
|
Loading…
Reference in New Issue
Block a user