module( 'mediawiki.special.recentchanges.js' );
test( '-- Initial check', function() {
expect( 2 );
ok( mw.special.recentchanges.init,
'mw.special.recentchanges.init defined'
);
ok( mw.special.recentchanges.updateCheckboxes,
'mw.special.recentchanges.updateCheckboxes defined'
);
// TODO: verify checkboxes == [ 'nsassociated', 'nsinvert' ]
});
test( '"all" namespace disable checkboxes', function() {
// from Special:Recentchanges
var select =
''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
;
var $env = $( '
' ).html( select ).appendTo( 'body' );
// TODO abstract the double strictEquals
// At first checkboxes are enabled
strictEqual( $( '#nsinvert' ).attr( 'disabled' ), undefined );
strictEqual( $( '#nsassociated' ).attr( 'disabled' ), undefined );
// Initiate the recentchanges module
mw.special.recentchanges.init();
// By default
strictEqual( $( '#nsinvert' ).attr( 'disabled' ), 'disabled' );
strictEqual( $( '#nsassociated' ).attr( 'disabled' ), 'disabled' );
// select second option...
var $options = $( '#namespace' ).find( 'option' );
$options.eq(0).removeAttr( 'selected' );
$options.eq(1).attr( 'selected', 'selected' );
$( '#namespace' ).change();
// ... and checkboxes should be enabled again
strictEqual( $( '#nsinvert' ).attr( 'disabled' ), undefined );
strictEqual( $( '#nsassociated' ).attr( 'disabled' ), undefined );
// select first option ( 'all' namespace)...
$options.eq(1).removeAttr( 'selected' );
$options.eq(0).attr( 'selected', 'selected' );;
$( '#namespace' ).change();
// ... and checkboxes should now be disabled
strictEqual( $( '#nsinvert' ).attr( 'disabled' ), 'disabled' );
strictEqual( $( '#nsassociated' ).attr( 'disabled' ), 'disabled' );
// DOM cleanup
$env.remove();
});