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