Benutzer:Schnark/js/rpc.js/test.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
//<nowiki>
/*global mediaWiki, QUnit*/
(function ($, mw, rpc) {
"use strict";
QUnit.module('rpc');

QUnit.test('Umgebung', function (assert) {
	assert.expect(9);
	assert.ok(rpc, 'libs.rpc vorhanden');
	assert.ok(rpc.version, 'rpc.version vorhanden');
	assert.ok(rpc.register, 'rpc.register vorhanden');
	assert.ok(rpc.define, 'rpc.define vorhanden');
	assert.ok(rpc.preload, 'rpc.preload vorhanden');
	assert.ok(rpc.exists, 'rpc.exists vorhanden');
	assert.ok(rpc.call, 'rpc.call vorhanden');
	assert.ok(rpc.stub, 'rpc.stub vorhanden');
	assert.ok(rpc.ret, 'rpc.ret vorhanden');
});

QUnit.test('Vorhandenes Modul laden', function (assert) {
	var stub, cont;
	assert.expect(5);
	assert.ok(rpc.register('rpc-qunit-1', 'Benutzer:Schnark/js/rpc.js/test.js/data.js'),
		'Funktion rpc-qunit-1 erfolgreich registriert');
	assert.ok(!rpc.register('rpc-qunit-1', 'https://this.is.an.invalid/file.js'),
		'Funktion rpc-qunit-1 lässt sich nicht mehr registrieren');
	assert.ok(rpc.exists('rpc-qunit-1'), 'rpc-qunit-1 existiert');
	cont = assert.async(2);
	rpc.call('rpc-qunit-1', 1, 2, 3).then(function (result) {
		assert.strictEqual(result, '1-2-3', 'rpc-qunit-1 erfolgreich aufgerufen');
		cont();
	});
	stub = rpc.stub('rpc-qunit-1');
	stub('a', 'b', 'c').then(function (result) {
		assert.strictEqual(result, 'a-b-c', 'rpc-qunit-1 erfolgreich aufgerufen über stub');
		cont();
	});
});

QUnit.test('Fehlendes Modul laden', function (assert) {
	var timeout, cont;
	assert.expect(4);
	assert.ok(rpc.register('rpc-qunit-2', 'https://this.is.an.invalid/file.js'),
		'rpc-qunit-2 erfolgreich registriert');
	timeout = rpc.timeout;
	rpc.timeout = 1000;
	cont = assert.async(2);
	rpc.call('rpc-qunit-2').then(null, function (error) {
		assert.strictEqual(error, 'timeout', 'rpc-qunit-2 erzeugt timeout-Fehler');
		cont();
	});
	rpc.timeout = timeout;
	assert.ok(!rpc.exists('rpc-qunit-3'), 'rpc-qunit-3 existiert nicht');
	rpc.call('rpc-qunit-3').then(null, function (error) {
		assert.strictEqual(error, 'missing', 'rpc-qunit-3 erzeugt missing-Fehler');
		cont();
	});
});

})(jQuery, mediaWiki, mediaWiki.libs.rpc);
//</nowiki>