( 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 ) );