<!DOCTYPE HTML><html><head><title>Media test: promise-based play() method</title><scriptsrc="/tests/SimpleTest/SimpleTest.js"></script><linkrel="stylesheet"type="text/css"href="/tests/SimpleTest/test.css"/><scripttype="text/javascript"src="manifest.js"></script></head><body><preid="test"><script>// Name: loadAlgorithmResolveOrdering// Case: invoke load() on an element should resolve pending promises in order.// Expected result: the pending promises are resolved in order.letmanager=newMediaTestManager;functioninitTest(test,token){manager.started(token);letelement=document.createElement(getMajorMimeType(test.type));element.preload="auto";element.src=test.name;once(element,"canplay").then(()=>{letfirstPromiseResolved=false;// playelement.play().then(()=>{firstPromiseResolved=true;},()=>{ok(false,`loadAlgorithmResolveOrdering(${token}) should not be rejected.`);});// play againelement.play().then(()=>{ok(firstPromiseResolved,`loadAlgorithmResolveOrdering(${token}), the first play should already be resolved.`);},()=>{ok(false,`loadAlgorithmResolveOrdering(${token}) should not be rejected.`);}).then(()=>{manager.finished(token);});// triger loadelement.src=test.name;});}manager.runTests(gSmallTests,initTest);</script>