[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/_test/tests/inc/ -> init_fullpath.test.php (source)

   1  <?php
   2  
   3  class init_fullpath_test extends DokuWikiTest {
   4  
   5      function test_unix_paths(){
   6          $base = $_SERVER['SCRIPT_FILENAME'];
   7          $_SERVER['SCRIPT_FILENAME'] = '/absolute/path/self.php';
   8          $GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS'] = false;
   9  
  10          // paths to check
  11          $tests = array(
  12                          '/foo/bar/baz' => '/foo/bar/baz',
  13                          '/foo//bar/baz' => '/foo/bar/baz',
  14                          '/foo/../bar/baz' => '/bar/baz',
  15                          '/foo/./bar/baz' => '/foo/bar/baz',
  16                          '/foo/bar/..' => '/foo',
  17                          '/foo/bar/../../../baz' => '/baz',
  18                          '/foo/bar//baz' => '/foo/bar/baz',
  19  
  20                          'foo/bar/baz' => '/absolute/path/foo/bar/baz',
  21                          'foo//bar/baz' => '/absolute/path/foo/bar/baz',
  22                          'foo/../bar/baz' => '/absolute/path/bar/baz',
  23                          'foo/./bar/baz' => '/absolute/path/foo/bar/baz',
  24                          'foo/bar/..' => '/absolute/path/foo',
  25                          'foo/bar/../../../baz' => '/absolute/baz',
  26                        );
  27  
  28          foreach($tests as $from => $to){
  29              $info = "Testing '$from' resulted in '".fullpath($from)."'";
  30  
  31              $this->assertEquals(fullpath($from), $to, $info);
  32          }
  33  
  34  
  35          $_SERVER['SCRIPT_FILENAME'] = $base;
  36          unset($GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS']);
  37      }
  38  
  39      function test_windows_paths(){
  40          $base = $_SERVER['SCRIPT_FILENAME'];
  41          $_SERVER['SCRIPT_FILENAME'] = '/absolute/path/self.php';
  42          $GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS'] = true;
  43  
  44          // paths to check
  45          $tests = array(
  46                          'c:foo/bar/baz' => 'c:/foo/bar/baz',
  47                          'c:foo//bar/baz' => 'c:/foo/bar/baz',
  48                          'c:foo/../bar/baz' => 'c:/bar/baz',
  49                          'c:foo/./bar/baz' => 'c:/foo/bar/baz',
  50                          'c:foo/bar/..' => 'c:/foo',
  51                          'c:foo/bar/../../../baz' => 'c:/baz',
  52                          'c:foo/bar//baz' => 'c:/foo/bar/baz',
  53  
  54                          'c:/foo/bar/baz' => 'c:/foo/bar/baz',
  55                          'c:/foo//bar/baz' => 'c:/foo/bar/baz',
  56                          'c:/foo/../bar/baz' => 'c:/bar/baz',
  57                          'c:/foo/./bar/baz' => 'c:/foo/bar/baz',
  58                          'c:/foo/bar/..' => 'c:/foo',
  59                          'c:/foo/bar/../../../baz' => 'c:/baz',
  60  
  61                          'c:\\foo\\bar\\baz' => 'c:/foo/bar/baz',
  62                          'c:\\foo\\\\bar\\baz' => 'c:/foo/bar/baz',
  63                          'c:\\foo\\..\\bar\\baz' => 'c:/bar/baz',
  64                          'c:\\foo\\.\\bar\\baz' => 'c:/foo/bar/baz',
  65                          'c:\\foo\\bar\\..' => 'c:/foo',
  66                          'c:\\foo\\bar\\..\\..\\..\\baz' => 'c:/baz',
  67                          'c:\\foo\\bar\\\\baz' => 'c:/foo/bar/baz',
  68  
  69                          '\\\\server\\share/foo/bar/baz' => '\\\\server\\share/foo/bar/baz',
  70                          '\\\\server\\share/foo//bar/baz' => '\\\\server\\share/foo/bar/baz',
  71                          '\\\\server\\share/foo/../bar/baz' => '\\\\server\\share/bar/baz',
  72                          '\\\\server\\share/foo/./bar/baz' => '\\\\server\\share/foo/bar/baz',
  73                          '\\\\server\\share/foo/bar/..' => '\\\\server\\share/foo',
  74                          '\\\\server\\share/foo/bar/../../../baz' => '\\\\server\\share/baz',
  75                        );
  76  
  77          foreach($tests as $from => $to){
  78              $info = "Testing '$from' resulted in '".fullpath($from)."'";
  79  
  80              $this->assertEquals(fullpath($from), $to, $info);
  81          }
  82  
  83  
  84          $_SERVER['SCRIPT_FILENAME'] = $base;
  85          unset($GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS']);
  86      }
  87  
  88  }
  89  //Setup VIM: ex: et ts=4 :