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