aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2013-05-16 17:30:23 +0200
committerJoas Schilling <nickvergessen@gmx.de>2013-05-16 17:30:23 +0200
commit38dbfc17a782f72737451103b8e4067f152bd0b7 (patch)
tree58e37c6389af462780750709b316373a6b949a23
parentc6de880cdbf2f7440acb31446a9001762f9d8d16 (diff)
downloadforums-38dbfc17a782f72737451103b8e4067f152bd0b7.tar
forums-38dbfc17a782f72737451103b8e4067f152bd0b7.tar.gz
forums-38dbfc17a782f72737451103b8e4067f152bd0b7.tar.bz2
forums-38dbfc17a782f72737451103b8e4067f152bd0b7.tar.xz
forums-38dbfc17a782f72737451103b8e4067f152bd0b7.zip
[ticket/11545] Remove DIRECTORY_SEPARATOR dependency from is_absolute
The given path is an absolute path in general, just not on our current system. PHPBB3-11545
-rw-r--r--phpBB/includes/functions.php2
-rw-r--r--tests/functions/is_absolute_test.php29
2 files changed, 26 insertions, 5 deletions
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 4b144a20a1..b2b12c1445 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -1005,7 +1005,7 @@ if (!function_exists('stripos'))
*/
function is_absolute($path)
{
- return (isset($path[0]) && $path[0] == '/' || (DIRECTORY_SEPARATOR == '\\' && preg_match('#^[a-z]:[/\\\]#i', $path))) ? true : false;
+ return (isset($path[0]) && $path[0] == '/' || preg_match('#^[a-z]:[/\\\]#i', $path)) ? true : false;
}
/**
diff --git a/tests/functions/is_absolute_test.php b/tests/functions/is_absolute_test.php
index 5d70b6c2a3..7630b7c58c 100644
--- a/tests/functions/is_absolute_test.php
+++ b/tests/functions/is_absolute_test.php
@@ -14,14 +14,35 @@ class phpbb_functions_is_absolute_test extends phpbb_test_case
static public function is_absolute_data()
{
return array(
+ // Empty
array('', false),
+
+ // Absolute unix style
array('/etc/phpbb', true),
+ // Unix does not support \ so that is not an absolute path
+ array('\etc\phpbb', false),
+
+ // Absolute windows style
+ array('c:\windows', true),
+ array('C:\Windows', true),
+ array('c:/windows', true),
+ array('C:/Windows', true),
+
+ // Executable
array('etc/phpbb', false),
+ array('explorer.exe', false),
+
+ // Relative subdir
+ array('Windows\System32', false),
+ array('Windows\System32\explorer.exe', false),
+ array('Windows/System32', false),
+ array('Windows/System32/explorer.exe', false),
- // Until we got DIRECTORY_SEPARATOR replaced in that function,
- // test results vary on OS.
- array('c:\windows', DIRECTORY_SEPARATOR == '\\'),
- array('C:\Windows', DIRECTORY_SEPARATOR == '\\'),
+ // Relative updir
+ array('..\Windows\System32', false),
+ array('..\Windows\System32\explorer.exe', false),
+ array('../Windows/System32', false),
+ array('../Windows/System32/explorer.exe', false),
);
}