<!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>
			QUnit.config.testTimeout = 30000;
			QUnit.config.autostart = false;
			QUnit.module( 'Grid Navigation' );

			Reveal.initialize().then( () => {

				QUnit.start();

				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>
