aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/DirectEditing/ManagerTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/DirectEditing/ManagerTest.php')
-rw-r--r--tests/lib/DirectEditing/ManagerTest.php80
1 files changed, 80 insertions, 0 deletions
diff --git a/tests/lib/DirectEditing/ManagerTest.php b/tests/lib/DirectEditing/ManagerTest.php
index 7a2f2e3d772..53588093092 100644
--- a/tests/lib/DirectEditing/ManagerTest.php
+++ b/tests/lib/DirectEditing/ManagerTest.php
@@ -211,6 +211,86 @@ class ManagerTest extends TestCase {
$this->assertInstanceOf(NotFoundResponse::class, $secondResult);
}
+ public function testOpenByPath() {
+ $expectedToken = 'TOKEN' . time();
+ $file = $this->createMock(File::class);
+ $file->expects($this->any())
+ ->method('getId')
+ ->willReturn(123);
+ $file->expects($this->any())
+ ->method('getPath')
+ ->willReturn('/admin/files/File.txt');
+ $this->random->expects($this->once())
+ ->method('generate')
+ ->willReturn($expectedToken);
+ $folder = $this->createMock(Folder::class);
+ $this->userFolder
+ ->method('nodeExists')
+ ->withConsecutive(['/File.txt'], ['/'])
+ ->willReturnOnConsecutiveCalls(false, true);
+ $this->userFolder
+ ->method('get')
+ ->with('/File.txt')
+ ->willReturn($file);
+ $this->userFolder
+ ->method('getRelativePath')
+ ->willReturn('/File.txt');
+ $this->manager->open('/File.txt', 'testeditor');
+ $firstResult = $this->manager->edit($expectedToken);
+ $secondResult = $this->manager->edit($expectedToken);
+ $this->assertInstanceOf(DataResponse::class, $firstResult);
+ $this->assertInstanceOf(NotFoundResponse::class, $secondResult);
+ }
+
+ public function testOpenById() {
+ $expectedToken = 'TOKEN' . time();
+ $fileRead = $this->createMock(File::class);
+ $fileRead->method('getPermissions')
+ ->willReturn(1);
+ $fileRead->expects($this->any())
+ ->method('getId')
+ ->willReturn(123);
+ $fileRead->expects($this->any())
+ ->method('getPath')
+ ->willReturn('/admin/files/shared_file.txt');
+ $file = $this->createMock(File::class);
+ $file->method('getPermissions')
+ ->willReturn(1);
+ $file->expects($this->any())
+ ->method('getId')
+ ->willReturn(123);
+ $file->expects($this->any())
+ ->method('getPath')
+ ->willReturn('/admin/files/File.txt');
+ $this->random->expects($this->once())
+ ->method('generate')
+ ->willReturn($expectedToken);
+ $folder = $this->createMock(Folder::class);
+ $folder->expects($this->any())
+ ->method('getById')
+ ->willReturn([
+ $fileRead,
+ $file
+ ]);
+ $this->userFolder
+ ->method('nodeExists')
+ ->withConsecutive(['/File.txt'], ['/'])
+ ->willReturnOnConsecutiveCalls(false, true);
+ $this->userFolder
+ ->method('get')
+ ->with('/')
+ ->willReturn($folder);
+ $this->userFolder
+ ->method('getRelativePath')
+ ->willReturn('/File.txt');
+
+ $this->manager->open('/', 'testeditor', 123);
+ $firstResult = $this->manager->edit($expectedToken);
+ $secondResult = $this->manager->edit($expectedToken);
+ $this->assertInstanceOf(DataResponse::class, $firstResult);
+ $this->assertInstanceOf(NotFoundResponse::class, $secondResult);
+ }
+
public function testCreateFileAlreadyExists() {
$this->expectException(\RuntimeException::class);
$this->userFolder