fix tests

calling getAbsoluteBundlePath() in the constructor makes other tests fail

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
Bjoern Schiessle 2017-03-23 16:10:53 +01:00
parent 338636fb3f
commit d44913eeb5
No known key found for this signature in database
GPG Key ID: 2378A753E2BF04F6
2 changed files with 28 additions and 8 deletions

View File

@ -26,6 +26,7 @@ namespace OCA\DAV\CardDAV;
use OC\Accounts\AccountManager;
use OCP\AppFramework\Http;
use OCP\ICertificateManager;
use OCP\ILogger;
use OCP\IUser;
use OCP\IUserManager;
@ -68,12 +69,7 @@ class SyncService {
$this->userManager = $userManager;
$this->logger = $logger;
$this->accountManager = $accountManager;
$certManager = \OC::$server->getCertificateManager(null);
$certPath = $certManager->getAbsoluteBundlePath();
if (file_exists($certPath)) {
$this->certPath = $certPath;
}
$this->certPath = '';
}
/**
@ -141,6 +137,28 @@ class SyncService {
return $this->backend->getAddressBooksByUri($principal, $id);
}
/**
* Check if there is a valid certPath we should use
*
* @return string
*/
protected function getCertPath() {
// we already have a valid certPath
if ($this->certPath !== '') {
return $this->certPath;
}
/** @var ICertificateManager $certManager */
$certManager = \OC::$server->getCertificateManager(null);
$certPath = $certManager->getAbsoluteBundlePath();
if (file_exists($certPath)) {
$this->certPath = $certPath;
}
return $this->certPath;
}
/**
* @param string $url
* @param string $userName
@ -154,9 +172,10 @@ class SyncService {
'password' => $sharedSecret,
];
$client = new Client($settings);
$certPath = $this->getCertPath();
$client->setThrowExceptions(true);
if (strpos($url, 'http://') !== 0 && $this->certPath) {
if ($certPath !== '' && strpos($url, 'http://') !== 0) {
$client->addCurlSetting(CURLOPT_CAINFO, $this->certPath);
}

View File

@ -179,7 +179,7 @@ class SyncServiceTest extends TestCase {
$accountManager = $this->getMockBuilder('OC\Accounts\AccountManager')->disableOriginalConstructor()->getMock();
/** @var SyncService | \PHPUnit_Framework_MockObject_MockObject $ss */
$ss = $this->getMockBuilder(SyncService::class)
->setMethods(['ensureSystemAddressBookExists', 'requestSyncReport', 'download'])
->setMethods(['ensureSystemAddressBookExists', 'requestSyncReport', 'download', 'getCertPath'])
->setConstructorArgs([$backend, $userManager, $logger, $accountManager])
->getMock();
$ss->method('requestSyncReport')->withAnyParameters()->willReturn(['response' => $response, 'token' => 'sync-token-1']);
@ -189,6 +189,7 @@ class SyncServiceTest extends TestCase {
'statusCode' => 200,
'headers' => []
]);
$ss->method('getCertPath')->willReturn('');
return $ss;
}