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 33867f331c
commit ee014bddbd
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 OC\Accounts\AccountManager;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\ICertificateManager;
use OCP\ILogger; use OCP\ILogger;
use OCP\IUser; use OCP\IUser;
use OCP\IUserManager; use OCP\IUserManager;
@ -68,12 +69,7 @@ class SyncService {
$this->userManager = $userManager; $this->userManager = $userManager;
$this->logger = $logger; $this->logger = $logger;
$this->accountManager = $accountManager; $this->accountManager = $accountManager;
$this->certPath = '';
$certManager = \OC::$server->getCertificateManager(null);
$certPath = $certManager->getAbsoluteBundlePath();
if (file_exists($certPath)) {
$this->certPath = $certPath;
}
} }
/** /**
@ -141,6 +137,28 @@ class SyncService {
return $this->backend->getAddressBooksByUri($principal, $id); 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 $url
* @param string $userName * @param string $userName
@ -154,9 +172,10 @@ class SyncService {
'password' => $sharedSecret, 'password' => $sharedSecret,
]; ];
$client = new Client($settings); $client = new Client($settings);
$certPath = $this->getCertPath();
$client->setThrowExceptions(true); $client->setThrowExceptions(true);
if (strpos($url, 'http://') !== 0 && $this->certPath) { if ($certPath !== '' && strpos($url, 'http://') !== 0) {
$client->addCurlSetting(CURLOPT_CAINFO, $this->certPath); $client->addCurlSetting(CURLOPT_CAINFO, $this->certPath);
} }

View File

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