aboutsummaryrefslogtreecommitdiffstats
path: root/tests/class_loader
diff options
context:
space:
mode:
Diffstat (limited to 'tests/class_loader')
-rw-r--r--tests/class_loader/all_tests.php41
-rw-r--r--tests/class_loader/cache_mock.php29
-rw-r--r--tests/class_loader/class_loader_test.php65
-rw-r--r--tests/class_loader/includes/class_name.php6
-rw-r--r--tests/class_loader/includes/dir/class_name.php6
-rw-r--r--tests/class_loader/includes/dir/subdir/class_name.php6
6 files changed, 153 insertions, 0 deletions
diff --git a/tests/class_loader/all_tests.php b/tests/class_loader/all_tests.php
new file mode 100644
index 0000000000..451a1b02c2
--- /dev/null
+++ b/tests/class_loader/all_tests.php
@@ -0,0 +1,41 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2008 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+if (!defined('PHPUnit_MAIN_METHOD'))
+{
+ define('PHPUnit_MAIN_METHOD', 'phpbb_class_loader_all_tests::main');
+}
+
+require_once 'test_framework/framework.php';
+require_once 'PHPUnit/TextUI/TestRunner.php';
+
+require_once 'class_loader/class_loader_test.php';
+
+class phpbb_class_loader_all_tests
+{
+ public static function main()
+ {
+ PHPUnit_TextUI_TestRunner::run(self::suite());
+ }
+
+ public static function suite()
+ {
+ $suite = new PHPUnit_Framework_TestSuite('phpBB Class Loader');
+
+ $suite->addTestSuite('phpbb_class_loader_test');
+
+ return $suite;
+ }
+}
+
+if (PHPUnit_MAIN_METHOD == 'phpbb_class_loader_all_tests::main')
+{
+ phpbb_class_loader_all_tests::main();
+}
+
diff --git a/tests/class_loader/cache_mock.php b/tests/class_loader/cache_mock.php
new file mode 100644
index 0000000000..c8069fa9cc
--- /dev/null
+++ b/tests/class_loader/cache_mock.php
@@ -0,0 +1,29 @@
+<?php
+/**
+*
+* @package testing
+* @version $Id$
+* @copyright (c) 2008 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+class phpbb_cache_mock
+{
+ private $variables = array();
+
+ function get($var_name)
+ {
+ if (isset($this->variables[$var_name]))
+ {
+ return $this->variables[$var_name];
+ }
+
+ return false;
+ }
+
+ function put($var_name, $value)
+ {
+ $this->variables[$var_name] = $value;
+ }
+} \ No newline at end of file
diff --git a/tests/class_loader/class_loader_test.php b/tests/class_loader/class_loader_test.php
new file mode 100644
index 0000000000..37c11657c4
--- /dev/null
+++ b/tests/class_loader/class_loader_test.php
@@ -0,0 +1,65 @@
+<?php
+/**
+*
+* @package testing
+* @version $Id$
+* @copyright (c) 2008 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+require_once 'test_framework/framework.php';
+require_once 'class_loader/cache_mock.php';
+
+require_once '../phpBB/includes/class_loader.php';
+
+
+class phpbb_class_loader_test extends PHPUnit_Framework_TestCase
+{
+ public function test_resolve_path()
+ {
+ $prefix = 'class_loader/';
+ $class_loader = new phpbb_class_loader($prefix);
+
+ $prefix .= 'includes/';
+
+ $this->assertEquals(
+ $prefix . 'class_name.php',
+ $class_loader->resolve_path('phpbb_class_name'),
+ 'Top level class'
+ );
+ $this->assertEquals(
+ $prefix . 'dir/class_name.php',
+ $class_loader->resolve_path('phpbb_dir_class_name'),
+ 'Class in a directory'
+ );
+ $this->assertEquals(
+ $prefix . 'dir/subdir/class_name.php',
+ $class_loader->resolve_path('phpbb_dir_subdir_class_name'),
+ 'Class in a sub-directory'
+ );
+ }
+
+ public function test_resolve_cached()
+ {
+ $cache = new phpbb_cache_mock;
+ $cache->put('class_loader', array('phpbb_a_cached_name' => 'a/cached_name'));
+
+ $prefix = 'class_loader/';
+ $class_loader = new phpbb_class_loader($prefix, '.php', $cache);
+
+ $prefix .= 'includes/';
+
+ $this->assertEquals(
+ $prefix . 'dir/class_name.php',
+ $class_loader->resolve_path('phpbb_dir_class_name'),
+ 'Class in a directory'
+ );
+
+ $this->assertEquals(
+ $prefix . 'a/cached_name.php',
+ $class_loader->resolve_path('phpbb_a_cached_name'),
+ 'Class in a directory'
+ );
+ }
+}
diff --git a/tests/class_loader/includes/class_name.php b/tests/class_loader/includes/class_name.php
new file mode 100644
index 0000000000..e941173cdd
--- /dev/null
+++ b/tests/class_loader/includes/class_name.php
@@ -0,0 +1,6 @@
+<?php
+
+class phpbb_class_name
+{
+}
+
diff --git a/tests/class_loader/includes/dir/class_name.php b/tests/class_loader/includes/dir/class_name.php
new file mode 100644
index 0000000000..0675aa8fc5
--- /dev/null
+++ b/tests/class_loader/includes/dir/class_name.php
@@ -0,0 +1,6 @@
+<?php
+
+class phpbb_dir_class_name
+{
+}
+
diff --git a/tests/class_loader/includes/dir/subdir/class_name.php b/tests/class_loader/includes/dir/subdir/class_name.php
new file mode 100644
index 0000000000..7321a609cc
--- /dev/null
+++ b/tests/class_loader/includes/dir/subdir/class_name.php
@@ -0,0 +1,6 @@
+<?php
+
+class phpbb_dir_subdir_class_name
+{
+}
+