( function ( mw, $ ) {
QUnit.module( 'mediawiki.special.recentchanges', QUnit.newMwEnvironment() );
// TODO: verify checkboxes == [ 'nsassociated', 'nsinvert' ]
QUnit.test( '"all" namespace disable checkboxes', 8, function ( assert ) {
var selectHtml, $env, $options;
// from Special:Recentchanges
selectHtml = ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ '';
$env = $( '
' ).html( selectHtml ).appendTo( 'body' );
// TODO abstract the double strictEquals
// At first checkboxes are enabled
assert.strictEqual( $( '#nsinvert' ).prop( 'disabled' ), false );
assert.strictEqual( $( '#nsassociated' ).prop( 'disabled' ), false );
// Initiate the recentchanges module
mw.special.recentchanges.init();
// By default
assert.strictEqual( $( '#nsinvert' ).prop( 'disabled' ), true );
assert.strictEqual( $( '#nsassociated' ).prop( 'disabled' ), true );
// select second option...
$options = $( '#namespace' ).find( 'option' );
$options.eq( 0 ).removeProp( 'selected' );
$options.eq( 1 ).prop( 'selected', true );
$( '#namespace' ).change();
// ... and checkboxes should be enabled again
assert.strictEqual( $( '#nsinvert' ).prop( 'disabled' ), false );
assert.strictEqual( $( '#nsassociated' ).prop( 'disabled' ), false );
// select first option ( 'all' namespace)...
$options.eq( 1 ).removeProp( 'selected' );
$options.eq( 0 ).prop( 'selected', true );
$( '#namespace' ).change();
// ... and checkboxes should now be disabled
assert.strictEqual( $( '#nsinvert' ).prop( 'disabled' ), true );
assert.strictEqual( $( '#nsassociated' ).prop( 'disabled' ), true );
// DOM cleanup
$env.remove();
} );
}( mediaWiki, jQuery ) );