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