Remove this non-standard utility method, which was only used in ResourceLoader's own test suites to avoid cache hits. * mediawiki.base: Wasn't ever needed afaik. I believe this was added by me out of fear that maybe if we use the same internal script URL twice that it wouldn't be loaded a second time due to some deduplication logic, however no such logic does (nor should) exist at this level. There is something like it in legacy wikibits (importScriptURL), and of course the module-level resources are deduped and never loaded or executed a second time. But internal asset URLs will run no matter what. * mediawiki.loader: The styleTest.css.php mock doesn't change often, but it is indeed useful during development to not get caught with a cached response prior to making a local change. Handle this on the server-side instead of through randomised URLs. Tagging T250045 as this is in spirit related to the effort of making the testrunner.js environment simpler and with fewer custom things. Bug: T250045 Change-Id: I6813a7429fb503d8dbcb1861f311e4b40c615b9d
63 lines
1.8 KiB
PHP
63 lines
1.8 KiB
PHP
<?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
|
|
*/
|
|
|
|
// This file doesn't run as part of MediaWiki
|
|
// phpcs:disable MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals
|
|
|
|
header( 'Cache-Control: private, no-cache, must-revalidate' );
|
|
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 = $params['selector'] ?? '.mw-test-example';
|
|
$property = $params['prop'] ?? 'float';
|
|
$value = $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";
|