Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/custom-elements/spec/resources/custom-elements-helpers.js |
| diff --git a/third_party/WebKit/LayoutTests/custom-elements/spec/resources/custom-elements-helpers.js b/third_party/WebKit/LayoutTests/custom-elements/spec/resources/custom-elements-helpers.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1e00b9dc1c20a35a83514a0861e8eba4ee2bbb32 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/custom-elements/spec/resources/custom-elements-helpers.js |
| @@ -0,0 +1,29 @@ |
| +function create_window() { |
| + let p = new Promise((resolve) => { |
| + let f = document.createElement('iframe'); |
| + f.srcdoc = ''; |
| + f.onload = (event) => { |
| + let w = f.contentWindow; |
| + w.tearDown = () => f.remove(); |
| + resolve(w); |
| + }; |
| + document.body.appendChild(f); |
| + }); |
| + return p; |
| +} |
| + |
| +function async_test_with_window(f, name) { |
|
domenic
2016/05/05 19:15:28
In general async_test is worse than promise_test;
|
| + async_test((t) => { |
| + create_window().then((w) => { |
| + t.add_cleanup(() => w.tearDown()); |
| + t.step(() => f(t, w)); |
| + }); |
| + }, name); |
| +} |
| + |
| +function test_with_window(f, name) { |
| + async_test_with_window((t, w) => { |
| + f(w); |
| + t.done(); |
| + }, name); |
| +} |