<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>reveal.js - Test Async Dependencies</title> <link rel="stylesheet" href="../dist/reveal.css" /> <link rel="stylesheet" href="../node_modules/qunit/qunit/qunit.css" /> <script src="../node_modules/qunit/qunit/qunit.js"></script> </head> <body style="overflow: auto"> <div id="qunit"></div> <div id="qunit-fixture"></div> <div class="reveal" style="display: none"> <div class="slides"> <section>Slide content</section> </div> </div> <script src="../dist/reveal.js"></script> <script> var externalScriptSequence = ""; var scriptCount = 0; QUnit.config.testTimeout = 30000; QUnit.config.autostart = false; QUnit.module("Async Dependencies"); QUnit.test("Async scripts are loaded", function (assert) { assert.expect(5); var done = assert.async(5); function callback(event) { if (externalScriptSequence.length === 1) { assert.ok( externalScriptSequence === "A", "first callback was sync script" ); done(); } else { assert.ok(true, "async script loaded"); done(); } if (externalScriptSequence.length === 4) { assert.ok( externalScriptSequence.indexOf("A") !== -1 && externalScriptSequence.indexOf("B") !== -1 && externalScriptSequence.indexOf("C") !== -1 && externalScriptSequence.indexOf("D") !== -1, "four unique scripts were loaded" ); done(); } scriptCount++; } Reveal.initialize({ dependencies: [ { src: "assets/external-script-a.js", async: false, callback: callback, }, { src: "assets/external-script-b.js", async: true, callback: callback, }, { src: "assets/external-script-c.js", async: true, callback: callback, }, { src: "assets/external-script-d.js", async: true, callback: callback, }, ], }); }); QUnit.start(); </script> </body> </html>