test: add test for nested jail cross-storage move

Signed-off-by: Robin Appelman <robin@icewind.nl>
pull/48966/head
Robin Appelman 2024-10-02 17:00:53 +07:00 committed by backportbot[bot]
parent e18de3aac0
commit accf707659
1 changed files with 23 additions and 0 deletions

@ -22,6 +22,8 @@
namespace Test\Files\Storage;
use OC\Files\Storage\Wrapper\Jail;
/**
* Class LocalTest
*
@ -150,4 +152,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'));
}
}