aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/storage/adapter/local_test.php')
-rw-r--r--tests/storage/adapter/local_test.php113
1 files changed, 113 insertions, 0 deletions
diff --git a/tests/storage/adapter/local_test.php b/tests/storage/adapter/local_test.php
new file mode 100644
index 0000000000..e44f0e2023
--- /dev/null
+++ b/tests/storage/adapter/local_test.php
@@ -0,0 +1,113 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+ class phpbb_storage_adapter_local_test extends phpbb_test_case
+ {
+ protected $adapter;
+
+ protected $path;
+
+ protected $filesystem;
+
+ public function setUp(): void
+ {
+ parent::setUp();
+
+ $this->filesystem = new \phpbb\filesystem\filesystem();
+ $phpbb_root_path = getcwd() . DIRECTORY_SEPARATOR;
+
+ $this->adapter = new \phpbb\storage\adapter\local($this->filesystem, new \FastImageSize\FastImageSize(), new \phpbb\mimetype\guesser(array(new \phpbb\mimetype\extension_guesser)), $phpbb_root_path);
+ $this->adapter->configure(['path' => 'test_path', 'subfolders' => false]);
+
+ $this->path = $phpbb_root_path . 'test_path/';
+ mkdir($this->path);
+ }
+
+ public function tearDown(): void
+ {
+ $this->adapter = null;
+ rmdir($this->path);
+ }
+
+ public function test_put_contents()
+ {
+ $this->adapter->put_contents('file.txt', 'abc');
+ $this->assertTrue(file_exists($this->path . 'file.txt'));
+ $this->assertEquals(file_get_contents($this->path . 'file.txt'), 'abc');
+ unlink($this->path . 'file.txt');
+ }
+
+ public function test_get_contents()
+ {
+ file_put_contents($this->path . 'file.txt', 'abc');
+ $this->assertEquals($this->adapter->get_contents('file.txt'), 'abc');
+ unlink($this->path . 'file.txt');
+ }
+
+ public function test_exists()
+ {
+ touch($this->path . 'file.txt');
+ $this->assertTrue($this->adapter->exists('file.txt'));
+ $this->assertFalse($this->adapter->exists('noexist.txt'));
+ unlink($this->path . 'file.txt');
+ }
+
+ public function test_delete_file()
+ {
+ touch($this->path . 'file.txt');
+ $this->assertTrue(file_exists($this->path . 'file.txt'));
+ $this->adapter->delete('file.txt');
+ $this->assertFalse(file_exists($this->path . 'file.txt'));
+ }
+
+ public function test_rename()
+ {
+ touch($this->path . 'file.txt');
+ $this->adapter->rename('file.txt', 'file2.txt');
+ $this->assertFalse(file_exists($this->path . 'file.txt'));
+ $this->assertTrue(file_exists($this->path . 'file2.txt'));
+ $this->assertFalse(file_exists($this->path . 'file.txt'));
+ unlink($this->path . 'file2.txt');
+ }
+
+ public function test_copy()
+ {
+ file_put_contents($this->path . 'file.txt', 'abc');
+ $this->adapter->copy('file.txt', 'file2.txt');
+ $this->assertEquals(file_get_contents($this->path . 'file.txt'), 'abc');
+ $this->assertEquals(file_get_contents($this->path . 'file2.txt'), 'abc');
+ unlink($this->path . 'file.txt');
+ unlink($this->path . 'file2.txt');
+ }
+
+ public function test_read_stream()
+ {
+ touch($this->path . 'file.txt');
+ $stream = $this->adapter->read_stream('file.txt');
+ $this->assertTrue(is_resource($stream));
+ fclose($stream);
+ unlink($this->path . 'file.txt');
+ }
+
+ public function test_write_stream()
+ {
+ file_put_contents($this->path . 'file.txt', 'abc');
+ $stream = fopen($this->path . 'file.txt', 'rb');
+ $this->adapter->write_stream('file2.txt', $stream);
+ fclose($stream);
+ $this->assertEquals(file_get_contents($this->path . 'file2.txt'), 'abc');
+ unlink($this->path . 'file.txt');
+ unlink($this->path . 'file2.txt');
+ }
+
+ }