<!DOCTYPE html><!-- webkit-test-runner [ ModelElementEnabled=true ] -->
<html>
<body>
<model id="model">
    <source src="resources/heart.usdz">
</model>
<p>This test passes if you see the word "Passed" below:</p>
<p id="result">Failed</p>
<script>
    if (window.testRunner) {
        testRunner.waitUntilDone();
        testRunner.dumpAsText();
    }

    let result = document.getElementById("result");
    let model = document.getElementById("model");

    model.ready.then(value => {
        result.textContent = `Passed`;
    }, reason => {
        result.textContent = `Failed. Model did not load: ${reason}`;
    }).finally(() => { 
        if (window.testRunner)
            testRunner.notifyDone();
    });
</script>
</body>
</html>
