Per wikitech-l consensus: https://lists.wikimedia.org/pipermail/wikitech-l/2016-February/084821.html Notes: * Disabled CallTimePassByReference due to false positives (T127163) Change-Id: I2c8ce713ce6600a0bb7bf67537c87044c7a45c4b
93 lines
1.9 KiB
PHP
93 lines
1.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @group GlobalFunctions
|
|
* @covers ::wfRemoveDotSegments
|
|
*/
|
|
class WfRemoveDotSegmentsTest extends MediaWikiTestCase {
|
|
/**
|
|
* @dataProvider providePaths
|
|
*/
|
|
public function testWfRemoveDotSegments( $inputPath, $outputPath ) {
|
|
$this->assertEquals(
|
|
$outputPath,
|
|
wfRemoveDotSegments( $inputPath ),
|
|
"Testing $inputPath expands to $outputPath"
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Provider of URL paths for testing wfRemoveDotSegments()
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function providePaths() {
|
|
return [
|
|
[ '/a/b/c/./../../g', '/a/g' ],
|
|
[ 'mid/content=5/../6', 'mid/6' ],
|
|
[ '/a//../b', '/a/b' ],
|
|
[ '/.../a', '/.../a' ],
|
|
[ '.../a', '.../a' ],
|
|
[ '', '' ],
|
|
[ '/', '/' ],
|
|
[ '//', '//' ],
|
|
[ '.', '' ],
|
|
[ '..', '' ],
|
|
[ '...', '...' ],
|
|
[ '/.', '/' ],
|
|
[ '/..', '/' ],
|
|
[ './', '' ],
|
|
[ '../', '' ],
|
|
[ './a', 'a' ],
|
|
[ '../a', 'a' ],
|
|
[ '../../a', 'a' ],
|
|
[ '.././a', 'a' ],
|
|
[ './../a', 'a' ],
|
|
[ '././a', 'a' ],
|
|
[ '../../', '' ],
|
|
[ '.././', '' ],
|
|
[ './../', '' ],
|
|
[ '././', '' ],
|
|
[ '../..', '' ],
|
|
[ '../.', '' ],
|
|
[ './..', '' ],
|
|
[ './.', '' ],
|
|
[ '/../../a', '/a' ],
|
|
[ '/.././a', '/a' ],
|
|
[ '/./../a', '/a' ],
|
|
[ '/././a', '/a' ],
|
|
[ '/../../', '/' ],
|
|
[ '/.././', '/' ],
|
|
[ '/./../', '/' ],
|
|
[ '/././', '/' ],
|
|
[ '/../..', '/' ],
|
|
[ '/../.', '/' ],
|
|
[ '/./..', '/' ],
|
|
[ '/./.', '/' ],
|
|
[ 'b/../../a', '/a' ],
|
|
[ 'b/.././a', '/a' ],
|
|
[ 'b/./../a', '/a' ],
|
|
[ 'b/././a', 'b/a' ],
|
|
[ 'b/../../', '/' ],
|
|
[ 'b/.././', '/' ],
|
|
[ 'b/./../', '/' ],
|
|
[ 'b/././', 'b/' ],
|
|
[ 'b/../..', '/' ],
|
|
[ 'b/../.', '/' ],
|
|
[ 'b/./..', '/' ],
|
|
[ 'b/./.', 'b/' ],
|
|
[ '/b/../../a', '/a' ],
|
|
[ '/b/.././a', '/a' ],
|
|
[ '/b/./../a', '/a' ],
|
|
[ '/b/././a', '/b/a' ],
|
|
[ '/b/../../', '/' ],
|
|
[ '/b/.././', '/' ],
|
|
[ '/b/./../', '/' ],
|
|
[ '/b/././', '/b/' ],
|
|
[ '/b/../..', '/' ],
|
|
[ '/b/../.', '/' ],
|
|
[ '/b/./..', '/' ],
|
|
[ '/b/./.', '/b/' ],
|
|
];
|
|
}
|
|
}
|