<!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>
