aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2024-10-02 17:00:53 +0200
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>2024-10-29 15:02:49 +0000
commit8842fcb003c056ad504c320279f1ff1644355eac (patch)
tree6a45364040c15023a184c2594790cbef53ac74f5
parent1a98cd52b5771243cd5662e19c2162f45f09f96a (diff)
downloadnextcloud-server-8842fcb003c056ad504c320279f1ff1644355eac.tar.gz
nextcloud-server-8842fcb003c056ad504c320279f1ff1644355eac.zip
test: add test for nested jail cross-storage movebackport/47847/stable30
Signed-off-by: Robin Appelman <robin@icewind.nl>
-rw-r--r--tests/lib/Files/Storage/LocalTest.php23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/lib/Files/Storage/LocalTest.php b/tests/lib/Files/Storage/LocalTest.php
index efe5dd04e47..de71d81c7b4 100644
--- a/tests/lib/Files/Storage/LocalTest.php
+++ b/tests/lib/Files/Storage/LocalTest.php
@@ -7,6 +7,8 @@
namespace Test\Files\Storage;
+use OC\Files\Storage\Wrapper\Jail;
+
/**
* Class LocalTest
*
@@ -135,4 +137,25 @@ class LocalTest extends Storage {
// no exception thrown
$this->assertNotNull($this->instance);
}
+
+ public function testMoveNestedJail(): void {
+ $this->instance->mkdir('foo');
+ $this->instance->mkdir('foo/bar');
+ $this->instance->mkdir('target');
+ $this->instance->file_put_contents('foo/bar/file.txt', 'foo');
+ $jail1 = new Jail([
+ 'storage' => $this->instance,
+ 'root' => 'foo'
+ ]);
+ $jail2 = new Jail([
+ 'storage' => $jail1,
+ 'root' => 'bar'
+ ]);
+ $jail3 = new Jail([
+ 'storage' => $this->instance,
+ 'root' => 'target'
+ ]);
+ $jail3->moveFromStorage($jail2, 'file.txt', 'file.txt');
+ $this->assertTrue($this->instance->file_exists('target/file.txt'));
+ }
}