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