diff options
author | Roeland Jago Douma <rullzer@users.noreply.github.com> | 2017-05-02 15:57:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-02 15:57:29 +0200 |
commit | cd631e5b9e82f6be3096b92b05873078134dc2a5 (patch) | |
tree | 79116c618b25c564515631294857a598600841a7 /apps | |
parent | 705483e7123e2e2da6421d7f02c4a5b899cade3d (diff) | |
parent | d25e13ea27d950aa2815bfcb7bb9bd7d81249505 (diff) | |
download | nextcloud-server-cd631e5b9e82f6be3096b92b05873078134dc2a5.tar.gz nextcloud-server-cd631e5b9e82f6be3096b92b05873078134dc2a5.zip |
Merge pull request #4657 from nextcloud/add_caching_imageexport
Add caching imageexport
Diffstat (limited to 'apps')
-rw-r--r-- | apps/dav/lib/CardDAV/ImageExportPlugin.php | 5 | ||||
-rw-r--r-- | apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php | 16 |
2 files changed, 20 insertions, 1 deletions
diff --git a/apps/dav/lib/CardDAV/ImageExportPlugin.php b/apps/dav/lib/CardDAV/ImageExportPlugin.php index e48410d26d6..3ad7983451b 100644 --- a/apps/dav/lib/CardDAV/ImageExportPlugin.php +++ b/apps/dav/lib/CardDAV/ImageExportPlugin.php @@ -86,6 +86,11 @@ class ImageExportPlugin extends ServerPlugin { } if ($result = $this->getPhoto($node)) { + // Allow caching + $response->setHeader('Cache-Control', 'private, max-age=3600, must-revalidate'); + $response->setHeader('Etag', $node->getETag() ); + $response->setHeader('Pragma', 'public'); + $response->setHeader('Content-Type', $result['Content-Type']); $response->setHeader('Content-Disposition', 'attachment'); $response->setStatus(200); diff --git a/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php b/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php index fc4be1433fe..ed311e79f4a 100644 --- a/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php +++ b/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php @@ -102,6 +102,8 @@ class ImageExportPluginTest extends TestCase { $this->request->expects($this->once())->method('getPath')->willReturn('/files/welcome.txt'); $card = $this->getMockBuilder('Sabre\CardDAV\Card')->disableOriginalConstructor()->getMock(); + $card->method('getETag') + ->willReturn('"myEtag"'); $this->tree->expects($this->once())->method('getNodeForPath')->with('/files/welcome.txt')->willReturn($card); $this->plugin->expects($this->once())->method('getPhoto')->willReturn($getPhotoResult); @@ -110,10 +112,22 @@ class ImageExportPluginTest extends TestCase { $this->response ->expects($this->at(0)) ->method('setHeader') - ->with('Content-Type', $getPhotoResult['Content-Type']); + ->with('Cache-Control', 'private, max-age=3600, must-revalidate'); $this->response ->expects($this->at(1)) ->method('setHeader') + ->with('Etag', '"myEtag"'); + $this->response + ->expects($this->at(2)) + ->method('setHeader') + ->with('Pragma', 'public'); + $this->response + ->expects($this->at(3)) + ->method('setHeader') + ->with('Content-Type', $getPhotoResult['Content-Type']); + $this->response + ->expects($this->at(4)) + ->method('setHeader') ->with('Content-Disposition', 'attachment'); $this->response ->expects($this->once()) |