github.com/mweagle/Sparta@v1.15.0/docs_source/static/presentations/reveal.js-3.9.2/test/test-plugins.html (about) 1 <!doctype html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="utf-8"> 6 7 <title>reveal.js - Test Plugins</title> 8 9 <link rel="stylesheet" href="../css/reveal.css"> 10 <link rel="stylesheet" href="qunit-2.5.0.css"> 11 </head> 12 13 <body style="overflow: auto;"> 14 15 <div id="qunit"></div> 16 <div id="qunit-fixture"></div> 17 18 <div class="reveal" style="display: none;"> 19 20 <div class="slides"> 21 22 <section>Slide content</section> 23 24 </div> 25 26 </div> 27 28 <script src="../js/reveal.js"></script> 29 <script src="qunit-2.5.0.js"></script> 30 31 <script> 32 33 QUnit.module( 'Plugins' ); 34 35 var initCounter = { PluginB: 0, PluginC: 0, PluginD: 0 }; 36 37 // Plugin with no init method 38 var PluginA = {}; 39 40 // Plugin with init method 41 var PluginB = { init: function() { 42 initCounter['PluginB'] += 1; 43 } }; 44 45 // Async plugin with init method 46 var PluginC = { init: function() { 47 return new Promise(function( resolve ) { 48 setTimeout( () => { 49 initCounter['PluginC'] += 1; 50 resolve(); 51 }, 1000 ); 52 }); 53 } }; 54 55 // Plugin initialized after reveal.js is ready 56 var PluginD = { init: function() { 57 initCounter['PluginD'] += 1; 58 } }; 59 60 var PluginE = {}; 61 62 Reveal.registerPlugin( 'PluginA', PluginA ); 63 Reveal.registerPlugin( 'PluginB', PluginB ); 64 Reveal.registerPlugin( 'PluginC', PluginC ); 65 66 Reveal.initialize(); 67 68 QUnit.test( 'Can initialize synchronously', function( assert ) { 69 assert.strictEqual( initCounter['PluginB'], 1 ); 70 71 Reveal.registerPlugin( 'PluginB', PluginB ); 72 73 assert.strictEqual( initCounter['PluginB'], 1, 'prevents duplicate registration' ); 74 }); 75 76 QUnit.test( 'Can initialize asynchronously', function( assert ) { 77 assert.expect( 3 ); 78 var done = assert.async( 2 ); 79 80 assert.strictEqual( initCounter['PluginC'], 0, 'async plugin not immediately initialized' ); 81 82 Reveal.addEventListener( 'ready', function() { 83 assert.strictEqual( initCounter['PluginC'], 1, 'finsihed initializing when reveal.js dispatches "ready"' ); 84 done(); 85 86 Reveal.registerPlugin( 'PluginD', PluginD ); 87 assert.strictEqual( initCounter['PluginD'], 1, 'plugin registered after reveal.js is ready still initiailizes' ); 88 done(); 89 }); 90 } ); 91 92 QUnit.test( 'Can check if plugin is registered', function( assert ) { 93 assert.strictEqual( Reveal.hasPlugin( 'PluginA' ), true ); 94 assert.strictEqual( Reveal.hasPlugin( 'PluginE' ), false ); 95 Reveal.registerPlugin( 'PluginE', PluginE ); 96 assert.strictEqual( Reveal.hasPlugin( 'PluginE' ), true ); 97 } ); 98 99 QUnit.test( 'Can retrieve plugin instance', function( assert ) { 100 assert.strictEqual( Reveal.getPlugin( 'PluginB' ), PluginB ); 101 } ); 102 </script> 103 104 </body> 105 </html>