1
0
Fork 0
why-cant-we-deploy-today/test/test-state.html

133 lines
3.4 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>reveal.js - Test State</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>No state</section>
<section id="slide2" data-state="state1">State 1</section>
<section data-state="state1">State 1</section>
<section data-state="state2">State 2</section>
<section>
<section>No state</section>
<section data-state="state1">State 1</section>
<section data-state="state3">State 3</section>
<section>No state</section>
</section>
<section>No state</section>
</div>
</div>
<script src="../dist/reveal.js"></script>
<script>
Reveal.initialize();
QUnit.module("State");
QUnit.test("Fire events when changing slide", function (assert) {
assert.expect(2);
var state1 = assert.async();
var state2 = assert.async();
var _onState1 = function (event) {
assert.ok(true, "state1 fired");
state1();
};
var _onState2 = function (event) {
assert.ok(true, "state2 fired");
state2();
};
Reveal.on("state1", _onState1);
Reveal.on("state2", _onState2);
Reveal.slide(1);
Reveal.slide(3);
Reveal.off("state1", _onState1);
Reveal.off("state2", _onState2);
});
QUnit.test("Fire state events for vertical slides", function (assert) {
assert.expect(2);
var done = assert.async(2);
var _onState1 = function (event) {
assert.ok(true, "state1 fired");
done();
};
var _onState3 = function (event) {
assert.ok(true, "state3 fired");
done();
};
Reveal.on("state1", _onState1);
Reveal.on("state3", _onState3);
Reveal.slide(0);
Reveal.slide(4, 1);
Reveal.slide(4, 2);
Reveal.off("state1", _onState1);
Reveal.off("state3", _onState3);
});
QUnit.test("No events if state remains unchanged", function (assert) {
var stateChanges = 0;
var _onEvent = function (event) {
stateChanges += 1;
};
Reveal.on("state1", _onEvent);
Reveal.slide(0); // no state
Reveal.slide(1); // state1
Reveal.slide(2); // state1
Reveal.prev(); // state1
Reveal.next(); // state1
Reveal.slide(4, 1); // state1
Reveal.slide(0); // no state
Reveal.off("state1", _onEvent);
assert.strictEqual(
stateChanges,
1,
"no event was fired when going to slide with same state"
);
});
QUnit.test("Event order", function (assert) {
var _onEvent = function (event) {
assert.ok(
Reveal.getCurrentSlide() == document.querySelector("#slide2"),
"correct current slide immediately after state event"
);
};
Reveal.on("state1", _onEvent);
Reveal.slide(0);
Reveal.slide(1);
Reveal.off("state1", _onEvent);
});
</script>
</body>
</html>