返回 reveal.js
test-dependencies-async.html
根目录 / test / test-dependencies-async.html
1 <!doctype html>
2 <html lang="en">
3
4 <head>
5 <meta charset="utf-8">
6
7 <title>reveal.js - Test Async Dependencies</title>
8 </head>
9
10 <body style="overflow: auto;">
11
12 <div id="qunit"></div>
13 <div id="qunit-fixture"></div>
14
15 <div class="reveal" style="display: none;">
16
17 <div class="slides">
18
19 <section>Slide content</section>
20
21 </div>
22
23 </div>
24
25 <script type="module">
26 import 'reveal.css';
27 import 'qunit/qunit/qunit.css';
28 import QUnit from 'qunit';
29 import Reveal from 'reveal.js';
30
31 window.externalScriptSequence = '';
32
33 var scriptCount = 0;
34
35 QUnit.config.testTimeout = 30000;
36 QUnit.config.autostart = false;
37
38 QUnit.module( 'Async Dependencies' );
39
40 QUnit.test( 'Async scripts are loaded', function( assert ) {
41 assert.expect( 5 );
42 var done = assert.async( 5 );
43
44 function callback( event ) {
45 if( externalScriptSequence.length === 1 ) {
46 assert.ok( externalScriptSequence === 'A', 'first callback was sync script' );
47 done();
48 }
49 else {
50 assert.ok( true, 'async script loaded' );
51 done();
52 }
53
54 if( externalScriptSequence.length === 4 ) {
55 assert.ok( externalScriptSequence.indexOf( 'A' ) !== -1 &&
56 externalScriptSequence.indexOf( 'B' ) !== -1 &&
57 externalScriptSequence.indexOf( 'C' ) !== -1 &&
58 externalScriptSequence.indexOf( 'D' ) !== -1, 'four unique scripts were loaded' );
59 done();
60 }
61
62 scriptCount ++;
63 }
64
65 Reveal.initialize({
66 dependencies: [
67 { src: 'assets/external-script-a.js', async: false, callback: callback },
68 { src: 'assets/external-script-b.js', async: true, callback: callback },
69 { src: 'assets/external-script-c.js', async: true, callback: callback },
70 { src: 'assets/external-script-d.js', async: true, callback: callback }
71 ]
72 });
73 });
74
75 QUnit.start();
76
77 </script>
78
79 </body>
80 </html>
81
81 lines HTML