add hasPlugin and getPlugin API methods and tests
This commit is contained in:
parent
d6f0f41f77
commit
df25fbebba
27
js/reveal.js
27
js/reveal.js
|
@ -1594,6 +1594,29 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a specific plugin has been registered.
|
||||||
|
*
|
||||||
|
* @param {String} id Unique plugin identifier
|
||||||
|
*/
|
||||||
|
function hasPlugin( id ) {
|
||||||
|
|
||||||
|
return !!plugins[id];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the specific plugin instance, if a plugin
|
||||||
|
* with the given ID has been registered.
|
||||||
|
*
|
||||||
|
* @param {String} id Unique plugin identifier
|
||||||
|
*/
|
||||||
|
function getPlugin( id ) {
|
||||||
|
|
||||||
|
return plugins[id];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a custom key binding with optional description to
|
* Add a custom key binding with optional description to
|
||||||
* be added to the help screen.
|
* be added to the help screen.
|
||||||
|
@ -5975,8 +5998,10 @@
|
||||||
addKeyBinding: addKeyBinding,
|
addKeyBinding: addKeyBinding,
|
||||||
removeKeyBinding: removeKeyBinding,
|
removeKeyBinding: removeKeyBinding,
|
||||||
|
|
||||||
// Called by plugins to register themselves
|
// API for registering and retrieving plugins
|
||||||
registerPlugin: registerPlugin,
|
registerPlugin: registerPlugin,
|
||||||
|
hasPlugin: hasPlugin,
|
||||||
|
getPlugin: getPlugin,
|
||||||
|
|
||||||
// Programatically triggers a keyboard event
|
// Programatically triggers a keyboard event
|
||||||
triggerKey: function( keyCode ) {
|
triggerKey: function( keyCode ) {
|
||||||
|
|
|
@ -57,6 +57,8 @@
|
||||||
initCounter['PluginD'] += 1;
|
initCounter['PluginD'] += 1;
|
||||||
} };
|
} };
|
||||||
|
|
||||||
|
var PluginE = {};
|
||||||
|
|
||||||
Reveal.registerPlugin( 'PluginA', PluginA );
|
Reveal.registerPlugin( 'PluginA', PluginA );
|
||||||
Reveal.registerPlugin( 'PluginB', PluginB );
|
Reveal.registerPlugin( 'PluginB', PluginB );
|
||||||
Reveal.registerPlugin( 'PluginC', PluginC );
|
Reveal.registerPlugin( 'PluginC', PluginC );
|
||||||
|
@ -71,7 +73,7 @@
|
||||||
assert.strictEqual( initCounter['PluginB'], 1, 'prevents duplicate registration' );
|
assert.strictEqual( initCounter['PluginB'], 1, 'prevents duplicate registration' );
|
||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test( 'Can initialie asynchronously', function( assert ) {
|
QUnit.test( 'Can initialize asynchronously', function( assert ) {
|
||||||
assert.expect( 3 );
|
assert.expect( 3 );
|
||||||
var done = assert.async( 2 );
|
var done = assert.async( 2 );
|
||||||
|
|
||||||
|
@ -86,6 +88,17 @@
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
QUnit.test( 'Can check if plugin is registered', function( assert ) {
|
||||||
|
assert.strictEqual( Reveal.hasPlugin( 'PluginA' ), true );
|
||||||
|
assert.strictEqual( Reveal.hasPlugin( 'PluginE' ), false );
|
||||||
|
Reveal.registerPlugin( 'PluginE', PluginE );
|
||||||
|
assert.strictEqual( Reveal.hasPlugin( 'PluginE' ), true );
|
||||||
|
} );
|
||||||
|
|
||||||
|
QUnit.test( 'Can retrieve plugin instance', function( assert ) {
|
||||||
|
assert.strictEqual( Reveal.getPlugin( 'PluginB' ), PluginB );
|
||||||
|
} );
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
Loading…
Reference in New Issue