From a34495933e83c4c850308e3448a16160162eb65a Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Tue, 29 May 2018 11:10:07 +0200 Subject: Move caching logic to response This avoids having to do it at all the places we want cached responses. We can't inject the ITimeFactor without breaking public API. However we can perfectly overwrite the service (resulting in the same testable effect). Signed-off-by: Roeland Jago Douma --- tests/lib/AppFramework/Http/ResponseTest.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'tests/lib/AppFramework/Http') diff --git a/tests/lib/AppFramework/Http/ResponseTest.php b/tests/lib/AppFramework/Http/ResponseTest.php index 9267d862600..5c867388369 100644 --- a/tests/lib/AppFramework/Http/ResponseTest.php +++ b/tests/lib/AppFramework/Http/ResponseTest.php @@ -27,6 +27,7 @@ namespace Test\AppFramework\Http; use OCP\AppFramework\Http\Response; use OCP\AppFramework\Http; +use OCP\AppFramework\Utility\ITimeFactory; class ResponseTest extends \Test\TestCase { @@ -222,15 +223,24 @@ class ResponseTest extends \Test\TestCase { $headers = $this->childResponse->getHeaders(); $this->assertEquals('no-cache, no-store, must-revalidate', $headers['Cache-Control']); + $this->assertFalse(isset($headers['Pragma'])); + $this->assertFalse(isset($headers['Expires'])); } public function testCacheSeconds() { + $time = $this->createMock(ITimeFactory::class); + $time->method('getTime') + ->willReturn('1234567'); + + $this->overwriteService(ITimeFactory::class, $time); + $this->childResponse->cacheFor(33); $headers = $this->childResponse->getHeaders(); - $this->assertEquals('max-age=33, must-revalidate', - $headers['Cache-Control']); + $this->assertEquals('max-age=33, must-revalidate', $headers['Cache-Control']); + $this->assertEquals('public', $headers['Pragma']); + $this->assertEquals('Thu, 15 Jan 1970 06:56:40 +0000', $headers['Expires']); } -- cgit v1.2.3