summaryrefslogtreecommitdiff
path: root/tests/qunit/data
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2013-08-12 09:28:15 +0200
committerPierre Schmitz <pierre@archlinux.de>2013-08-12 09:28:15 +0200
commit08aa4418c30cfc18ccc69a0f0f9cb9e17be6c196 (patch)
tree577a29fb579188d16003a209ce2a2e9c5b0aa2bd /tests/qunit/data
parentcacc939b34e315b85e2d72997811eb6677996cc1 (diff)
Update to MediaWiki 1.21.1
Diffstat (limited to 'tests/qunit/data')
-rw-r--r--tests/qunit/data/callMwLoaderTestCallback.js1
-rw-r--r--tests/qunit/data/load.mock.php58
-rw-r--r--tests/qunit/data/qunitOkCall.js2
-rw-r--r--tests/qunit/data/styleTest.css.php61
-rw-r--r--tests/qunit/data/testrunner.js266
5 files changed, 0 insertions, 388 deletions
diff --git a/tests/qunit/data/callMwLoaderTestCallback.js b/tests/qunit/data/callMwLoaderTestCallback.js
deleted file mode 100644
index 3f2ee92f..00000000
--- a/tests/qunit/data/callMwLoaderTestCallback.js
+++ /dev/null
@@ -1 +0,0 @@
-mw.loader.testCallback();
diff --git a/tests/qunit/data/load.mock.php b/tests/qunit/data/load.mock.php
deleted file mode 100644
index 1c189703..00000000
--- a/tests/qunit/data/load.mock.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-/**
- * Mock load.php with pre-defined test modules.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @package MediaWiki
- * @author Lupo
- * @since 1.20
- */
-header( 'Content-Type: text/javascript; charset=utf-8' );
-
-require_once '../../../includes/Xml.php';
-
-$moduleImplementations = array(
- 'testUsesMissing' => "
-mw.loader.implement( 'testUsesMissing', function () {
- QUnit.ok( false, 'Module test.usesMissing script should not run.');
- QUnit.start();
-}, {}, {});
-",
-
- 'testUsesNestedMissing' => "
-mw.loader.implement( 'testUsesNestedMissing', function () {
- QUnit.ok( false, 'Module testUsesNestedMissing script should not run.');
-}, {}, {});
-",
-);
-
-$response = '';
-
-// Only support for non-encoded module names, full module names expected
-if ( isset( $_GET['modules'] ) ) {
- $modules = explode( ',', $_GET['modules'] );
- foreach ( $modules as $module ) {
- if ( isset( $moduleImplementations[$module] ) ) {
- $response .= $moduleImplementations[$module];
- } else {
- $response .= Xml::encodeJsCall( 'mw.loader.state', array( $module, 'missing' ) );
- }
- }
-}
-
-echo $response;
diff --git a/tests/qunit/data/qunitOkCall.js b/tests/qunit/data/qunitOkCall.js
deleted file mode 100644
index 25c42d6a..00000000
--- a/tests/qunit/data/qunitOkCall.js
+++ /dev/null
@@ -1,2 +0,0 @@
-QUnit.start();
-QUnit.assert.ok( true, 'Successfully loaded!');
diff --git a/tests/qunit/data/styleTest.css.php b/tests/qunit/data/styleTest.css.php
deleted file mode 100644
index 1870d5a3..00000000
--- a/tests/qunit/data/styleTest.css.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/**
- * Dynamically create a simple stylesheet for unit tests in MediaWiki.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @package MediaWiki
- * @author Timo Tijhof
- * @since 1.20
- */
-header( 'Content-Type: text/css; charset=utf-8' );
-
-/**
- * Allows characters in ranges [a-z], [A-Z] and [0-9],
- * in addition to a dot ("."), dash ("-"), space (" ") and hash ("#").
- * @since 1.20
- *
- * @param string $val
- * @return string Value with any illegal characters removed.
- */
-function cssfilter( $val ) {
- return preg_replace( '/[^A-Za-z0-9\.\- #]/', '', $val );
-}
-
-// Do basic sanitization
-$params = array_map( 'cssfilter', $_GET );
-
-// Defaults
-$selector = isset( $params['selector'] ) ? $params['selector'] : '.mw-test-example';
-$property = isset( $params['prop'] ) ? $params['prop'] : 'float';
-$value = isset( $params['val'] ) ? $params['val'] : 'right';
-$wait = isset( $params['wait'] ) ? (int)$params['wait'] : 0; // seconds
-
-sleep( $wait );
-
-$css = "
-/**
- * Generated " . gmdate( 'r' ) . ".
- * Waited {$wait}s.
- */
-
-$selector {
- $property: $value;
-}
-";
-
-echo trim( $css ) . "\n";
diff --git a/tests/qunit/data/testrunner.js b/tests/qunit/data/testrunner.js
deleted file mode 100644
index efa65493..00000000
--- a/tests/qunit/data/testrunner.js
+++ /dev/null
@@ -1,266 +0,0 @@
-( function ( $, mw, QUnit, undefined ) {
-/*global CompletenessTest */
-/*jshint evil:true */
-'use strict';
-
-var mwTestIgnore, mwTester, addons;
-
-/**
- * Add bogus to url to prevent IE crazy caching
- *
- * @param value {String} a relative path (eg. 'data/foo.js'
- * or 'data/test.php?foo=bar').
- * @return {String} Such as 'data/foo.js?131031765087663960'
- */
-QUnit.fixurl = function ( value ) {
- return value + (/\?/.test( value ) ? '&' : '?')
- + String( new Date().getTime() )
- + String( parseInt( Math.random() * 100000, 10 ) );
-};
-
-/**
- * Configuration
- */
-
-// When a test() indicates asynchronicity with stop(),
-// allow 10 seconds to pass before killing the test(),
-// and assuming failure.
-QUnit.config.testTimeout = 10 * 1000;
-
-// Add a checkbox to QUnit header to toggle MediaWiki ResourceLoader debug mode.
-QUnit.config.urlConfig.push( {
- id: 'debug',
- label: 'Enable ResourceLoaderDebug',
- tooltip: 'Enable debug mode in ResourceLoader'
-} );
-
-/**
- * Load TestSwarm agent
- */
-// Only if the current url indicates that there is a TestSwarm instance watching us
-// (TestSwarm appends swarmURL to the test suites url it loads in iframes).
-// Otherwise this is just a simple view of Special:JavaScriptTest/qunit directly,
-// no point in loading inject.js in that case. Also, make sure that this instance
-// of MediaWiki has actually been configured with the required url to that inject.js
-// script. By default it is false.
-if ( QUnit.urlParams.swarmURL && mw.config.get( 'QUnitTestSwarmInjectJSPath' ) ) {
- document.write( "<scr" + "ipt src='" + QUnit.fixurl( mw.config.get( 'QUnitTestSwarmInjectJSPath' ) ) + "'></scr" + "ipt>" );
-}
-
-/**
- * CompletenessTest
- */
-// Adds toggle checkbox to header
-QUnit.config.urlConfig.push( {
- id: 'completenesstest',
- label: 'Run CompletenessTest',
- tooltip: 'Run the completeness test'
-} );
-
-// Initiate when enabled
-if ( QUnit.urlParams.completenesstest ) {
-
- // Return true to ignore
- mwTestIgnore = function ( val, tester, funcPath ) {
-
- // Don't record methods of the properties of constructors,
- // to avoid getting into a loop (prototype.constructor.prototype..).
- // Since we're therefor skipping any injection for
- // "new mw.Foo()", manually set it to true here.
- if ( val instanceof mw.Map ) {
- tester.methodCallTracker.Map = true;
- return true;
- }
- if ( val instanceof mw.Title ) {
- tester.methodCallTracker.Title = true;
- return true;
- }
-
- // Don't record methods of the properties of a jQuery object
- if ( val instanceof $ ) {
- return true;
- }
-
- return false;
- };
-
- mwTester = new CompletenessTest( mw, mwTestIgnore );
-}
-
-/**
- * Test environment recommended for all QUnit test modules
- */
-// Whether to log environment changes to the console
-QUnit.config.urlConfig.push( 'mwlogenv' );
-
-/**
- * Reset mw.config and others to a fresh copy of the live config for each test(),
- * and restore it back to the live one afterwards.
- * @param localEnv {Object} [optional]
- * @example (see test suite at the bottom of this file)
- * </code>
- */
-QUnit.newMwEnvironment = ( function () {
- var log, liveConfig, liveMessages;
-
- liveConfig = mw.config.values;
- liveMessages = mw.messages.values;
-
- function freshConfigCopy( custom ) {
- // "deep=true" is important here.
- // Otherwise we just create a new object with values referring to live config.
- // e.g. mw.config.set( 'wgFileExtensions', [] ) would not effect liveConfig,
- // but mw.config.get( 'wgFileExtensions' ).push( 'png' ) would as the array
- // was passed by reference in $.extend's loop.
- return $.extend( {}, liveConfig, custom, /*deep=*/true );
- }
-
- function freshMessagesCopy( custom ) {
- return $.extend( {}, liveMessages, custom, /*deep=*/true );
- }
-
- log = QUnit.urlParams.mwlogenv ? mw.log : function () {};
-
- return function ( localEnv ) {
- localEnv = $.extend( {
- // QUnit
- setup: $.noop,
- teardown: $.noop,
- // MediaWiki
- config: {},
- messages: {}
- }, localEnv );
-
- return {
- setup: function () {
- log( 'MwEnvironment> SETUP for "' + QUnit.config.current.module
- + ': ' + QUnit.config.current.testName + '"' );
-
- // Greetings, mock environment!
- mw.config.values = freshConfigCopy( localEnv.config );
- mw.messages.values = freshMessagesCopy( localEnv.messages );
-
- localEnv.setup();
- },
-
- teardown: function () {
- log( 'MwEnvironment> TEARDOWN for "' + QUnit.config.current.module
- + ': ' + QUnit.config.current.testName + '"' );
-
- localEnv.teardown();
-
- // Farewell, mock environment!
- mw.config.values = liveConfig;
- mw.messages.values = liveMessages;
- }
- };
- };
-}() );
-
-// $.when stops as soon as one fails, which makes sense in most
-// practical scenarios, but not in a unit test where we really do
-// need to wait until all of them are finished.
-QUnit.whenPromisesComplete = function () {
- var altPromises = [];
-
- $.each( arguments, function ( i, arg ) {
- var alt = $.Deferred();
- altPromises.push( alt );
-
- // Whether this one fails or not, forwards it to
- // the 'done' (resolve) callback of the alternative promise.
- arg.always( alt.resolve );
- });
-
- return $.when.apply( $, altPromises );
-};
-
-/**
- * Add-on assertion helpers
- */
-// Define the add-ons
-addons = {
-
- // Expect boolean true
- assertTrue: function ( actual, message ) {
- QUnit.push( actual === true, actual, true, message );
- },
-
- // Expect boolean false
- assertFalse: function ( actual, message ) {
- QUnit.push( actual === false, actual, false, message );
- },
-
- // Expect numerical value less than X
- lt: function ( actual, expected, message ) {
- QUnit.push( actual < expected, actual, 'less than ' + expected, message );
- },
-
- // Expect numerical value less than or equal to X
- ltOrEq: function ( actual, expected, message ) {
- QUnit.push( actual <= expected, actual, 'less than or equal to ' + expected, message );
- },
-
- // Expect numerical value greater than X
- gt: function ( actual, expected, message ) {
- QUnit.push( actual > expected, actual, 'greater than ' + expected, message );
- },
-
- // Expect numerical value greater than or equal to X
- gtOrEq: function ( actual, expected, message ) {
- QUnit.push( actual >= expected, actual, 'greater than or equal to ' + expected, message );
- }
-};
-
-$.extend( QUnit.assert, addons );
-
-/**
- * Small test suite to confirm proper functionality of the utilities and
- * initializations in this file.
- */
-var envExecCount = 0;
-QUnit.module( 'mediawiki.tests.qunit.testrunner', QUnit.newMwEnvironment({
- setup: function () {
- envExecCount += 1;
- this.mwHtmlLive = mw.html;
- mw.html = {
- escape: function () {
- return 'mocked-' + envExecCount;
- }
- };
- },
- teardown: function () {
- mw.html = this.mwHtmlLive;
- },
- config: {
- testVar: 'foo'
- },
- messages: {
- testMsg: 'Foo.'
- }
-}) );
-
-QUnit.test( 'Setup', 3, function ( assert ) {
- assert.equal( mw.html.escape( 'foo' ), 'mocked-1', 'extra setup() callback was ran.' );
- assert.equal( mw.config.get( 'testVar' ), 'foo', 'config object applied' );
- assert.equal( mw.messages.get( 'testMsg' ), 'Foo.', 'messages object applied' );
-
- mw.config.set( 'testVar', 'bar' );
- mw.messages.set( 'testMsg', 'Bar.' );
-});
-
-QUnit.test( 'Teardown', 3, function ( assert ) {
- assert.equal( mw.html.escape( 'foo' ), 'mocked-2', 'extra setup() callback was re-ran.' );
- assert.equal( mw.config.get( 'testVar' ), 'foo', 'config object restored and re-applied after test()' );
- assert.equal( mw.messages.get( 'testMsg' ), 'Foo.', 'messages object restored and re-applied after test()' );
-});
-
-QUnit.module( 'mediawiki.tests.qunit.testrunner-after', QUnit.newMwEnvironment() );
-
-QUnit.test( 'Teardown', 3, function ( assert ) {
- assert.equal( mw.html.escape( '<' ), '&lt;', 'extra teardown() callback was ran.' );
- assert.equal( mw.config.get( 'testVar' ), null, 'config object restored to live in next module()' );
- assert.equal( mw.messages.get( 'testMsg' ), null, 'messages object restored to live in next module()' );
-});
-
-}( jQuery, mediaWiki, QUnit ) );