diff options
Diffstat (limited to 'docshell/test/test_bug634834.html')
-rw-r--r-- | docshell/test/test_bug634834.html | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/docshell/test/test_bug634834.html b/docshell/test/test_bug634834.html new file mode 100644 index 000000000..88f068518 --- /dev/null +++ b/docshell/test/test_bug634834.html @@ -0,0 +1,53 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=634834 +--> +<head> + <title>Test for Bug 634834</title> + <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> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=634834">Mozilla Bug 634834</a> + +<script type='application/javascript;version=1.7'> +SimpleTest.waitForExplicitFinish(); + +function iframe_loaded() { + var loadedAfterPushstate = false; + $('iframe').onload = function() { + loadedAfterPushstate = true; + } + + var obj = { name: 'name' }; + obj.__defineGetter__('a', function() { + $('iframe').contentWindow.location = 'http://example.com'; + + // Wait until we've loaded example.com. + do { + var r = new XMLHttpRequest(); + r.open("GET", location.href, false); + r.overrideMimeType("text/plain"); + try { r.send(null); } + catch (e) {} + } while (!loadedAfterPushstate); + }); + + try { + $('iframe').contentWindow.history.pushState(obj, ''); + ok(false, 'pushState should throw exception.'); + } + catch(e) { + ok(true, 'pushState threw an exception.'); + } + SimpleTest.finish(); +} + +</script> + +<iframe id='iframe' src='file_bug634834.html' onload='iframe_loaded()'></iframe> + +</body> +</html> |