diff options
-rw-r--r-- | phpBB/includes/class_loader.php | 2 | ||||
-rw-r--r-- | tests/class_loader/class_loader_test.php | 6 | ||||
-rw-r--r-- | tests/class_loader/includes/dir.php | 6 |
3 files changed, 13 insertions, 1 deletions
diff --git a/phpBB/includes/class_loader.php b/phpBB/includes/class_loader.php index c70351b437..5df654799a 100644 --- a/phpBB/includes/class_loader.php +++ b/phpBB/includes/class_loader.php @@ -115,7 +115,7 @@ class phpbb_class_loader $dirs = ''; - for ($i = 0; is_dir($path_prefix . $dirs . $parts[$i]) && $i < sizeof($parts); $i++) + for ($i = 0, $n = sizeof($parts); $i < $n && is_dir($path_prefix . $dirs . $parts[$i]); $i++) { $dirs .= $parts[$i] . '/'; } diff --git a/tests/class_loader/class_loader_test.php b/tests/class_loader/class_loader_test.php index 37c11657c4..e53507ded3 100644 --- a/tests/class_loader/class_loader_test.php +++ b/tests/class_loader/class_loader_test.php @@ -24,6 +24,12 @@ class phpbb_class_loader_test extends PHPUnit_Framework_TestCase $prefix .= 'includes/'; $this->assertEquals( + '', + $class_loader->resolve_path('phpbb_dir'), + 'Class with same name as a directory is unloadable' + ); + + $this->assertEquals( $prefix . 'class_name.php', $class_loader->resolve_path('phpbb_class_name'), 'Top level class' diff --git a/tests/class_loader/includes/dir.php b/tests/class_loader/includes/dir.php new file mode 100644 index 0000000000..1c8930d8e7 --- /dev/null +++ b/tests/class_loader/includes/dir.php @@ -0,0 +1,6 @@ +<?php + +class phpbb_dir +{ +} + |