X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/banques/?a=blobdiff_plain;f=resources%2Fmediawiki.util%2Fmediawiki.util.test.js;h=c6be185638a5b1d4ec463ec26990602a6efd13ee;hb=343be6a82ea5d18c8aa7a98e24c99490cd43112f;hp=5da879e043a548f842b3d329baeff99d2d380313;hpb=1785841e1f9fb5fa1ac62c67ce61e869121e0f96;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/mediawiki.util/mediawiki.util.test.js b/resources/mediawiki.util/mediawiki.util.test.js index 5da879e043..c6be185638 100644 --- a/resources/mediawiki.util/mediawiki.util.test.js +++ b/resources/mediawiki.util/mediawiki.util.test.js @@ -1,7 +1,7 @@ /** * mediaWiki JavaScript library test suite * - * Available on "/Special:BlankPage?action=mwutiltest&debug=true") + * Available on Special:BlankPage?action=mwutiltest&debug=true * * @author Krinkle */ @@ -29,9 +29,23 @@ contain = result; } this.addedTests.push( [code, result, contain] ); - this.$table.append( '' + mw.html.escape( code ).replace(/ /g, '  ' ) - + '' + mw.html.escape( result ).replace(/ /g, '  ' ) + this.$table.append( '' + mw.html.escape( code ).replace( / /g, '  ' ) + + '' + mw.html.escape( result ).replace( / /g, '  ' ) + '?' ); + return true; + }, + + /** + * Adds a heading to the test-table + * + * @param title String Title of the section + */ + 'addHead' : function( title ) { + if ( !title ) { + return false; + } + this.$table.append( '' + mw.html.escape( title ).replace( / /g, '  ' ) + '' ); + return true; }, /* Initialisation */ @@ -47,8 +61,19 @@ // Build page document.title = 'mediaWiki JavaScript library test suite - ' + mw.config.get( 'wgSiteName' ); $( '#firstHeading' ).text( 'mediaWiki JavaScript library test suite' ); + var skinLinksText = 'Test in: '; + skinLinks = [], + availableSkins = mw.config.get( 'wgAvailableSkins' ), + skincode = ''; + for ( skincode in availableSkins ) { + skinLinks.push( mw.html.element( 'a', { + 'href': mw.util.wikiGetlink( wgPageName ) + '?action=mwutiltest&debug=true&useskin=' + encodeURIComponent( skincode ) + }, availableSkins[skincode] ) ); + } + skinLinksText += skinLinks.join( ' | ' ) + '.'; mw.util.$content.html( '

Below is a list of tests to confirm proper functionality of the mediaWiki JavaScript library

' + + '

' + skinLinksText + '

' + '
' + '' + '' @@ -56,75 +81,212 @@ ); mw.test.$table = $( 'table#mw-mwutiltest-table' ); - // Populate tests + /* Populate tests */ + // Try to roughly keep the order similar to the order in the files + // or alphabetical (depending on the context) + + // Main modules and their aliases + mw.test.addHead( 'Main modules and their aliases' ); + + mw.test.addTest( 'typeof mediaWiki', + 'object (string)' ); + + mw.test.addTest( 'typeof mw', + 'object (string)' ); + + mw.test.addTest( 'typeof jQuery', + 'function (string)' ); + + mw.test.addTest( 'typeof $', + 'function (string)' ); + + // Prototype functions added by MediaWiki + mw.test.addHead( 'Prototype functions added by MediaWiki' ); + mw.test.addTest( 'typeof $.trimLeft', 'function (string)' ); - mw.test.addTest( '$.trimLeft(\' foo bar \')', + + mw.test.addTest( '$.trimLeft( " foo bar " )', 'foo bar (string)' ); + mw.test.addTest( 'typeof $.trimRight', 'function (string)' ); - mw.test.addTest( '$.trimRight(\' foo bar \')', + + mw.test.addTest( '$.trimRight( " foo bar " )', ' foo bar (string)' ); + + mw.test.addTest( 'typeof $.ucFirst', + 'function (string)' ); + + mw.test.addTest( '$.ucFirst( "mediawiki" )', + 'Mediawiki (string)' ); + + mw.test.addTest( 'typeof $.escapeRE', + 'function (string)' ); + + mw.test.addTest( '$.escapeRE( ".st{e}$st" )', + '\\.st\\{e\\}\\$st (string)' ); + mw.test.addTest( 'typeof $.isEmpty', 'function (string)' ); - mw.test.addTest( '$.isEmpty(\'string\')', + + mw.test.addTest( '$.isEmpty( "string" )', 'false (boolean)' ); - mw.test.addTest( '$.isEmpty(\'0\')', + + mw.test.addTest( '$.isEmpty( "0" )', 'true (boolean)' ); + mw.test.addTest( '$.isEmpty([])', 'true (boolean)' ); + mw.test.addTest( 'typeof $.compareArray', 'function (string)' ); - mw.test.addTest( '$.compareArray( [1, "a", [], [2, \'b\'] ], [1, \'a\', [], [2, "b"] ] )', + + mw.test.addTest( '$.compareArray( [1, "a", [], [2, "b"] ], [1, "a", [], [2, "b"] ] )', 'true (boolean)' ); + mw.test.addTest( '$.compareArray( [1], [2] )', 'false (boolean)' ); - mw.test.addTest( '4', - '4 (number)' ); - mw.test.addTest( 'typeof mediaWiki', + + mw.test.addTest( 'typeof $.compareObject', + 'function (string)' ); + + // mediawiki.js + mw.test.addHead( 'mediawiki.js' ); + + mw.test.addTest( 'mw.config instanceof mw.Map', + 'true (boolean)' ); + + mw.test.addTest( 'mw.config.exists()', + 'true (boolean)' ); + + mw.test.addTest( 'mw.config.exists( "wgSomeName" )', + 'false (boolean)' ); + + mw.test.addTest( 'mw.config.exists( ["wgCanonicalNamespace", "wgTitle"] )', + 'true (boolean)' ); + + mw.test.addTest( 'mw.config.exists( ["wgSomeName", "wgTitle"] )', + 'false (boolean)' ); + + mw.test.addTest( 'mw.config.get( "wgTitle" )', + 'BlankPage (string)' ); + + mw.test.addTest( 'var a = mw.config.get( ["wgTitle"] ); a.wgTitle', + 'BlankPage (string)' ); + + mw.test.addTest( 'typeof mw.html', 'object (string)' ); - mw.test.addTest( 'typeof mw', + + mw.test.addTest( 'mw.html.escape( \'\' )', + '<mw awesome="awesome"> (string)' ); + + mw.test.addTest( 'mw.html.element( "hr" )', + '
(string)' ); + + mw.test.addTest( 'mw.html.element( "img", { "src": "http://mw.org/?title=Main page&action=edit" } )', + ' (string)' ); + + mw.test.addTest( 'typeof mw.loader', 'object (string)' ); - mw.test.addTest( 'typeof mw.util', + + mw.test.addTest( 'typeof mw.loader.using', + 'function (string)' ); + + mw.test.addTest( 'typeof mw.Map', + 'function (string)' ); + + mw.test.addTest( 'typeof mw.user', 'object (string)' ); - mw.test.addTest( 'typeof mw.html', + + mw.test.addTest( 'typeof mw.user.anonymous()', + 'boolean (string)' ); + + // mediawiki.util.js + mw.test.addHead( 'mediawiki.util.js' ); + + mw.test.addTest( 'typeof mw.util', 'object (string)' ); - mw.test.addTest( 'typeof $.ucFirst', - 'function (string)' ); - mw.test.addTest( '$.ucFirst( \'mediawiki\' )', - 'Mediawiki (string)' ); - mw.test.addTest( 'typeof $.escapeRE', + + mw.test.addTest( 'typeof mw.util.rawurlencode', 'function (string)' ); - mw.test.addTest( '$.escapeRE( \'.st{e}$st\' )', - '\\.st\\{e\\}\\$st (string)' ); - mw.test.addTest( 'typeof $.fn.checkboxShiftClick', + + mw.test.addTest( 'mw.util.rawurlencode( "Test:A & B/Here" )', + 'Test%3AA%20%26%20B%2FHere (string)' ); + + mw.test.addTest( 'typeof mw.util.wikiUrlencode', 'function (string)' ); - mw.test.addTest( 'typeof mw.util.rawurlencode', + + mw.test.addTest( 'mw.util.wikiUrlencode( "Test:A & B/Here" )', + 'Test:A_%26_B/Here (string)' ); + + mw.test.addTest( 'typeof mw.util.addCSS', 'function (string)' ); - mw.test.addTest( 'mw.util.rawurlencode( \'Test: A&B/Here\' )', - 'Test%3A%20A%26B%2FHere (string)' ); + + mw.test.addTest( 'var a = mw.util.addCSS( ".plainlinks { color:green; }" ); a.disabled;', + 'false (boolean)', + '(boolean)' ); + mw.test.addTest( 'typeof mw.util.wikiGetlink', 'function (string)' ); + mw.test.addTest( 'typeof mw.util.getParamValue', 'function (string)' ); - mw.test.addTest( 'mw.util.getParamValue( \'action\' )', + + mw.test.addTest( 'mw.util.getParamValue( "action" )', 'mwutiltest (string)' ); - mw.test.addTest( 'mw.util.getParamValue( \'foo\', \'http://mw.org/?foo=wrong&foo=right#&foo=bad\' )', + + mw.test.addTest( 'mw.util.getParamValue( "foo", "http://mw.org/?foo=wrong&foo=right#&foo=bad" )', 'right (string)' ); + mw.test.addTest( 'mw.util.tooltipAccessKeyRegexp.constructor.name', 'RegExp (string)' ); + mw.test.addTest( 'typeof mw.util.updateTooltipAccessKeys', 'function (string)' ); + + mw.test.addTest( 'mw.util.$content instanceof jQuery', + 'true (boolean)' ); + + mw.test.addTest( 'mw.util.$content.size()', + '1 (number)' ); + mw.test.addTest( 'typeof mw.util.addPortletLink', 'function (string)' ); - mw.test.addTest( 'typeof mw.util.addPortletLink( "p-tb", "http://mediawiki.org/", "MediaWiki.org", "t-mworg", "Go to MediaWiki.org ", "m", "#t-print" )', + + mw.test.addTest( 'typeof mw.util.addPortletLink( "p-tb", "http://mediawiki.org/wiki/ResourceLoader", "ResourceLoader", "t-rl", "More info about ResourceLoader on MediaWiki.org ", "l", "#t-specialpages" )', 'object (string)' ); - mw.test.addTest( 'a = mw.util.addPortletLink( "p-tb", "http://mediawiki.org/", "MediaWiki.org", "t-mworg", "Go to MediaWiki.org ", "m", "#t-print" ); $(a).text();', + + mw.test.addTest( 'var a = mw.util.addPortletLink( "p-tb", "http://mediawiki.org/", "MediaWiki.org", "t-mworg", "Go to MediaWiki.org ", "m", "#t-rl" ); $(a).text();', 'MediaWiki.org (string)' ); - mw.test.addTest( 'mw.html.element( \'hr\' )', - '
(string)' ); - mw.test.addTest( 'mw.html.element( \'img\', { \'src\': \'http://mw.org/?title=Main page&action=edit\' } )', - ' (string)' ); + + mw.test.addTest( 'typeof mw.util.jsMessage', + 'function (string)' ); + + mw.test.addTest( 'mw.util.jsMessage( mw.config.get( "wgSiteName" ) + " is Awesome." )', + 'true (boolean)' ); + + // TODO: Import tests from PHPUnit test suite for user::isValidEmailAddr + mw.test.addTest( 'mw.util.validateEmail( "" )', + 'null (object)' ); + + mw.test.addTest( 'mw.util.validateEmail( "user@localhost" )', + 'true (boolean)' ); + + // jQuery plugins + mw.test.addHead( 'jQuery plugins' ); + + mw.test.addTest( 'typeof $.client', + 'object (string)' ); + + mw.test.addTest( 'typeof $.client.profile', + 'function (string)' ); + + mw.test.addTest( 'var a = $.client.profile(); typeof a.name', + 'string (string)' ); + + mw.test.addTest( 'typeof $.fn.makeCollapsible', + 'function (string)' ); // Run tests and compare results var exec, @@ -134,7 +296,7 @@ numberofpasseds = 0, numberofpartials = 0, numberoferrors = 0, - $testrows = mw.test.$table.find( 'tr' ); + $testrows = mw.test.$table.find( 'tr:has(td)' ); $.each( mw.test.addedTests, function( i ) { numberoftests++; @@ -144,11 +306,11 @@ shouldcontain = mw.test.addedTests[i][2]; doesreturn = eval( exec ); doesreturn = doesreturn + ' (' + typeof doesreturn + ')'; - $thisrow = $testrows.eq( i + 1 ); + $thisrow = $testrows.eq( i ); $thisrow.find( '> td' ).eq(2).html( mw.html.escape( doesreturn ).replace(/ /g, '  ' ) ); if ( doesreturn.indexOf( shouldcontain ) !== -1 ) { - if (doesreturn == shouldreturn){ + if ( doesreturn == shouldreturn ) { $thisrow.find( '> td' ).eq(3).css( 'background', '#EFE' ).text( 'OK' ); numberofpasseds++; } else { @@ -173,4 +335,4 @@ mediaWiki.test.init(); -} )(jQuery, mediaWiki); \ No newline at end of file +} )(jQuery, mediaWiki);
ExecShould returnDoes returnEqual ?