MediaWiki  REL1_24
wfRemoveDotSegmentsTest.php
Go to the documentation of this file.
00001 <?php
00002 
00007 class WfRemoveDotSegmentsTest extends MediaWikiTestCase {
00011     public function testWfRemoveDotSegments( $inputPath, $outputPath ) {
00012         $this->assertEquals(
00013             $outputPath,
00014             wfRemoveDotSegments( $inputPath ),
00015             "Testing $inputPath expands to $outputPath"
00016         );
00017     }
00018 
00024     public static function providePaths() {
00025         return array(
00026             array( '/a/b/c/./../../g', '/a/g' ),
00027             array( 'mid/content=5/../6', 'mid/6' ),
00028             array( '/a//../b', '/a/b' ),
00029             array( '/.../a', '/.../a' ),
00030             array( '.../a', '.../a' ),
00031             array( '', '' ),
00032             array( '/', '/' ),
00033             array( '//', '//' ),
00034             array( '.', '' ),
00035             array( '..', '' ),
00036             array( '...', '...' ),
00037             array( '/.', '/' ),
00038             array( '/..', '/' ),
00039             array( './', '' ),
00040             array( '../', '' ),
00041             array( './a', 'a' ),
00042             array( '../a', 'a' ),
00043             array( '../../a', 'a' ),
00044             array( '.././a', 'a' ),
00045             array( './../a', 'a' ),
00046             array( '././a', 'a' ),
00047             array( '../../', '' ),
00048             array( '.././', '' ),
00049             array( './../', '' ),
00050             array( '././', '' ),
00051             array( '../..', '' ),
00052             array( '../.', '' ),
00053             array( './..', '' ),
00054             array( './.', '' ),
00055             array( '/../../a', '/a' ),
00056             array( '/.././a', '/a' ),
00057             array( '/./../a', '/a' ),
00058             array( '/././a', '/a' ),
00059             array( '/../../', '/' ),
00060             array( '/.././', '/' ),
00061             array( '/./../', '/' ),
00062             array( '/././', '/' ),
00063             array( '/../..', '/' ),
00064             array( '/../.', '/' ),
00065             array( '/./..', '/' ),
00066             array( '/./.', '/' ),
00067             array( 'b/../../a', '/a' ),
00068             array( 'b/.././a', '/a' ),
00069             array( 'b/./../a', '/a' ),
00070             array( 'b/././a', 'b/a' ),
00071             array( 'b/../../', '/' ),
00072             array( 'b/.././', '/' ),
00073             array( 'b/./../', '/' ),
00074             array( 'b/././', 'b/' ),
00075             array( 'b/../..', '/' ),
00076             array( 'b/../.', '/' ),
00077             array( 'b/./..', '/' ),
00078             array( 'b/./.', 'b/' ),
00079             array( '/b/../../a', '/a' ),
00080             array( '/b/.././a', '/a' ),
00081             array( '/b/./../a', '/a' ),
00082             array( '/b/././a', '/b/a' ),
00083             array( '/b/../../', '/' ),
00084             array( '/b/.././', '/' ),
00085             array( '/b/./../', '/' ),
00086             array( '/b/././', '/b/' ),
00087             array( '/b/../..', '/' ),
00088             array( '/b/../.', '/' ),
00089             array( '/b/./..', '/' ),
00090             array( '/b/./.', '/b/' ),
00091         );
00092     }
00093 }