|  | <!doctype html> | 
|  | <meta charset=utf-8> | 
|  | <title>The end</title> | 
|  | <link rel=help href="https://html.spec.whatwg.org/multipage/#the-end"> | 
|  | <script src="/resources/testharness.js"></script> | 
|  | <script src="/resources/testharnessreport.js"></script> | 
|  | <div id="log"></div> | 
|  | <script> | 
|  | async_test(function() { | 
|  | document.addEventListener("DOMContentLoaded", this.step_func_done(function(e) { | 
|  | assert_equals(e.type, "DOMContentLoaded"); | 
|  | assert_true(e.bubbles, "bubbles should be true"); | 
|  | assert_false(e.cancelable, "cancelable should be false"); | 
|  | assert_equals(e.target, document, "target should be document"); | 
|  | assert_true(e.isTrusted, "isTrusted should be true"); | 
|  | assert_class_string(e, "Event"); | 
|  | })); | 
|  | }, "DOMContentLoaded"); | 
|  |  | 
|  | async_test(function() { | 
|  | window.addEventListener("load", this.step_func_done(function(e) { | 
|  | assert_equals(e.type, "load"); | 
|  | assert_false(e.bubbles, "bubbles should be false"); | 
|  | assert_false(e.cancelable, "cancelable should be false"); | 
|  | assert_equals(e.target, document, "target should be document"); | 
|  | assert_true(e.isTrusted, "isTrusted should be true"); | 
|  | assert_class_string(e, "Event"); | 
|  | })); | 
|  | }, "load"); | 
|  |  | 
|  | async_test(function() { | 
|  | var seen = false; | 
|  | document.addEventListener("DOMContentLoaded", this.step_func(function() { | 
|  | seen = true; | 
|  | })); | 
|  | window.addEventListener("load", this.step_func_done(function() { | 
|  | assert_true(seen, "DOMContentLoaded should be fired before load"); | 
|  | })); | 
|  | }, "order"); | 
|  | </script> |