diff options
Diffstat (limited to 'www/wiki/extensions/UploadWizard/tests/qunit/controller/uw.controller.Tutorial.test.js')
-rw-r--r-- | www/wiki/extensions/UploadWizard/tests/qunit/controller/uw.controller.Tutorial.test.js | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/www/wiki/extensions/UploadWizard/tests/qunit/controller/uw.controller.Tutorial.test.js b/www/wiki/extensions/UploadWizard/tests/qunit/controller/uw.controller.Tutorial.test.js new file mode 100644 index 00000000..17562c1c --- /dev/null +++ b/www/wiki/extensions/UploadWizard/tests/qunit/controller/uw.controller.Tutorial.test.js @@ -0,0 +1,64 @@ +/* + * This file is part of the MediaWiki extension UploadWizard. + * + * UploadWizard is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * UploadWizard is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with UploadWizard. If not, see <http://www.gnu.org/licenses/>. + */ + +( function ( $, mw, uw ) { + QUnit.module( 'uw.controller.Tutorial', QUnit.newMwEnvironment() ); + + QUnit.test( 'Constructor sanity test', function ( assert ) { + var step = new uw.controller.Tutorial( new mw.Api() ); + assert.ok( step ); + assert.ok( step instanceof uw.controller.Step ); + assert.ok( step.ui ); + assert.ok( step.api ); + } ); + + QUnit.test( 'setSkipPreference', function ( assert ) { + var mnStub, + api = new mw.Api(), + step = new uw.controller.Tutorial( api ), + acwStub = { release: this.sandbox.stub() }, + pwtd = $.Deferred(); + + this.sandbox.stub( mw, 'confirmCloseWindow' ).returns( acwStub ); + this.sandbox.stub( api, 'postWithToken' ).returns( pwtd.promise() ); + + step.setSkipPreference( true ); + + assert.ok( mw.confirmCloseWindow.called ); + assert.ok( api.postWithToken.calledWithExactly( 'options', { + action: 'options', + change: 'upwiz_skiptutorial=1' + } ) ); + + pwtd.resolve(); + assert.ok( acwStub.release.called ); + + api = new mw.Api(); + step = new uw.controller.Tutorial( api ); + acwStub.release.reset(); + pwtd = $.Deferred(); + mnStub = this.sandbox.stub( mw, 'notify' ); + + this.sandbox.stub( api, 'postWithToken' ).returns( pwtd.promise() ); + + step.setSkipPreference( true ); + assert.ok( !acwStub.release.called ); + + pwtd.reject( 'http', { textStatus: 'Foo bar' } ); + assert.ok( mnStub.calledWith( 'Foo bar' ) ); + } ); +}( jQuery, mediaWiki, mediaWiki.uploadWizard ) ); |