| <!doctype html> |
| <meta charset=utf-8> |
| <title>Synthetic popstate events</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <div id="log"></div> |
| <script> |
| test(function () { |
| assert_throws('NotSupportedError', function() { |
| document.createEvent('PopStateEvent'); |
| }, 'document.createEvent("PopStateEvent") should not be supported'); |
| }, 'document.createEvent'); |
| |
| test(function () { |
| assert_false('initPopStateEvent' in PopStateEvent.prototype, |
| 'There should be no PopStateEvent#initPopStateEvent'); |
| }, 'initPopStateEvent'); |
| |
| test(function () { |
| var state = history.state; |
| var data; |
| window.addEventListener('popstate', function (e) { |
| data = e.state; |
| }); |
| window.dispatchEvent(new PopStateEvent('popstate', { |
| 'state': {testdata:true} |
| })); |
| assert_true(data.testdata,'state data was corrupted'); |
| assert_equals(history.state, state, "history.state was NOT set by dispatching the event"); |
| }, 'Dispatching a synthetic PopStateEvent'); |
| </script> |