From 3428c3638a788ff61356bf4250ddd579415ec513 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Sun, 24 Apr 2016 22:09:35 +0200 Subject: [PATCH] adjust unit test --- tests/lib_bookmark_test.php | 55 +++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 14 deletions(-) diff --git a/tests/lib_bookmark_test.php b/tests/lib_bookmark_test.php index 0135b043..66f30236 100644 --- a/tests/lib_bookmark_test.php +++ b/tests/lib_bookmark_test.php @@ -96,14 +96,41 @@ class Test_LibBookmarks_Bookmarks extends PHPUnit_Framework_TestCase { $config = $this->getMockBuilder('\OCP\IConfig') ->disableOriginalConstructor()->getMock(); - $clientService = $this->getMock('OCP\Http\Client\IClientService'); - $httpHelperMock = $this->getMockBuilder('\OC\HTTPHelper') - ->setConstructorArgs(array($config, $clientService)) - ->getMock(); - $returnAmazonDe = file_get_contents(__DIR__ . '/res/amazonHtml.file'); - $returnGolemDe = file_get_contents(__DIR__ . '/res/golemHtml.file'); - $httpHelperMock->expects($this->any())->method('getUrlContent')->with($this->anything())->will($this->onConsecutiveCalls($returnAmazonDe, $returnGolemDe)); - $this->registerHttpHelper($httpHelperMock); + $amazonResponse = $this->getMock('OCP\Http\Client\IResponse'); + $amazonResponse->expects($this->once()) + ->method('getBody') + ->will($this->returnValue(file_get_contents(__DIR__ . '/res/amazonHtml.file'))); + $amazonResponse->expects($this->once()) + ->method('getHeader') + ->with('Content-Type') + ->will($this->returnValue('')); + + $golemResponse = $this->getMock('OCP\Http\Client\IResponse'); + $golemResponse->expects($this->once()) + ->method('getBody') + ->will($this->returnValue(file_get_contents(__DIR__ . '/res/golemHtml.file'))); + $golemResponse->expects($this->once()) + ->method('getHeader') + ->with('Content-Type') + ->will($this->returnValue('text/html; charset=UTF-8')); + + $clientMock = $this->getMock('OCP\Http\Client\IClient'); + $clientMock->expects($this->exactly(2)) + ->method('get') + ->will($this->returnCallback(function ($page) use($amazonResponse, $golemResponse) { + if($page === 'amazonHtml') { + return $amazonResponse; + } else if($page === 'golemHtml') { + return $golemResponse; + } + })); + + $clientServiceMock = $this->getMock('OCP\Http\Client\IClientService'); + $clientServiceMock->expects($this->any()) + ->method('newClient') + ->will($this->returnValue($clientMock)); + + $this->registerHttpService($clientServiceMock); $metadataAmazon = Bookmarks::getURLMetadata('amazonHtml'); $this->assertTrue($metadataAmazon['url'] == 'amazonHtml'); @@ -126,13 +153,13 @@ class Test_LibBookmarks_Bookmarks extends PHPUnit_Framework_TestCase { } /** - * Register an http helper mock for testing purposes. - * @param $httpHelper http helper mock + * Register an http service mock for testing purposes. + * + * @param \OCP\Http\Client\IClientService $service */ - private function registerHttpHelper($httpHelper) { - $this->oldHttpHelper = \OC::$server->query('HTTPHelper'); - \OC::$server->registerService('HTTPHelper', function () use ($httpHelper) { - return $httpHelper; + private function registerHttpService($service) { + \OC::$server->registerService('HttpClientService', function () use ($service) { + return $service; }); }