diff options
Diffstat (limited to 'testing/web-platform/tests/FileAPI/url/url-in-tags.window.js')
-rw-r--r-- | testing/web-platform/tests/FileAPI/url/url-in-tags.window.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/testing/web-platform/tests/FileAPI/url/url-in-tags.window.js b/testing/web-platform/tests/FileAPI/url/url-in-tags.window.js new file mode 100644 index 0000000000..f20b359901 --- /dev/null +++ b/testing/web-platform/tests/FileAPI/url/url-in-tags.window.js @@ -0,0 +1,48 @@ +async_test(t => { + const run_result = 'test_script_OK'; + const blob_contents = 'window.test_result = "' + run_result + '";'; + const blob = new Blob([blob_contents]); + const url = URL.createObjectURL(blob); + + const e = document.createElement('script'); + e.setAttribute('src', url); + e.onload = t.step_func_done(() => { + assert_equals(window.test_result, run_result); + }); + + document.body.appendChild(e); +}, 'Blob URLs can be used in <script> tags'); + +async_test(t => { + const run_result = 'test_frame_OK'; + const blob_contents = '<!doctype html>\n<meta charset="utf-8">\n' + + '<script>window.test_result = "' + run_result + '";</script>'; + const blob = new Blob([blob_contents], {type: 'text/html'}); + const url = URL.createObjectURL(blob); + + const frame = document.createElement('iframe'); + frame.setAttribute('src', url); + frame.setAttribute('style', 'display:none;'); + document.body.appendChild(frame); + + frame.onload = t.step_func_done(() => { + assert_equals(frame.contentWindow.test_result, run_result); + }); +}, 'Blob URLs can be used in iframes, and are treated same origin'); + +async_test(t => { + const blob_contents = '<!doctype html>\n<meta charset="utf-8">\n' + + '<style>body { margin: 0; } .block { height: 5000px; }</style>\n' + + '<body>\n' + + '<a id="block1"></a><div class="block"></div>\n' + + '<a id="block2"></a><div class="block"></div>'; + const blob = new Blob([blob_contents], {type: 'text/html'}); + const url = URL.createObjectURL(blob); + + const frame = document.createElement('iframe'); + frame.setAttribute('src', url + '#block2'); + document.body.appendChild(frame); + frame.contentWindow.onscroll = t.step_func_done(() => { + assert_equals(frame.contentWindow.scrollY, 5000); + }); +}, 'Blob URL fragment is implemented.'); |