MediaWiki
REL1_22
|
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 }