aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRubén Calvo <rubencm@gmail.com>2017-10-23 17:02:05 +0200
committerRubén Calvo <rubencm@gmail.com>2018-05-16 23:27:56 +0200
commit01a8487244d924f3715e11742909318ae2a959c2 (patch)
treee50e9eeb749e0b0d92a702423def7c725743f547
parent[ticket/15311] Use stream_copy_to_stream (diff)
downloadphpbb-01a8487244d924f3715e11742909318ae2a959c2.tar.gz
phpbb-01a8487244d924f3715e11742909318ae2a959c2.tar.bz2
phpbb-01a8487244d924f3715e11742909318ae2a959c2.zip
[ticket/15311] Use cache directory if can't use system temp
PHPBB3-15311
-rw-r--r--phpBB/config/default/container/services_db.yml5
-rw-r--r--phpBB/config/default/container/services_files.yml2
-rw-r--r--phpBB/config/default/container/services_filesystem.yml5
-rw-r--r--phpBB/includes/acp/acp_database.php14
-rw-r--r--phpBB/includes/functions_compress.php4
-rw-r--r--phpBB/phpbb/cache/driver/file.php2
-rw-r--r--phpBB/phpbb/composer/installer.php2
-rw-r--r--phpBB/phpbb/db/extractor/base_extractor.php9
-rw-r--r--phpBB/phpbb/files/types/remote.php16
-rw-r--r--phpBB/phpbb/files/types/remote_storage.php16
-rw-r--r--phpBB/phpbb/filesystem/filesystem.php42
-rw-r--r--tests/attachment/upload_test.php2
-rw-r--r--tests/avatar/manager_test.php2
-rw-r--r--tests/console/thumbnail_test.php2
-rw-r--r--tests/controller/common_helper_route.php2
-rw-r--r--tests/dbal/connect_test.php2
-rw-r--r--tests/email/email_parsing_test.php2
-rw-r--r--tests/error_collector_test.php2
-rw-r--r--tests/extension/metadata_manager_test.php2
-rw-r--r--tests/feed/attachments_base_test.php2
-rw-r--r--tests/files/types_base_test.php2
-rw-r--r--tests/files/types_form_test.php2
-rw-r--r--tests/files/types_local_test.php2
-rw-r--r--tests/files/types_remote_test.php11
-rw-r--r--tests/files/upload_test.php2
-rw-r--r--tests/filesystem/clean_path_test.php2
-rw-r--r--tests/filesystem/is_absolute_test.php2
-rw-r--r--tests/filesystem/realpath_test.php4
-rw-r--r--tests/functional/fileupload_remote_test.php4
-rw-r--r--tests/installer/database_helper_test.php2
-rw-r--r--tests/installer/module_base_test.php2
-rw-r--r--tests/mock/extension_manager.php2
-rw-r--r--tests/security/base.php2
-rw-r--r--tests/session/check_ban_test.php2
-rw-r--r--tests/session/extract_page_test.php2
-rw-r--r--tests/storage/adapter/local_test.php2
-rw-r--r--tests/template/asset_test.php2
-rw-r--r--tests/template/template_allfolder_test.php2
-rw-r--r--tests/template/template_events_test.php2
-rw-r--r--tests/template/template_includecss_test.php2
-rw-r--r--tests/template/template_test_case.php4
-rw-r--r--tests/template/template_test_case_with_tree.php2
-rw-r--r--tests/test_framework/phpbb_database_test_connection_manager.php2
-rw-r--r--tests/upload/filespec_test.php2
-rw-r--r--tests/upload/fileupload_test.php2
-rw-r--r--tests/viewonline/helper_test.php2
46 files changed, 145 insertions, 57 deletions
diff --git a/phpBB/config/default/container/services_db.yml b/phpBB/config/default/container/services_db.yml
index c368a6f464..b52b29e20f 100644
--- a/phpBB/config/default/container/services_db.yml
+++ b/phpBB/config/default/container/services_db.yml
@@ -34,6 +34,7 @@ services:
class: phpbb\db\extractor\mssql_extractor
shared: false
arguments:
+ - '@filesystem'
- '@request'
- '@dbal.conn.driver'
@@ -41,6 +42,7 @@ services:
class: phpbb\db\extractor\mysql_extractor
shared: false
arguments:
+ - '@filesystem'
- '@request'
- '@dbal.conn.driver'
@@ -48,6 +50,7 @@ services:
class: phpbb\db\extractor\oracle_extractor
shared: false
arguments:
+ - '@filesystem'
- '@request'
- '@dbal.conn.driver'
@@ -55,6 +58,7 @@ services:
class: phpbb\db\extractor\postgres_extractor
shared: false
arguments:
+ - '@filesystem'
- '@request'
- '@dbal.conn.driver'
@@ -62,5 +66,6 @@ services:
class: phpbb\db\extractor\sqlite3_extractor
shared: false
arguments:
+ - '@filesystem'
- '@request'
- '@dbal.conn.driver'
diff --git a/phpBB/config/default/container/services_files.yml b/phpBB/config/default/container/services_files.yml
index 96682d6713..b5310c8c6e 100644
--- a/phpBB/config/default/container/services_files.yml
+++ b/phpBB/config/default/container/services_files.yml
@@ -71,6 +71,7 @@ services:
arguments:
- '@config'
- '@files.factory'
+ - '@filesystem'
- '@language'
- '@php_ini'
- '@request'
@@ -82,6 +83,7 @@ services:
arguments:
- '@config'
- '@files.factory'
+ - '@filesystem'
- '@language'
- '@php_ini'
- '@request'
diff --git a/phpBB/config/default/container/services_filesystem.yml b/phpBB/config/default/container/services_filesystem.yml
index 828f9076dd..36025755fd 100644
--- a/phpBB/config/default/container/services_filesystem.yml
+++ b/phpBB/config/default/container/services_filesystem.yml
@@ -1,3 +1,8 @@
+parameters:
+ core.filesystem.cache_temp_dir: '%core.cache_dir%tmp/'
+
services:
filesystem:
class: phpbb\filesystem\filesystem
+ arguments:
+ - '%core.filesystem.cache_temp_dir%'
diff --git a/phpBB/includes/acp/acp_database.php b/phpBB/includes/acp/acp_database.php
index 62b6b2ed07..d345d4075e 100644
--- a/phpBB/includes/acp/acp_database.php
+++ b/phpBB/includes/acp/acp_database.php
@@ -21,8 +21,9 @@ if (!defined('IN_PHPBB'))
class acp_database
{
- var $db_tools;
- var $u_action;
+ protected $db_tools;
+ protected $filesystem;
+ public $u_action;
function main($id, $mode)
{
@@ -30,6 +31,7 @@ class acp_database
global $phpbb_root_path, $phpbb_container, $phpbb_log, $table_prefix;
$this->db_tools = $phpbb_container->get('dbal.tools');
+ $this->filesystem = $phpbb_container->get('filesystem');
$storage = $phpbb_container->get('storage.backup');
$user->add_lang('acp/database');
@@ -172,7 +174,9 @@ class acp_database
$file = $filename . $ext;
// Copy to storage using streams
- $fp = fopen(sys_get_temp_dir() . '/' . $file, 'rb');
+ $temp_dir = $this->filesystem->get_temp_dir();
+
+ $fp = fopen($temp_dir . '/' . $file, 'rb');
if ($fp === false)
{
@@ -184,7 +188,7 @@ class acp_database
fclose($fp);
// Remove file from tmp
- @unlink(sys_get_temp_dir() . '/' . $file);
+ @unlink($temp_dir . '/' . $file);
// Save to database
$sql = "INSERT INTO " . $table_prefix . "backups (filename)
@@ -343,7 +347,7 @@ class acp_database
}
// Copy file to temp folder to decompress it
- $temp_file_name = sys_get_temp_dir() . '/' . $file_name;
+ $temp_file_name = $this->filesystem->get_temp_dir() . '/' . $file_name;
try
{
diff --git a/phpBB/includes/functions_compress.php b/phpBB/includes/functions_compress.php
index 77e03ee449..2b0f4181b3 100644
--- a/phpBB/includes/functions_compress.php
+++ b/phpBB/includes/functions_compress.php
@@ -215,7 +215,7 @@ class compress_zip extends compress
global $phpbb_filesystem;
$this->fp = @fopen($file, $mode . 'b');
- $this->filesystem = ($phpbb_filesystem instanceof \phpbb\filesystem\filesystem_interface) ? $phpbb_filesystem : new \phpbb\filesystem\filesystem();
+ $this->filesystem = ($phpbb_filesystem instanceof \phpbb\filesystem\filesystem_interface) ? $phpbb_filesystem : new \phpbb\filesystem\filesystem('');
if (!$this->fp)
{
@@ -582,7 +582,7 @@ class compress_tar extends compress
$this->type = &$type;
$this->open();
- $this->filesystem = ($phpbb_filesystem instanceof \phpbb\filesystem\filesystem_interface) ? $phpbb_filesystem : new \phpbb\filesystem\filesystem();
+ $this->filesystem = ($phpbb_filesystem instanceof \phpbb\filesystem\filesystem_interface) ? $phpbb_filesystem : new \phpbb\filesystem\filesystem('');
}
/**
diff --git a/phpBB/phpbb/cache/driver/file.php b/phpBB/phpbb/cache/driver/file.php
index de6f444251..2e9018ca19 100644
--- a/phpBB/phpbb/cache/driver/file.php
+++ b/phpBB/phpbb/cache/driver/file.php
@@ -35,7 +35,7 @@ class file extends \phpbb\cache\driver\base
global $phpbb_container;
$this->cache_dir = !is_null($cache_dir) ? $cache_dir : $phpbb_container->getParameter('core.cache_dir');
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
if (!is_dir($this->cache_dir))
{
diff --git a/phpBB/phpbb/composer/installer.php b/phpBB/phpbb/composer/installer.php
index 3a03e29ef5..5038cc7cb8 100644
--- a/phpBB/phpbb/composer/installer.php
+++ b/phpBB/phpbb/composer/installer.php
@@ -402,7 +402,7 @@ class installer
*/
public function check_requirements()
{
- $filesystem = new \phpbb\filesystem\filesystem();
+ $filesystem = new \phpbb\filesystem\filesystem('');
return $filesystem->is_writable([
$this->root_path . $this->composer_filename,
diff --git a/phpBB/phpbb/db/extractor/base_extractor.php b/phpBB/phpbb/db/extractor/base_extractor.php
index 2803b89357..1c49b5b70a 100644
--- a/phpBB/phpbb/db/extractor/base_extractor.php
+++ b/phpBB/phpbb/db/extractor/base_extractor.php
@@ -21,6 +21,10 @@ use phpbb\db\extractor\exception\extractor_not_initialized_exception;
*/
abstract class base_extractor implements extractor_interface
{
+ /**
+ * @var \phpbb\filesystem\filesystem
+ */
+ protected $filesystem;
/**
* @var \phpbb\request\request_interface
@@ -83,8 +87,9 @@ abstract class base_extractor implements extractor_interface
* @param \phpbb\request\request_interface $request
* @param \phpbb\db\driver\driver_interface $db
*/
- public function __construct(\phpbb\request\request_interface $request, \phpbb\db\driver\driver_interface $db)
+ public function __construct(\phpbb\filesystem\filesystem $filesystem, \phpbb\request\request_interface $request, \phpbb\db\driver\driver_interface $db)
{
+ $this->filesystem = $filesystem;
$this->request = $request;
$this->db = $db;
$this->fp = null;
@@ -158,7 +163,7 @@ abstract class base_extractor implements extractor_interface
if ($store === true)
{
- $file = sys_get_temp_dir() . '/' . $filename . $ext;
+ $file = $this->filesystem->get_temp_dir() . '/' . $filename . $ext;
$this->fp = $open($file, 'w');
diff --git a/phpBB/phpbb/files/types/remote.php b/phpBB/phpbb/files/types/remote.php
index e64e360b6a..b32b06adce 100644
--- a/phpBB/phpbb/files/types/remote.php
+++ b/phpBB/phpbb/files/types/remote.php
@@ -17,6 +17,7 @@ use bantu\IniGetWrapper\IniGetWrapper;
use phpbb\config\config;
use phpbb\files\factory;
use phpbb\files\filespec;
+use phpbb\filesystem\filesystem;
use phpbb\language\language;
use phpbb\request\request_interface;
@@ -28,6 +29,15 @@ class remote extends base
/** @var factory Files factory */
protected $factory;
+ /** @var filesystem Filesystem */
+ protected $filesystem;
+
+ /** @var language */
+ protected $language;
+
+ /** @var IniGetWrapper */
+ protected $php_ini;
+
/** @var request_interface */
protected $request;
@@ -39,15 +49,17 @@ class remote extends base
*
* @param config $config phpBB config
* @param factory $factory Files factory
+ * @param filesystem $filesystem Filesystem
* @param language $language Language class
* @param IniGetWrapper $php_ini ini_get() wrapper
* @param request_interface $request Request object
* @param string $phpbb_root_path phpBB root path
*/
- public function __construct(config $config, factory $factory, language $language, IniGetWrapper $php_ini, request_interface $request, $phpbb_root_path)
+ public function __construct(config $config, factory $factory, filesystem $filesystem, language $language, IniGetWrapper $php_ini, request_interface $request, $phpbb_root_path)
{
$this->config = $config;
$this->factory = $factory;
+ $this->filesystem = $filesystem;
$this->language = $language;
$this->php_ini = $php_ini;
$this->request = $request;
@@ -139,7 +151,7 @@ class remote extends base
$data = $response->getBody();
- $filename = tempnam(sys_get_temp_dir(), unique_id() . '-');
+ $filename = tempnam($this->filesystem->get_temp_dir(), unique_id() . '-');
if (!($fp = @fopen($filename, 'wb')))
{
diff --git a/phpBB/phpbb/files/types/remote_storage.php b/phpBB/phpbb/files/types/remote_storage.php
index 3e6953703e..54960b477e 100644
--- a/phpBB/phpbb/files/types/remote_storage.php
+++ b/phpBB/phpbb/files/types/remote_storage.php
@@ -17,6 +17,7 @@ use bantu\IniGetWrapper\IniGetWrapper;
use phpbb\config\config;
use phpbb\files\factory;
use phpbb\files\filespec;
+use phpbb\filesystem\filesystem;
use phpbb\language\language;
use phpbb\request\request_interface;
@@ -28,6 +29,15 @@ class remote_storage extends base
/** @var factory Files factory */
protected $factory;
+ /** @var filesystem Filesystem */
+ protected $filesystem;
+
+ /** @var language */
+ protected $language;
+
+ /** @var IniGetWrapper */
+ protected $php_ini;
+
/** @var request_interface */
protected $request;
@@ -39,15 +49,17 @@ class remote_storage extends base
*
* @param config $config phpBB config
* @param factory $factory Files factory
+ * @param filesystem $filesystem Filesystem
* @param language $language Language class
* @param IniGetWrapper $php_ini ini_get() wrapper
* @param request_interface $request Request object
* @param string $phpbb_root_path phpBB root path
*/
- public function __construct(config $config, factory $factory, language $language, IniGetWrapper $php_ini, request_interface $request, $phpbb_root_path)
+ public function __construct(config $config, factory $factory, filesystem $filesystem, language $language, IniGetWrapper $php_ini, request_interface $request, $phpbb_root_path)
{
$this->config = $config;
$this->factory = $factory;
+ $this->filesystem = $filesystem;
$this->language = $language;
$this->php_ini = $php_ini;
$this->request = $request;
@@ -138,7 +150,7 @@ class remote_storage extends base
$data = $response->getBody();
- $filename = tempnam(sys_get_temp_dir(), unique_id() . '-');
+ $filename = tempnam($this->filesystem->get_temp_dir(), unique_id() . '-');
if (!($fp = @fopen($filename, 'wb')))
{
diff --git a/phpBB/phpbb/filesystem/filesystem.php b/phpBB/phpbb/filesystem/filesystem.php
index 7754a4107b..942ebb702f 100644
--- a/phpBB/phpbb/filesystem/filesystem.php
+++ b/phpBB/phpbb/filesystem/filesystem.php
@@ -43,13 +43,24 @@ class filesystem implements filesystem_interface
protected $symfony_filesystem;
/**
+ * @var string
+ */
+ protected $cache_temp_dir;
+
+ /**
+ * @var string
+ */
+ protected $temp_dir;
+
+ /**
* Constructor
*/
- public function __construct()
+ public function __construct($cache_temp_dir)
{
$this->chmod_info = array();
$this->symfony_filesystem = new \Symfony\Component\Filesystem\Filesystem();
$this->working_directory = null;
+ $this->cache_temp_dir = $cache_temp_dir;
}
/**
@@ -742,4 +753,33 @@ class filesystem implements filesystem_interface
{
return helper::resolve_path($path, $prefix, $absolute, $return_array);
}
+
+ /**
+ * Get a temporary directory to write files
+ *
+ * @return string returns the directory
+ */
+ public function get_temp_dir()
+ {
+ if (!isset($this->temp_dir))
+ {
+ $tmp_dir = (function_exists('sys_get_temp_dir')) ? sys_get_temp_dir() : '';
+
+ // Prevent trying to write to system temp dir in case of open_basedir
+ // restrictions being in effect
+ if (empty($tmp_dir) || !@file_exists($tmp_dir) || !@is_writable($tmp_dir))
+ {
+ $tmp_dir = $this->cache_temp_dir;
+
+ if (!is_dir($tmp_dir))
+ {
+ $this->filesystem->mkdir($tmp_dir, 0777);
+ }
+ }
+
+ $this->temp_dir = helper::realpath($tmp_dir);
+ }
+
+ return $this->temp_dir;
+ }
}
diff --git a/tests/attachment/upload_test.php b/tests/attachment/upload_test.php
index 2d577db107..61208ccaa7 100644
--- a/tests/attachment/upload_test.php
+++ b/tests/attachment/upload_test.php
@@ -85,7 +85,7 @@ class phpbb_attachment_upload_test extends \phpbb_database_test_case
$this->cache = new \phpbb\cache\service(new \phpbb\cache\driver\dummy(), $this->config, $this->db, $phpbb_root_path, $phpEx);
$this->request = $this->createMock('\phpbb\request\request');
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
$this->language = new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx));
$this->php_ini = new \bantu\IniGetWrapper\IniGetWrapper;
$guessers = array(
diff --git a/tests/avatar/manager_test.php b/tests/avatar/manager_test.php
index 2866a1673d..a78c7a30cd 100644
--- a/tests/avatar/manager_test.php
+++ b/tests/avatar/manager_test.php
@@ -35,7 +35,7 @@ class phpbb_avatar_manager_test extends \phpbb_database_test_case
->method('get')
->will($this->returnArgument(0));
- $filesystem = new \phpbb\filesystem\filesystem();
+ $filesystem = new \phpbb\filesystem\filesystem('');
$adapter = new \phpbb\storage\adapter\local($filesystem, new \FastImageSize\FastImageSize(), new \phpbb\mimetype\guesser(array(new \phpbb\mimetype\extension_guesser)), $phpbb_root_path);
$adapter->configure(['path' => 'images/avatars/upload']);
$adapter_factory_mock = $this->createMock('\phpbb\storage\adapter_factory');
diff --git a/tests/console/thumbnail_test.php b/tests/console/thumbnail_test.php
index ecce6f157c..5b32823230 100644
--- a/tests/console/thumbnail_test.php
+++ b/tests/console/thumbnail_test.php
@@ -68,7 +68,7 @@ class phpbb_console_command_thumbnail_test extends phpbb_database_test_case
$this->application->add(new delete($this->user, $this->db, $this->phpbb_root_path));
$this->application->add(new recreate($this->user));
- $phpbb_filesystem = new \phpbb\filesystem\filesystem();
+ $phpbb_filesystem = new \phpbb\filesystem\filesystem('');
copy(dirname(__FILE__) . '/fixtures/png.png', $this->phpbb_root_path . 'files/test_png_1');
copy(dirname(__FILE__) . '/fixtures/png.png', $this->phpbb_root_path . 'files/test_png_2');
diff --git a/tests/controller/common_helper_route.php b/tests/controller/common_helper_route.php
index 3c732ff49b..7dc869cbdc 100644
--- a/tests/controller/common_helper_route.php
+++ b/tests/controller/common_helper_route.php
@@ -88,7 +88,7 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
$this->symfony_request = new \phpbb\symfony_request(
$this->request
);
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
$this->phpbb_path_helper = new \phpbb\path_helper(
$this->symfony_request,
$this->request,
diff --git a/tests/dbal/connect_test.php b/tests/dbal/connect_test.php
index 3933dab798..7cc887b4ed 100644
--- a/tests/dbal/connect_test.php
+++ b/tests/dbal/connect_test.php
@@ -22,7 +22,7 @@ class phpbb_dbal_connect_test extends phpbb_database_test_case
{
global $phpbb_root_path, $phpEx, $phpbb_filesystem;
- $phpbb_filesystem = new phpbb\filesystem\filesystem();
+ $phpbb_filesystem = new phpbb\filesystem\filesystem('');
$config = $this->get_database_config();
diff --git a/tests/email/email_parsing_test.php b/tests/email/email_parsing_test.php
index 245c2c3a58..1c6195633c 100644
--- a/tests/email/email_parsing_test.php
+++ b/tests/email/email_parsing_test.php
@@ -36,7 +36,7 @@ class phpbb_email_parsing_test extends phpbb_test_case
$symfony_request = new \phpbb\symfony_request(
$request
);
- $filesystem = new \phpbb\filesystem\filesystem();
+ $filesystem = new \phpbb\filesystem\filesystem('');
$phpbb_path_helper = new \phpbb\path_helper(
$symfony_request,
$request,
diff --git a/tests/error_collector_test.php b/tests/error_collector_test.php
index 8ed89bbe52..5e31be0b4f 100644
--- a/tests/error_collector_test.php
+++ b/tests/error_collector_test.php
@@ -19,7 +19,7 @@ class phpbb_error_collector_test extends phpbb_test_case
global $phpbb_filesystem;
- $phpbb_filesystem = new \phpbb\filesystem\filesystem();
+ $phpbb_filesystem = new \phpbb\filesystem\filesystem('');
}
public function test_collection()
diff --git a/tests/extension/metadata_manager_test.php b/tests/extension/metadata_manager_test.php
index 5887fd974d..7422f68b67 100644
--- a/tests/extension/metadata_manager_test.php
+++ b/tests/extension/metadata_manager_test.php
@@ -53,7 +53,7 @@ class phpbb_extension_metadata_manager_test extends phpbb_database_test_case
$cache_path = $this->phpbb_root_path . 'cache/twig';
$context = new \phpbb\template\context();
$loader = new \phpbb\template\twig\loader('');
- $filesystem = new \phpbb\filesystem\filesystem();
+ $filesystem = new \phpbb\filesystem\filesystem('');
$phpbb_path_helper = new \phpbb\path_helper(
new \phpbb\symfony_request(
new phpbb_mock_request()
diff --git a/tests/feed/attachments_base_test.php b/tests/feed/attachments_base_test.php
index 3d66c906ad..9eb67eb022 100644
--- a/tests/feed/attachments_base_test.php
+++ b/tests/feed/attachments_base_test.php
@@ -29,7 +29,7 @@ class phpbb_feed_attachments_base_test extends phpbb_database_test_case
{
global $phpbb_root_path, $phpEx;
- $this->filesystem = new \phpbb\filesystem();
+ $this->filesystem = new \phpbb\filesystem('');
$config = new \phpbb\config\config(array());
$path_helper = new \phpbb\path_helper(
new \phpbb\symfony_request(
diff --git a/tests/files/types_base_test.php b/tests/files/types_base_test.php
index 3b1cf68d50..48fe071830 100644
--- a/tests/files/types_base_test.php
+++ b/tests/files/types_base_test.php
@@ -41,7 +41,7 @@ class phpbb_files_types_base_test extends phpbb_test_case
$this->request = $this->createMock('\phpbb\request\request');
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
$this->language = new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx));
$this->php_ini = new \bantu\IniGetWrapper\IniGetWrapper;
diff --git a/tests/files/types_form_test.php b/tests/files/types_form_test.php
index 25d79f6117..71ce07babb 100644
--- a/tests/files/types_form_test.php
+++ b/tests/files/types_form_test.php
@@ -47,7 +47,7 @@ class phpbb_files_types_form_test extends phpbb_test_case
->method('file')
->willReturn(array());
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
$this->language = new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx));
$this->php_ini = new \bantu\IniGetWrapper\IniGetWrapper;
diff --git a/tests/files/types_local_test.php b/tests/files/types_local_test.php
index 67e4c571f5..a7a2cd78cf 100644
--- a/tests/files/types_local_test.php
+++ b/tests/files/types_local_test.php
@@ -47,7 +47,7 @@ class phpbb_files_types_local_test extends phpbb_test_case
->method('file')
->willReturn(array());
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
$this->language = new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx));
$this->php_ini = new \bantu\IniGetWrapper\IniGetWrapper;
diff --git a/tests/files/types_remote_test.php b/tests/files/types_remote_test.php
index 85ec2a528b..29e831e87f 100644
--- a/tests/files/types_remote_test.php
+++ b/tests/files/types_remote_test.php
@@ -15,8 +15,10 @@ require_once dirname(__FILE__) . '/type_foo.php';
class phpbb_files_types_remote_test extends phpbb_test_case
{
+ /** @var string */
private $path;
+ /** @var \phpbb\filesystem\filesystem */
private $filesystem;
/** @var \phpbb\config\config */
@@ -49,7 +51,8 @@ class phpbb_files_types_remote_test extends phpbb_test_case
$this->config->set('remote_upload_verify', 0);
$this->request = $this->createMock('\phpbb\request\request');
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $cache_path = $phpbb_root_path . 'cache/files';
+ $this->filesystem = new \phpbb\filesystem\filesystem($cache_path);
$this->language = new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx));
$this->php_ini = new \bantu\IniGetWrapper\IniGetWrapper;
@@ -71,7 +74,7 @@ class phpbb_files_types_remote_test extends phpbb_test_case
public function test_upload_fsock_fail()
{
- $type_remote = new \phpbb\files\types\remote($this->config, $this->factory, $this->language, $this->php_ini, $this->request, $this->phpbb_root_path);
+ $type_remote = new \phpbb\files\types\remote($this->config, $this->factory, $this->filesystem, $this->language, $this->php_ini, $this->request, $this->phpbb_root_path);
$upload = new \phpbb\files\upload($this->filesystem, $this->factory, $this->language, $this->php_ini, $this->request, $this->phpbb_root_path);
$upload->set_allowed_extensions(array('png'));
$type_remote->set_upload($upload);
@@ -106,7 +109,7 @@ class phpbb_files_types_remote_test extends phpbb_test_case
$php_ini->expects($this->any())
->method('getString')
->willReturn($max_file_size);
- $type_remote = new \phpbb\files\types\remote($this->config, $this->factory, $this->language, $php_ini, $this->request, $this->phpbb_root_path);
+ $type_remote = new \phpbb\files\types\remote($this->config, $this->factory, $this->filesystem, $this->language, $php_ini, $this->request, $this->phpbb_root_path);
$upload = new \phpbb\files\upload($this->filesystem, $this->factory, $this->language, $this->php_ini, $this->request, $this->phpbb_root_path);
$upload->set_allowed_extensions(array('png'));
$type_remote->set_upload($upload);
@@ -118,7 +121,7 @@ class phpbb_files_types_remote_test extends phpbb_test_case
public function test_upload_wrong_path()
{
- $type_remote = new \phpbb\files\types\foo($this->config, $this->factory, $this->language, $this->php_ini, $this->request, $this->phpbb_root_path);
+ $type_remote = new \phpbb\files\types\foo($this->config, $this->factory, $this->filesystem, $this->language, $this->php_ini, $this->request, $this->phpbb_root_path);
$upload = new \phpbb\files\upload($this->filesystem, $this->factory, $this->language, $this->php_ini, $this->request, $this->phpbb_root_path);
$upload->set_allowed_extensions(array('png'));
$type_remote->set_upload($upload);
diff --git a/tests/files/upload_test.php b/tests/files/upload_test.php
index a9c2dca9d9..60c2dc7d36 100644
--- a/tests/files/upload_test.php
+++ b/tests/files/upload_test.php
@@ -50,7 +50,7 @@ class phpbb_files_upload_test extends phpbb_test_case
$this->request = $this->createMock('\phpbb\request\request');
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
$this->language = new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx));
$this->php_ini = new \bantu\IniGetWrapper\IniGetWrapper;
diff --git a/tests/filesystem/clean_path_test.php b/tests/filesystem/clean_path_test.php
index d2dec424b4..3c99e785d0 100644
--- a/tests/filesystem/clean_path_test.php
+++ b/tests/filesystem/clean_path_test.php
@@ -18,7 +18,7 @@ class phpbb_filesystem_clean_path_test extends phpbb_test_case
public function setUp()
{
parent::setUp();
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
}
public function clean_path_data()
diff --git a/tests/filesystem/is_absolute_test.php b/tests/filesystem/is_absolute_test.php
index 7a50989b74..181445e147 100644
--- a/tests/filesystem/is_absolute_test.php
+++ b/tests/filesystem/is_absolute_test.php
@@ -20,7 +20,7 @@ class phpbb_filesystem_is_absolute_test extends phpbb_test_case
{
parent::setUp();
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
}
static public function is_absolute_data()
diff --git a/tests/filesystem/realpath_test.php b/tests/filesystem/realpath_test.php
index d994935f94..9b94592cb3 100644
--- a/tests/filesystem/realpath_test.php
+++ b/tests/filesystem/realpath_test.php
@@ -31,7 +31,7 @@ class phpbb_filesystem_realpath_test extends phpbb_test_case
{
parent::setUp();
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
}
public function realpath_resolve_absolute_without_symlinks_data()
@@ -55,7 +55,7 @@ class phpbb_filesystem_realpath_test extends phpbb_test_case
return array();
}
- $filesystem = new \phpbb\filesystem\filesystem();
+ $filesystem = new \phpbb\filesystem\filesystem('');
$relative_path = $filesystem->make_path_relative(__DIR__, getcwd());
return array(
diff --git a/tests/functional/fileupload_remote_test.php b/tests/functional/fileupload_remote_test.php
index 4fced5700a..235d81d48d 100644
--- a/tests/functional/fileupload_remote_test.php
+++ b/tests/functional/fileupload_remote_test.php
@@ -52,7 +52,7 @@ class phpbb_functional_fileupload_remote_test extends phpbb_functional_test_case
$config['rand_seed_last_update'] = time() + 600;
$config['remote_upload_verify'] = 0;
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
$this->language = new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx));
$this->request = $this->createMock('\phpbb\request\request');
$this->php_ini = new \bantu\IniGetWrapper\IniGetWrapper;
@@ -61,7 +61,7 @@ class phpbb_functional_fileupload_remote_test extends phpbb_functional_test_case
$container->set('files.filespec', new \phpbb\files\filespec($this->filesystem, $this->language, $this->php_ini, new \FastImageSize\FastImageSize(), $this->phpbb_root_path));
$this->factory = new \phpbb\files\factory($container);
$container->set('files.factory', $this->factory);
- $container->set('files.types.remote', new \phpbb\files\types\remote($config, $this->factory, $this->language, $this->php_ini, $this->request, $phpbb_root_path));
+ $container->set('files.types.remote', new \phpbb\files\types\remote($config, $this->factory, $this->filesystem, $this->language, $this->php_ini, $this->request, $phpbb_root_path));
$this->phpbb_root_path = $phpbb_root_path;
}
diff --git a/tests/installer/database_helper_test.php b/tests/installer/database_helper_test.php
index ed355884f6..9d728b205c 100644
--- a/tests/installer/database_helper_test.php
+++ b/tests/installer/database_helper_test.php
@@ -20,7 +20,7 @@ class phpbb_installer_database_helper_test extends phpbb_test_case
public function setUp()
{
- $filesystem = new \phpbb\filesystem\filesystem();
+ $filesystem = new \phpbb\filesystem\filesystem('');
$phpbb_root_path = '';
$this->database_helper = new \phpbb\install\helper\database($filesystem, $phpbb_root_path);
}
diff --git a/tests/installer/module_base_test.php b/tests/installer/module_base_test.php
index 71ec2b8db2..7527268914 100644
--- a/tests/installer/module_base_test.php
+++ b/tests/installer/module_base_test.php
@@ -43,7 +43,7 @@ class module_base_test extends phpbb_test_case
$this->module = new test_installer_module($module_collection, true, false);
$iohandler = $this->createMock('\phpbb\install\helper\iohandler\iohandler_interface');
- $config = new \phpbb\install\helper\config(new \phpbb\filesystem\filesystem(), new \bantu\IniGetWrapper\IniGetWrapper(), '', 'php');
+ $config = new \phpbb\install\helper\config(new \phpbb\filesystem\filesystem(''), new \bantu\IniGetWrapper\IniGetWrapper(), '', 'php');
$this->module->setup($config, $iohandler);
}
diff --git a/tests/mock/extension_manager.php b/tests/mock/extension_manager.php
index 0d6d110647..7c96eeeb4f 100644
--- a/tests/mock/extension_manager.php
+++ b/tests/mock/extension_manager.php
@@ -21,7 +21,7 @@ class phpbb_mock_extension_manager extends \phpbb\extension\manager
$this->phpbb_root_path = $phpbb_root_path;
$this->php_ext = 'php';
$this->extensions = $extensions;
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
$this->container = $container;
$this->config = new \phpbb\config\config(array());
$this->user = new \phpbb\user($lang,'\phpbb\datetime');
diff --git a/tests/security/base.php b/tests/security/base.php
index d2abdbc362..2c7a0bd251 100644
--- a/tests/security/base.php
+++ b/tests/security/base.php
@@ -46,7 +46,7 @@ abstract class phpbb_security_test_base extends phpbb_test_case
$request = new phpbb_mock_request(array(), array(), array(), $this->server);
$symfony_request = new \phpbb\symfony_request($request);
- $phpbb_filesystem = new \phpbb\filesystem\filesystem();
+ $phpbb_filesystem = new \phpbb\filesystem\filesystem('');
// Set no user and trick a bit to circumvent errors
$lang_loader = new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx);
diff --git a/tests/session/check_ban_test.php b/tests/session/check_ban_test.php
index 04da5f08b9..26e95b2856 100644
--- a/tests/session/check_ban_test.php
+++ b/tests/session/check_ban_test.php
@@ -44,7 +44,7 @@ class phpbb_session_check_ban_test extends phpbb_session_test_case
$this->session = $this->session_factory->get_session($this->db);
global $cache, $config, $phpbb_root_path, $phpEx, $phpbb_filesystem;
- $phpbb_filesystem = new \phpbb\filesystem\filesystem();
+ $phpbb_filesystem = new \phpbb\filesystem\filesystem('');
$this->backup_cache = $cache;
// Change the global cache object for this test because
diff --git a/tests/session/extract_page_test.php b/tests/session/extract_page_test.php
index f8aa3d27a5..42adf719ce 100644
--- a/tests/session/extract_page_test.php
+++ b/tests/session/extract_page_test.php
@@ -160,7 +160,7 @@ class phpbb_session_extract_page_test extends phpbb_session_test_case
{
global $symfony_request, $request, $phpbb_filesystem;
- $phpbb_filesystem = new \phpbb\filesystem\filesystem();
+ $phpbb_filesystem = new \phpbb\filesystem\filesystem('');
$server['HTTP_HOST'] = 'localhost';
$server['SERVER_NAME'] = 'localhost';
diff --git a/tests/storage/adapter/local_test.php b/tests/storage/adapter/local_test.php
index b478ce4009..8099a49522 100644
--- a/tests/storage/adapter/local_test.php
+++ b/tests/storage/adapter/local_test.php
@@ -21,7 +21,7 @@
{
parent::setUp();
- $filesystem = new \phpbb\filesystem\filesystem();
+ $filesystem = new \phpbb\filesystem\filesystem('');
$phpbb_root_path = getcwd() . DIRECTORY_SEPARATOR;
$this->adapter = new \phpbb\storage\adapter\local($filesystem, new \FastImageSize\FastImageSize(), new \phpbb\mimetype\guesser(array(new \phpbb\mimetype\extension_guesser)), $phpbb_root_path);
diff --git a/tests/template/asset_test.php b/tests/template/asset_test.php
index 3d2fdd8959..49ecc56012 100644
--- a/tests/template/asset_test.php
+++ b/tests/template/asset_test.php
@@ -41,7 +41,7 @@ class phpbb_template_asset_test extends phpbb_test_case
$path_helper->method('get_phpbb_root_path')
->willReturn($phpbb_root_path);
- $asset = new asset('', $path_helper, new phpbb\filesystem\filesystem());
+ $asset = new asset('', $path_helper, new phpbb\filesystem\filesystem(''));
$asset->set_path($path, true);
$this->assertEquals($expected, $asset->get_path());
diff --git a/tests/template/template_allfolder_test.php b/tests/template/template_allfolder_test.php
index 17a57fba35..75b6bf834d 100644
--- a/tests/template/template_allfolder_test.php
+++ b/tests/template/template_allfolder_test.php
@@ -33,7 +33,7 @@ class phpbb_template_allfolder_test extends phpbb_template_template_test_case
$user = new \phpbb\user($lang, '\phpbb\datetime');
$this->user = $user;
- $filesystem = new \phpbb\filesystem\filesystem();
+ $filesystem = new \phpbb\filesystem\filesystem('');
$path_helper = new \phpbb\path_helper(
new \phpbb\symfony_request(
diff --git a/tests/template/template_events_test.php b/tests/template/template_events_test.php
index 024bdc57ce..fd603b113d 100644
--- a/tests/template/template_events_test.php
+++ b/tests/template/template_events_test.php
@@ -139,7 +139,7 @@ Zeta test event in all',
dirname(__FILE__) . "/datasets/$dataset/"
);
- $filesystem = new \phpbb\filesystem\filesystem();
+ $filesystem = new \phpbb\filesystem\filesystem('');
$path_helper = new \phpbb\path_helper(
new \phpbb\symfony_request(
new phpbb_mock_request()
diff --git a/tests/template/template_includecss_test.php b/tests/template/template_includecss_test.php
index f195742dc6..52f212b5aa 100644
--- a/tests/template/template_includecss_test.php
+++ b/tests/template/template_includecss_test.php
@@ -28,7 +28,7 @@ class phpbb_template_template_includecss_test extends phpbb_template_template_te
$defaults = $this->config_defaults();
$config = new \phpbb\config\config(array_merge($defaults, $new_config));
- $filesystem = new \phpbb\filesystem\filesystem();
+ $filesystem = new \phpbb\filesystem\filesystem('');
$this->phpbb_path_helper = new \phpbb\path_helper(
new \phpbb\symfony_request(
diff --git a/tests/template/template_test_case.php b/tests/template/template_test_case.php
index bcb6f4cde7..5340132aad 100644
--- a/tests/template/template_test_case.php
+++ b/tests/template/template_test_case.php
@@ -80,7 +80,7 @@ class phpbb_template_template_test_case extends phpbb_test_case
$user = new \phpbb\user($lang, '\phpbb\datetime');
$this->user = $user;
- $filesystem = new \phpbb\filesystem\filesystem();
+ $filesystem = new \phpbb\filesystem\filesystem('');
$path_helper = new \phpbb\path_helper(
new \phpbb\symfony_request(
@@ -126,7 +126,7 @@ class phpbb_template_template_test_case extends phpbb_test_case
global $phpbb_filesystem;
- $phpbb_filesystem = new \phpbb\filesystem\filesystem();
+ $phpbb_filesystem = new \phpbb\filesystem\filesystem('');
}
protected function tearDown()
diff --git a/tests/template/template_test_case_with_tree.php b/tests/template/template_test_case_with_tree.php
index aa71bf6ed6..c5069b703b 100644
--- a/tests/template/template_test_case_with_tree.php
+++ b/tests/template/template_test_case_with_tree.php
@@ -22,7 +22,7 @@ class phpbb_template_template_test_case_with_tree extends phpbb_template_templat
$defaults = $this->config_defaults();
$config = new \phpbb\config\config(array_merge($defaults, $new_config));
- $filesystem = new \phpbb\filesystem\filesystem();
+ $filesystem = new \phpbb\filesystem\filesystem('');
$this->phpbb_path_helper = new \phpbb\path_helper(
new \phpbb\symfony_request(
diff --git a/tests/test_framework/phpbb_database_test_connection_manager.php b/tests/test_framework/phpbb_database_test_connection_manager.php
index f7ba3ba21b..9f282d7d1d 100644
--- a/tests/test_framework/phpbb_database_test_connection_manager.php
+++ b/tests/test_framework/phpbb_database_test_connection_manager.php
@@ -354,7 +354,7 @@ class phpbb_database_test_connection_manager
$queries = file_get_contents($filename);
- $db_helper = new \phpbb\install\helper\database(new \phpbb\filesystem\filesystem(), $phpbb_root_path);
+ $db_helper = new \phpbb\install\helper\database(new \phpbb\filesystem\filesystem(''), $phpbb_root_path);
$sql = $db_helper->remove_comments($queries);
$sql = $db_helper->split_sql_file($sql, $this->dbms['DELIM']);
diff --git a/tests/upload/filespec_test.php b/tests/upload/filespec_test.php
index 18b6deed1f..9f2d906355 100644
--- a/tests/upload/filespec_test.php
+++ b/tests/upload/filespec_test.php
@@ -75,7 +75,7 @@ class phpbb_filespec_test extends phpbb_test_case
$this->mimetype_guesser = new \phpbb\mimetype\guesser($guessers);
$this->language = new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx));
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
$this->phpbb_root_path = $phpbb_root_path;
}
diff --git a/tests/upload/fileupload_test.php b/tests/upload/fileupload_test.php
index 84fc00bf98..df658b459e 100644
--- a/tests/upload/fileupload_test.php
+++ b/tests/upload/fileupload_test.php
@@ -53,7 +53,7 @@ class phpbb_fileupload_test extends phpbb_test_case
$this->request = $this->createMock('\phpbb\request\request');
$this->php_ini = new \bantu\IniGetWrapper\IniGetWrapper;
- $this->filesystem = new \phpbb\filesystem\filesystem();
+ $this->filesystem = new \phpbb\filesystem\filesystem('');
$this->language = new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx));
$guessers = array(
new \Symfony\Component\HttpFoundation\File\MimeType\FileinfoMimeTypeGuesser(),
diff --git a/tests/viewonline/helper_test.php b/tests/viewonline/helper_test.php
index 6540d33287..53704b2ec7 100644
--- a/tests/viewonline/helper_test.php
+++ b/tests/viewonline/helper_test.php
@@ -17,7 +17,7 @@ class phpbb_viewonline_helper_test extends phpbb_test_case
{
parent::setUp();
- $this->viewonline_helper = new \phpbb\viewonline_helper(new \phpbb\filesystem\filesystem());
+ $this->viewonline_helper = new \phpbb\viewonline_helper(new \phpbb\filesystem\filesystem(''));
}
public function session_pages_data()