/** * Test that putting a file triggers hooks with the correct path * if the passed view was chrooted (can happen with public webdav * where the root is the share root) */ public function testPutSingleFileTriggersHooksDifferentRoot() { $view = \OC\Files\Filesystem::getView(); $view->mkdir('noderoot'); HookHelper::setUpHooks(); // happens with public webdav where the view root is the share root $this->assertNotEmpty($this->doPut('/foo.txt', '/' . $this->user . '/files/noderoot')); $this->assertCount(4, HookHelper::$hookCalls); $this->assertHookCall(HookHelper::$hookCalls[0], Filesystem::signal_create, '/noderoot/foo.txt'); $this->assertHookCall(HookHelper::$hookCalls[1], Filesystem::signal_write, '/noderoot/foo.txt'); $this->assertHookCall(HookHelper::$hookCalls[2], Filesystem::signal_post_create, '/noderoot/foo.txt'); $this->assertHookCall(HookHelper::$hookCalls[3], Filesystem::signal_post_write, '/noderoot/foo.txt'); }
/** * Test that putting a chunked file triggers update hooks */ public function testPutOverwriteChunkedFileTriggersHooks() { $view = \OC\Files\Filesystem::getView(); $view->file_put_contents('/foo.txt', 'some content that will be replaced'); HookHelper::setUpHooks(); $_SERVER['HTTP_OC_CHUNKED'] = true; $this->assertNull($this->doPut('/foo.txt-chunking-12345-2-0')); $this->assertNotEmpty($this->doPut('/foo.txt-chunking-12345-2-1')); $this->assertCount(4, HookHelper::$hookCalls); $this->assertHookCall(HookHelper::$hookCalls[0], Filesystem::signal_update, '/foo.txt'); $this->assertHookCall(HookHelper::$hookCalls[1], Filesystem::signal_write, '/foo.txt'); $this->assertHookCall(HookHelper::$hookCalls[2], Filesystem::signal_post_update, '/foo.txt'); $this->assertHookCall(HookHelper::$hookCalls[3], Filesystem::signal_post_write, '/foo.txt'); }