Revert "Made LCStoreDB try to use a separate DB connection"
[lhc/web/wiklou.git] / tests / phpunit / includes / GlobalFunctions / wfRemoveDotSegmentsTest.php
1 <?php
2
3 /**
4 * @group GlobalFunctions
5 *@covers ::wfRemoveDotSegments
6 */
7 class WfRemoveDotSegmentsTest extends MediaWikiTestCase {
8 /**
9 * @dataProvider providePaths
10 */
11 public function testWfRemoveDotSegments( $inputPath, $outputPath ) {
12 $this->assertEquals(
13 $outputPath,
14 wfRemoveDotSegments( $inputPath ),
15 "Testing $inputPath expands to $outputPath"
16 );
17 }
18
19 /**
20 * Provider of URL paths for testing wfRemoveDotSegments()
21 *
22 * @return array
23 */
24 public static function providePaths() {
25 return array(
26 array( '/a/b/c/./../../g', '/a/g' ),
27 array( 'mid/content=5/../6', 'mid/6' ),
28 array( '/a//../b', '/a/b' ),
29 array( '/.../a', '/.../a' ),
30 array( '.../a', '.../a' ),
31 array( '', '' ),
32 array( '/', '/' ),
33 array( '//', '//' ),
34 array( '.', '' ),
35 array( '..', '' ),
36 array( '...', '...' ),
37 array( '/.', '/' ),
38 array( '/..', '/' ),
39 array( './', '' ),
40 array( '../', '' ),
41 array( './a', 'a' ),
42 array( '../a', 'a' ),
43 array( '../../a', 'a' ),
44 array( '.././a', 'a' ),
45 array( './../a', 'a' ),
46 array( '././a', 'a' ),
47 array( '../../', '' ),
48 array( '.././', '' ),
49 array( './../', '' ),
50 array( '././', '' ),
51 array( '../..', '' ),
52 array( '../.', '' ),
53 array( './..', '' ),
54 array( './.', '' ),
55 array( '/../../a', '/a' ),
56 array( '/.././a', '/a' ),
57 array( '/./../a', '/a' ),
58 array( '/././a', '/a' ),
59 array( '/../../', '/' ),
60 array( '/.././', '/' ),
61 array( '/./../', '/' ),
62 array( '/././', '/' ),
63 array( '/../..', '/' ),
64 array( '/../.', '/' ),
65 array( '/./..', '/' ),
66 array( '/./.', '/' ),
67 array( 'b/../../a', '/a' ),
68 array( 'b/.././a', '/a' ),
69 array( 'b/./../a', '/a' ),
70 array( 'b/././a', 'b/a' ),
71 array( 'b/../../', '/' ),
72 array( 'b/.././', '/' ),
73 array( 'b/./../', '/' ),
74 array( 'b/././', 'b/' ),
75 array( 'b/../..', '/' ),
76 array( 'b/../.', '/' ),
77 array( 'b/./..', '/' ),
78 array( 'b/./.', 'b/' ),
79 array( '/b/../../a', '/a' ),
80 array( '/b/.././a', '/a' ),
81 array( '/b/./../a', '/a' ),
82 array( '/b/././a', '/b/a' ),
83 array( '/b/../../', '/' ),
84 array( '/b/.././', '/' ),
85 array( '/b/./../', '/' ),
86 array( '/b/././', '/b/' ),
87 array( '/b/../..', '/' ),
88 array( '/b/../.', '/' ),
89 array( '/b/./..', '/' ),
90 array( '/b/./.', '/b/' ),
91 );
92 }
93 }