| <!doctype html> <!-- webkit-test-runner [ ModelElementEnabled=true ] --> |
| <meta charset="utf-8"> |
| <title><model> HTTP 404 error handling</title> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <body> |
| <script> |
| 'use strict'; |
| |
| promise_test(t => { |
| return new Promise((resolve, reject) => { |
| const model = document.createElement("model"); |
| document.body.appendChild(model); |
| t.add_cleanup(() => model.remove()); |
| |
| assert_false(model.complete, "model.complete is false before load."); |
| |
| model.addEventListener("error", () => { |
| assert_false(model.complete, "model.complete is false after receiving error event."); |
| resolve(); |
| }); |
| model.addEventListener("load", () => reject("received unexpected load event")); |
| |
| const source = document.createElement("source"); |
| source.src = "resources/does-not-exist.usdz"; |
| model.appendChild(source); |
| }); |
| }, "<model> dispatches an \"error\" event when the server returns HTTP 404."); |
| |
| promise_test(async t => { |
| const model = document.createElement("model"); |
| document.body.appendChild(model); |
| t.add_cleanup(() => model.remove()); |
| |
| const source = document.createElement("source"); |
| source.src = "resources/does-not-exist.usdz"; |
| model.appendChild(source); |
| |
| await promise_rejects_dom(t, "NetworkError", model.ready); |
| }, "<model> ready promise rejects with NetworkError when the server returns HTTP 404."); |
| |
| </script> |
| </body> |