diff --git a/inst/reveal.js-4.6.1/test/test-state.html b/inst/reveal.js-4.6.1/test/test-state.html
new file mode 100644
index 0000000..c2d5055
--- /dev/null
+++ b/inst/reveal.js-4.6.1/test/test-state.html
@@ -0,0 +1,134 @@
+<!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>
