]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - tests/qunit/suites/resources/mediawiki/mediawiki.template.test.js
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / tests / qunit / suites / resources / mediawiki / mediawiki.template.test.js
diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.template.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.template.test.js
new file mode 100644 (file)
index 0000000..a282325
--- /dev/null
@@ -0,0 +1,63 @@
+( function ( mw ) {
+
+       QUnit.module( 'mediawiki.template', {
+               setup: function () {
+                       var abcCompiler = {
+                               compile: function () {
+                                       return 'abc default compiler';
+                               }
+                       };
+
+                       // Register some template compiler languages
+                       mw.template.registerCompiler( 'abc', abcCompiler );
+                       mw.template.registerCompiler( 'xyz', {
+                               compile: function () {
+                                       return 'xyz compiler';
+                               }
+                       } );
+
+                       // Stub register some templates
+                       this.sandbox.stub( mw.templates, 'get' ).returns( {
+                               'test_templates_foo.xyz': 'goodbye',
+                               'test_templates_foo.abc': 'thankyou'
+                       } );
+               }
+       } );
+
+       QUnit.test( 'add', function ( assert ) {
+               assert.throws(
+                       function () {
+                               mw.template.add( 'module', 'test_templates_foo', 'hello' );
+                       },
+                       'When no prefix throw exception'
+               );
+       } );
+
+       QUnit.test( 'compile', function ( assert ) {
+               assert.throws(
+                       function () {
+                               mw.template.compile( '{{foo}}', 'rainbow' );
+                       },
+                       'Unknown compiler names throw exceptions'
+               );
+       } );
+
+       QUnit.test( 'get', function ( assert ) {
+               assert.strictEqual( mw.template.get( 'test.mediawiki.template', 'test_templates_foo.xyz' ), 'xyz compiler' );
+               assert.strictEqual( mw.template.get( 'test.mediawiki.template', 'test_templates_foo.abc' ), 'abc default compiler' );
+               assert.throws(
+                       function () {
+                               mw.template.get( 'this.should.not.exist', 'hello' );
+                       },
+                       'When bad module name given throw error.'
+               );
+
+               assert.throws(
+                       function () {
+                               mw.template.get( 'mediawiki.template', 'hello' );
+                       },
+                       'The template hello should not exist in the mediawiki.templates module and should throw an exception.'
+               );
+       } );
+
+}( mediaWiki ) );