diff options
author | Nils Adermann <naderman@naderman.de> | 2013-04-24 09:45:34 -0700 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2013-04-24 09:45:34 -0700 |
commit | 3e32655c7f22ce9aff7bafdbab6d556879b5fcf9 (patch) | |
tree | 20853ed2664b6e28d5a2f42ee94ab8418b689629 /tests/filesystem/clean_path_test.php | |
parent | ab628cbdb99eda1c3efbbca7e374f64876800428 (diff) | |
parent | 16e70fa08610227d96e149eba2019803ad37c85f (diff) | |
download | forums-3e32655c7f22ce9aff7bafdbab6d556879b5fcf9.tar forums-3e32655c7f22ce9aff7bafdbab6d556879b5fcf9.tar.gz forums-3e32655c7f22ce9aff7bafdbab6d556879b5fcf9.tar.bz2 forums-3e32655c7f22ce9aff7bafdbab6d556879b5fcf9.tar.xz forums-3e32655c7f22ce9aff7bafdbab6d556879b5fcf9.zip |
Merge pull request #1290 from nickvergessen/ticket/11362
Correctly sanitise the directory path in finder
Diffstat (limited to 'tests/filesystem/clean_path_test.php')
-rw-r--r-- | tests/filesystem/clean_path_test.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/filesystem/clean_path_test.php b/tests/filesystem/clean_path_test.php new file mode 100644 index 0000000000..50951fc88c --- /dev/null +++ b/tests/filesystem/clean_path_test.php @@ -0,0 +1,48 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2012 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +class phpbb_filesystem_clean_path_test extends phpbb_test_case +{ + protected $filesystem; + + public function setUp() + { + parent::setUp(); + $this->filesystem = new phpbb_filesystem(); + } + + public function clean_path_data() + { + return array( + array('foo', 'foo'), + array('foo/bar', 'foo/bar'), + array('foo/bar/', 'foo/bar/'), + array('foo/./bar', 'foo/bar'), + array('foo/./././bar', 'foo/bar'), + array('foo/bar/.', 'foo/bar'), + array('./foo/bar', './foo/bar'), + array('../foo/bar', '../foo/bar'), + array('one/two/three', 'one/two/three'), + array('one/two/../three', 'one/three'), + array('one/../two/three', 'two/three'), + array('one/two/..', 'one'), + array('one/two/../', 'one/'), + array('one/two/../three/../four', 'one/four'), + array('one/two/three/../../four', 'one/four'), + ); + } + + /** + * @dataProvider clean_path_data + */ + public function test_clean_path($input, $expected) + { + $this->assertEquals($expected, $this->filesystem->clean_path($input)); + } +} |