Benutzer:Schnark/js/qunit.js
Erscheinungsbild
aus Wikipedia, der freien Enzyklopädie
< Benutzer:Schnark | js
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
//Dokumentation unter [[Benutzer:Schnark/js/qunit]] <nowiki> /*global mediaWiki, QUnit*/ (function($,mw,libs){ "use strict"; vartests={ bandersnatch:['Benutzer:Schnark/js/bandersnatch.js','Benutzer:Schnark/js/bandersnatch.js/test.js'], diff:['Benutzer:Schnark/js/diff.js/core.js','Benutzer:Schnark/js/diff.js/core.js/test.js'], link:['Benutzer:Schnark/js/linkUnlinked.js','Benutzer:Schnark/js/linkUnlinked.js/test.js'], personendaten:['Benutzer:Schnark/js/personendaten.js','Benutzer:Schnark/js/personendaten.js/test.js'], rpc:['Benutzer:Schnark/js/rpc.js','Benutzer:Schnark/js/rpc.js/test.js'], search:['Benutzer:Schnark/js/search++.js','Benutzer:Schnark/js/search++.js/test.js'], syntaxhighlight:['Benutzer:Schnark/js/syntaxhighlight.js','Benutzer:Schnark/js/syntaxhighlight.js/test.js'], template:['Benutzer:Schnark/js/Template.js','Benutzer:Schnark/js/Template.js/test.js'], templateeditor:['Benutzer:Schnark/js/templateEditor.js','Benutzer:Schnark/js/templateEditor.js/test.js'] },modules={},running=0,hasOwn=Object.prototype.hasOwnProperty; functionmockAjaxEnabler(){ varmockAjax=false,answers={},cachedAssert; $.ajaxPrefilter(function(_,data){ if(mockAjax&&data.url.indexOf(mw.util.wikiScript('api'))===0){ return'simple-mock-qunit'; } }); $.ajaxTransport('simple-mock-qunit',function(o,data){ o.dataTypes=o.dataTypes.filter(function(dt){ returndt!=='simple-mock-qunit'; }); varquery=typeofdata.data==='string'?data.data:$.param(data.data); return{ send:function(h,callback){ varanswer; if(queryinanswers){ answer=answers[query].shift(); if(answers[query].length===0){ deleteanswers[query]; } callback(200,'success',{text:answer}); }else{ cachedAssert.strictEqual(false,query,'Missing data for query'); callback(500,'error'); } }, abort:$.noop }; }); functionsimpleMock(enable,assert){ varq; if(!enable){ for(qinanswers){ if(hasOwn.call(answers,q)){ assert.strictEqual(q,false,'Unused query'); } } } mockAjax=enable; answers={}; cachedAssert=assert; returnsimpleMock; } functionanswerWith(query,data){ varq; if(data===undefined){ for(qinquery){ if(hasOwn.call(query,q)){ answerWith(q,query[q]); } } return; } answers[query]=Array.isArray(data)?data:[data]; } simpleMock.answerWith=answerWith; returnsimpleMock; } functionloadFiles(f,name,callback){ vari=0; functionloadNext(){ if(i<f.length){ $.getScript(mw.util.wikiScript()+'?'+ $.param({title:f[i++],action:'raw',ctype:'text/javascript'}) ).then(loadNext,function(){ error(name,f[i-1]+' did not load',callback); }); }else{ callback(); } } loadNext(); } functionerror(name,text,callback){ QUnit.module(name); QUnit.test('Error: '+name,function(assert){ assert.expect(1); assert.ok(false,text); }); callback(); } functionloadTests(t,callback){ vari,test,files,todo=t.length; functioncheckDone(){ todo--; if(todo===0){ callback(); } } for(i=0;i<t.length;i++){ test=t[i]; files=tests[test]; if(files){ loadFiles(files,test,checkDone); }else{ error(test,'(missing)',checkDone); } } } functionloadQunit(){ varversion='2.9.2'; if(mw.loader.getState('jquery.qunit')){ returnmw.loader.using('jquery.qunit'); } $('<link>',{ rel:'stylesheet', type:'text/css', href:'https://code.jquery.com/qunit/qunit-'+version+'.css' }).appendTo('head'); return$.getScript('https://code.jquery.com/qunit/qunit-'+version+'.js'); } functioninit(){ document.title='QUnit-Tests'; $('#firstHeading').hide(); $('#mw-content-text').html('<div class="mw-content-ltr"><div id="qunit"></div>'+ '<div id="qunit-fixture"></div></div>'); window.QUnit={ config:{ autostart:false, requireExpects:true } }; loadQunit().then(function(){ QUnit.moduleDone(function(data){ if(data.failed){ modules[data.name]='error'; } if(modules[data.name]!=='error'){ modules[data.name]='done'; } }); QUnit.testStart(function(){ running++; }); QUnit.testDone(function(){ setTimeout(function(){ running--; },1000); }); loadTests((mw.util.getParamValue('tests')||'No parameter "tests"').split('|'),function(){ QUnit.start(); }); }); } functiongetStatus(log){ varmodule,data={error:[],done:[],running:running}; for(moduleinmodules){ if(hasOwn.call(modules,module)){ data[modules[module]].push(module); if(log&&modules[module]!=='done'){ mw.log.warn(module+': '+modules[module]); } } } returndata; } mw.loader.using('mediawiki.util').then(function(){ if( mw.config.get('wgCanonicalSpecialPageName')==='Blankpage'&& mw.util.getParamValue('action')==='qunit' ){ libs.qunit={}; libs.qunit.simpleMockAjax=mockAjaxEnabler(); libs.qunit.getQunitStatus=getStatus; $(init); } }); })(jQuery,mediaWiki,mediaWiki.libs); //</nowiki>