aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2011-08-30 01:32:11 -0400
committerNils Adermann <naderman@naderman.de>2011-09-29 16:15:53 +0200
commitea46feb11542a9cf54ce083ee0ad03f4c5e02a1e (patch)
tree0990527e0c05bd9da495a063350ec199eb2ed227 /tests
parent6ea6d50ccb9607429486a01d3144c7d32322e1b5 (diff)
downloadforums-ea46feb11542a9cf54ce083ee0ad03f4c5e02a1e.tar
forums-ea46feb11542a9cf54ce083ee0ad03f4c5e02a1e.tar.gz
forums-ea46feb11542a9cf54ce083ee0ad03f4c5e02a1e.tar.bz2
forums-ea46feb11542a9cf54ce083ee0ad03f4c5e02a1e.tar.xz
forums-ea46feb11542a9cf54ce083ee0ad03f4c5e02a1e.zip
[feature/extension-manager] Add support for templates in extensions.
This commit adds a template path provider to separate the process of locating (cached) paths in extensions from the template engine. The locator is supplied with a list of paths from the path provider. Admin templates can now be created in ext/<ext>/adm/style/ and regular templates go into ext/<ext>/styles/<style>/template/. Extension templates override regular templates. So if an extension supplies a file with a name used in phpBB, the extension's file will be used. A side-effect of this commit: Locator and Provider are now able to deal with arbitrary levels of template inheritance. So we can expose this through phpbb_template if we choose to, and allow styles to inherit from inherited styles. PHPBB3-10323
Diffstat (limited to 'tests')
-rw-r--r--tests/template/template_inheritance_test.php3
-rw-r--r--tests/template/template_test.php2
-rw-r--r--tests/template/template_test_case.php5
3 files changed, 7 insertions, 3 deletions
diff --git a/tests/template/template_inheritance_test.php b/tests/template/template_inheritance_test.php
index d62562ff0d..3b75498828 100644
--- a/tests/template/template_inheritance_test.php
+++ b/tests/template/template_inheritance_test.php
@@ -69,7 +69,8 @@ class phpbb_template_template_inheritance_test extends phpbb_template_template_t
$this->template_path = dirname(__FILE__) . '/templates';
$this->parent_template_path = dirname(__FILE__) . '/parent_templates';
$this->template_locator = new phpbb_template_locator();
- $this->template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $this->template_locator);
+ $this->template_provider = new phpbb_template_path_provider(new phpbb_mock_extension_manager(dirname(__FILE__) . '/'));
+ $this->template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $this->template_locator, $this->template_provider);
$this->template->set_custom_template($this->template_path, 'tests', $this->parent_template_path);
}
}
diff --git a/tests/template/template_test.php b/tests/template/template_test.php
index 86ff2e9ec6..35297b212d 100644
--- a/tests/template/template_test.php
+++ b/tests/template/template_test.php
@@ -277,7 +277,7 @@ class phpbb_template_template_test extends phpbb_template_template_test_case
$this->template->set_filenames(array('test' => $filename));
$this->assertFileNotExists($this->template_path . '/' . $filename, 'Testing missing file, file cannot exist');
- $expecting = sprintf('template locator: File %s does not exist', realpath($this->template_path . '/../') . '/templates/' . $filename);
+ $expecting = sprintf('template locator: File for handle test does not exist. Could not find: %s', realpath($this->template_path . '/../') . '/templates/' . $filename);
$this->setExpectedTriggerError(E_USER_ERROR, $expecting);
$this->display('test');
diff --git a/tests/template/template_test_case.php b/tests/template/template_test_case.php
index 0e1f960f61..c0944f7f5a 100644
--- a/tests/template/template_test_case.php
+++ b/tests/template/template_test_case.php
@@ -8,12 +8,14 @@
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
+require_once dirname(__FILE__) . '/../mock/extension_manager.php';
class phpbb_template_template_test_case extends phpbb_test_case
{
protected $template;
protected $template_path;
protected $template_locator;
+ protected $template_provider;
// Keep the contents of the cache for debugging?
const PRESERVE_CACHE = true;
@@ -57,7 +59,8 @@ class phpbb_template_template_test_case extends phpbb_test_case
$this->template_path = dirname(__FILE__) . '/templates';
$this->template_locator = new phpbb_template_locator();
- $this->template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $this->template_locator);
+ $this->template_provider = new phpbb_template_path_provider(new phpbb_mock_extension_manager(dirname(__FILE__) . '/'));
+ $this->template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $this->template_locator, $this->template_provider);
$this->template->set_custom_template($this->template_path, 'tests');
}