1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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 ) );
|