use OC\Accounts\AccountManager;
use OCP\AppFramework\Http;
+use OCP\ICertificateManager;
use OCP\ILogger;
use OCP\IUser;
use OCP\IUserManager;
$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 = '';
}
/**
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
'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);
}
$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']);
'statusCode' => 200,
'headers' => []
]);
+ $ss->method('getCertPath')->willReturn('');
return $ss;
}