<!doctype html>
<html lang="en">

	<head>
		<meta charset="utf-8">

		<title>reveal.js - Test Grid</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>0</section>
				<section>
					<section>1.1</section>
					<section>1.2</section>
					<section>1.3</section>
					<section>1.4</section>
				</section>
				<section>
					<section>2.1</section>
					<section>2.2</section>
					<section>2.3</section>
					<section>2.4</section>
				</section>

			</div>

		</div>

		<script src="../dist/reveal.js"></script>
		<script>
			Reveal.initialize().then( () => {

				QUnit.module( 'Grid Navigation' );

				QUnit.test( 'Disabled', function( assert ) {
					Reveal.right();
					Reveal.down();
					Reveal.down();
					assert.deepEqual( Reveal.getIndices(), { h: 1, v: 2, f: undefined }, 'Correct starting point' );
					Reveal.right();
					assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: undefined }, 'Moves to top when going to adjacent stack' );
				});

				QUnit.test( 'Enabled', function( assert ) {
					Reveal.configure({ navigationMode: 'grid' });
					Reveal.slide( 0, 0 );
					Reveal.right();
					Reveal.down();
					Reveal.down();
					assert.deepEqual( Reveal.getIndices(), { h: 1, v: 2, f: undefined }, 'Correct starting point' );
					Reveal.right();
					assert.deepEqual( Reveal.getIndices(), { h: 2, v: 2, f: undefined }, 'Remains at same vertical index when going to adjacent stack' );
				});

			} );
		</script>

	</body>
</html>
