From 7c264cb7faaec5f6d851a254250ff041b5bbd32b Mon Sep 17 00:00:00 2001
From: Roeland Jago Douma <roeland@famdouma.nl>
Date: Tue, 16 Apr 2019 16:50:44 +0200
Subject: [PATCH] Harden public preview tests

This way there are less timing issues.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
---
 .../tests/Controller/PublicPreviewControllerTest.php  | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php b/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php
index 3cb38a5e388..54d57dd2d46 100644
--- a/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php
+++ b/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php
@@ -26,6 +26,7 @@ use OCA\Files_Sharing\Controller\PublicPreviewController;
 use OCP\AppFramework\Http;
 use OCP\AppFramework\Http\DataResponse;
 use OCP\AppFramework\Http\FileDisplayResponse;
+use OCP\AppFramework\Utility\ITimeFactory;
 use OCP\Constants;
 use OCP\Files\File;
 use OCP\Files\Folder;
@@ -37,6 +38,7 @@ use OCP\ISession;
 use OCP\Share\Exceptions\ShareNotFound;
 use OCP\Share\IManager;
 use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
 use Punic\Data;
 use Test\TestCase;
 
@@ -44,9 +46,10 @@ class PublicPreviewControllerTest extends TestCase {
 
 	/** @var IPreview|\PHPUnit_Framework_MockObject_MockObject */
 	private $previewManager;
-
 	/** @var IManager|\PHPUnit_Framework_MockObject_MockObject */
 	private $shareManager;
+	/** @var ITimeFactory|MockObject */
+	private $timeFactory;
 
 	/** @var PublicPreviewController */
 	private $controller;
@@ -56,6 +59,12 @@ class PublicPreviewControllerTest extends TestCase {
 
 		$this->previewManager = $this->createMock(IPreview::class);
 		$this->shareManager = $this->createMock(IManager::class);
+		$this->timeFactory = $this->createMock(ITimeFactory::class);
+
+		$this->timeFactory->method('getTime')
+			->willReturn(1337);
+
+		$this->overwriteService(ITimeFactory::class, $this->timeFactory);
 
 		$this->controller = new PublicPreviewController(
 			'files_sharing',
-- 
GitLab