mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
[ticket/11832] More extensive testing
PHPBB3-11832
This commit is contained in:
parent
c46637990e
commit
3a4efa7959
2 changed files with 49 additions and 12 deletions
|
@ -26,6 +26,9 @@ class phpbb_filesystem
|
||||||
/** @var string */
|
/** @var string */
|
||||||
protected $phpbb_root_path;
|
protected $phpbb_root_path;
|
||||||
|
|
||||||
|
/** @var string */
|
||||||
|
protected $web_root_path;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
|
@ -82,16 +85,15 @@ class phpbb_filesystem
|
||||||
return $this->phpbb_root_path;
|
return $this->phpbb_root_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
static $path;
|
if (null !== $this->web_root_path)
|
||||||
if (null !== $path)
|
|
||||||
{
|
{
|
||||||
return $path;
|
return $this->web_root_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
$path_info = $symfony_request->getPathInfo();
|
$path_info = $symfony_request->getPathInfo();
|
||||||
if ($path_info === '/')
|
if ($path_info === '/')
|
||||||
{
|
{
|
||||||
return $path = $this->phpbb_root_path;
|
return $this->web_root_path = $this->phpbb_root_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
$path_info = $this->clean_path($path_info);
|
$path_info = $this->clean_path($path_info);
|
||||||
|
@ -106,7 +108,7 @@ class phpbb_filesystem
|
||||||
$corrections -= 1;
|
$corrections -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $path = $this->phpbb_root_path . str_repeat('../', $corrections);
|
return $this->web_root_path = $this->phpbb_root_path . str_repeat('../', $corrections);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -18,9 +18,7 @@ class phpbb_filesystem_web_root_path_test extends phpbb_test_case
|
||||||
|
|
||||||
$this->set_phpbb_root_path();
|
$this->set_phpbb_root_path();
|
||||||
|
|
||||||
global $phpbb_filesystem;
|
$this->filesystem = new phpbb_filesystem($this->phpbb_root_path);
|
||||||
|
|
||||||
$phpbb_filesystem = $this->filesystem = new phpbb_filesystem($this->phpbb_root_path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -49,7 +47,6 @@ class phpbb_filesystem_web_root_path_test extends phpbb_test_case
|
||||||
return array(
|
return array(
|
||||||
array(
|
array(
|
||||||
$this->phpbb_root_path . 'test.php',
|
$this->phpbb_root_path . 'test.php',
|
||||||
$this->phpbb_root_path . 'test.php',
|
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'test.php',
|
'test.php',
|
||||||
|
@ -57,7 +54,28 @@ class phpbb_filesystem_web_root_path_test extends phpbb_test_case
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
$this->phpbb_root_path . $this->phpbb_root_path . 'test.php',
|
$this->phpbb_root_path . $this->phpbb_root_path . 'test.php',
|
||||||
$this->phpbb_root_path . $this->phpbb_root_path . 'test.php',
|
),
|
||||||
|
array(
|
||||||
|
$this->phpbb_root_path . 'test.php',
|
||||||
|
$this->phpbb_root_path . 'test.php',
|
||||||
|
'/',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
$this->phpbb_root_path . 'test.php',
|
||||||
|
$this->phpbb_root_path . 'test.php',
|
||||||
|
'//',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
$this->phpbb_root_path . 'test.php',
|
||||||
|
$this->phpbb_root_path . '../test.php',
|
||||||
|
'//',
|
||||||
|
'foo/bar.php',
|
||||||
|
'bar.php',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
$this->phpbb_root_path . 'test.php',
|
||||||
|
$this->phpbb_root_path . '../../test.php',
|
||||||
|
'////',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -65,8 +83,25 @@ class phpbb_filesystem_web_root_path_test extends phpbb_test_case
|
||||||
/**
|
/**
|
||||||
* @dataProvider update_web_root_path_data
|
* @dataProvider update_web_root_path_data
|
||||||
*/
|
*/
|
||||||
public function test_update_web_root_path($input, $expected)
|
public function test_update_web_root_path($input, $expected = null, $getPathInfo = null, $getRequestUri = null, $getScriptName = null)
|
||||||
{
|
{
|
||||||
$this->assertEquals($expected, $this->filesystem->update_web_root_path($input));
|
$expected = ($expected === null) ? $input : $expected;
|
||||||
|
|
||||||
|
$symfony_request = null;
|
||||||
|
if ($getPathInfo !== null)
|
||||||
|
{
|
||||||
|
$symfony_request = $this->getMock("Symfony\Component\HttpFoundation\Request");
|
||||||
|
$symfony_request->expects($this->any())
|
||||||
|
->method('getPathInfo')
|
||||||
|
->will($this->returnValue($getPathInfo));
|
||||||
|
$symfony_request->expects($this->any())
|
||||||
|
->method('getRequestUri')
|
||||||
|
->will($this->returnValue($getRequestUri));
|
||||||
|
$symfony_request->expects($this->any())
|
||||||
|
->method('getScriptName')
|
||||||
|
->will($this->returnValue($getScriptName));
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->assertEquals($expected, $this->filesystem->update_web_root_path($input, $symfony_request));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue