aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_framework/phpbb_test_case_helpers.php
diff options
context:
space:
mode:
authorDhruv <dhruv.goel92@gmail.com>2013-06-13 22:00:12 +0530
committerDhruv <dhruv.goel92@gmail.com>2013-06-13 22:00:12 +0530
commite8b535bf9beda58ea8f75071ed31934534849cb1 (patch)
tree36de3a5c8f46dda54d593593f71cb221cd9085ec /tests/test_framework/phpbb_test_case_helpers.php
parentabd299b0a98be01499b31eb6901aca73d8c2b192 (diff)
parent6298cce464ea2035c107549dfed9bfcb2f985f9c (diff)
downloadforums-e8b535bf9beda58ea8f75071ed31934534849cb1.tar
forums-e8b535bf9beda58ea8f75071ed31934534849cb1.tar.gz
forums-e8b535bf9beda58ea8f75071ed31934534849cb1.tar.bz2
forums-e8b535bf9beda58ea8f75071ed31934534849cb1.tar.xz
forums-e8b535bf9beda58ea8f75071ed31934534849cb1.zip
Merge branch 'develop' into ticket/10820-develop
# By Joas Schilling (146) and others # Via Andreas Fischer (50) and others * develop: (356 commits) [ticket/11599] Copy the forums into a static array for later reuse [ticket/11602] Do not call localize_errors() if avatars are disabled [ticket/11601] Add protected method for database sync and call it [ticket/11601] Split post_setup_synchronisation logic from xml parsing [ticket/11550] Specify a valid path so it's clearer that it must be a path [ticket/11550] Move comments to correct function [ticket/11550] We use a different fixture set for extension_acp_test.php [ticket/11550] Fixtures should only be directories not files [ticket/11550] Use new functionality from the test case helpers [ticket/11550] Move functionality for copying/restoring to test case helpers [ticket/11550] Fix copying the fixtures in extension_permission_lang_test.php [ticket/11543] Add more users so #hidden <> #normal [ticket/11590] Close database connections when tearDown() is called [ticket/develop/11543] Use plurals in develop [ticket/11543] Use correct IP addresses and inject time for correct values [ticket/11543] Add unit tests for obtain_users_online_string() [ticket/11543] Add unit tests for obtain_users_online() with empty forum [ticket/11543] Add unit tests for obtain_users_online() [ticket/11543] Add unit tests for obtain_guest_count() [ticket/11481] Move prepended slash from calls into function ...
Diffstat (limited to 'tests/test_framework/phpbb_test_case_helpers.php')
-rw-r--r--tests/test_framework/phpbb_test_case_helpers.php52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/test_framework/phpbb_test_case_helpers.php b/tests/test_framework/phpbb_test_case_helpers.php
index 20ae384f21..1b08f2368f 100644
--- a/tests/test_framework/phpbb_test_case_helpers.php
+++ b/tests/test_framework/phpbb_test_case_helpers.php
@@ -18,6 +18,58 @@ class phpbb_test_case_helpers
$this->test_case = $test_case;
}
+ private $copied_files = array();
+
+ /**
+ * This should only be called once before the tests are run.
+ * This is used to copy the fixtures to the phpBB install
+ */
+ public function copy_ext_fixtures($fixtures_dir, $fixtures)
+ {
+ global $phpbb_root_path;
+
+ $this->copied_files = array();
+
+ if (file_exists($phpbb_root_path . 'ext/'))
+ {
+ // First, move any extensions setup on the board to a temp directory
+ $this->copied_files = $this->copy_dir($phpbb_root_path . 'ext/', $phpbb_root_path . 'store/temp_ext/');
+
+ // Then empty the ext/ directory on the board (for accurate test cases)
+ $this->empty_dir($phpbb_root_path . 'ext/');
+ }
+
+ // Copy our ext/ files from the test case to the board
+ foreach ($fixtures as $fixture)
+ {
+ $this->copied_files = array_merge($this->copied_files, $this->copy_dir($fixtures_dir . $fixture, $phpbb_root_path . 'ext/' . $fixture));
+ }
+ }
+
+ /**
+ * This should only be called once after the tests are run.
+ * This is used to remove the fixtures from the phpBB install
+ */
+ public function restore_original_ext_dir()
+ {
+ global $phpbb_root_path;
+
+ // Copy back the board installed extensions from the temp directory
+ if (file_exists($phpbb_root_path . 'store/temp_ext/'))
+ {
+ $this->copy_dir($phpbb_root_path . 'store/temp_ext/', $phpbb_root_path . 'ext/');
+ }
+
+ // Remove all of the files we copied around (from board ext -> temp_ext, from test ext -> board ext)
+ $this->remove_files($this->copied_files);
+ $this->copied_files = array();
+
+ if (file_exists($phpbb_root_path . 'store/temp_ext/'))
+ {
+ $this->empty_dir($phpbb_root_path . 'store/temp_ext/');
+ }
+ }
+
public function setExpectedTriggerError($errno, $message = '')
{
$exceptionName = '';