Zum Inhalt springen
Wikipedia Die freie Enzyklopädie

Benutzer:Schnark/js/qunit.js

aus Wikipedia, der freien Enzyklopädie

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>

AltStyle によって変換されたページ (->オリジナル) /