From 498b7399c1f5e692e905c3cea72f3595b9120eb1 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Thu, 29 Sep 2016 00:22:32 +0200 Subject: [PATCH] Inject IHTTPClientService MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise the unit test execution will do a ton of external HTTP requests which fail and then timeout… See https://blackfire.io/profiles/compare/3c67acfa-a11e-4aec-bcd4-c945b006f01e/graph for reference Pretty similar to https://github.com/nextcloud/server/pull/1565 Signed-off-by: Lukas Reschke --- .../lib/External/MountProvider.php | 1 + apps/files_sharing/lib/External/Storage.php | 4 ++-- .../tests/ExternalStorageTest.php | 22 ++++++++++++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/apps/files_sharing/lib/External/MountProvider.php b/apps/files_sharing/lib/External/MountProvider.php index f46bb009ab..3f2f39a74f 100644 --- a/apps/files_sharing/lib/External/MountProvider.php +++ b/apps/files_sharing/lib/External/MountProvider.php @@ -56,6 +56,7 @@ class MountProvider implements IMountProvider { $mountPoint = '/' . $user->getUID() . '/files/' . ltrim($data['mountpoint'], '/'); $data['mountpoint'] = $mountPoint; $data['certificateManager'] = \OC::$server->getCertificateManager($user->getUID()); + $data['HttpClientService'] = \OC::$server->getHTTPClientService(); return new Mount(self::STORAGE, $mountPoint, $data, $manager, $storageFactory); } diff --git a/apps/files_sharing/lib/External/Storage.php b/apps/files_sharing/lib/External/Storage.php index caa2bcf2a7..93f3571e80 100644 --- a/apps/files_sharing/lib/External/Storage.php +++ b/apps/files_sharing/lib/External/Storage.php @@ -64,10 +64,10 @@ class Storage extends DAV implements ISharedStorage { public function __construct($options) { $this->memcacheFactory = \OC::$server->getMemCacheFactory(); - $this->httpClient = \OC::$server->getHTTPClientService(); + $this->httpClient = $options['HttpClientService']; $discoveryManager = new DiscoveryManager( $this->memcacheFactory, - \OC::$server->getHTTPClientService() + $this->httpClient ); $this->manager = $options['manager']; diff --git a/apps/files_sharing/tests/ExternalStorageTest.php b/apps/files_sharing/tests/ExternalStorageTest.php index e84d2bb0e1..49b72be139 100644 --- a/apps/files_sharing/tests/ExternalStorageTest.php +++ b/apps/files_sharing/tests/ExternalStorageTest.php @@ -25,6 +25,9 @@ */ namespace OCA\Files_Sharing\Tests; +use OCP\Http\Client\IClient; +use OCP\Http\Client\IClientService; +use OCP\Http\Client\IResponse; /** * Tests for the external Storage class for remote shares. @@ -69,6 +72,22 @@ class ExternalStorageTest extends \Test\TestCase { private function getTestStorage($uri) { $certificateManager = \OC::$server->getCertificateManager(); + $httpClientService = $this->createMock(IClientService::class); + $client = $this->createMock(IClient::class); + $response = $this->createMock(IResponse::class); + $client + ->expects($this->any()) + ->method('get') + ->willReturn($response); + $client + ->expects($this->any()) + ->method('post') + ->willReturn($response); + $httpClientService + ->expects($this->any()) + ->method('newClient') + ->willReturn($client); + return new TestSharingExternalStorage( array( 'remote' => $uri, @@ -77,7 +96,8 @@ class ExternalStorageTest extends \Test\TestCase { 'token' => 'abcdef', 'password' => '', 'manager' => null, - 'certificateManager' => $certificateManager + 'certificateManager' => $certificateManager, + 'HttpClientService' => $httpClientService, ) ); }