summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2021-07-15 09:19:38 +0200
committerJohn Molakvoæ (Rebase PR Action) <skjnldsv@users.noreply.github.com>2021-07-16 08:19:45 +0000
commit8ece6e064df396db08b678f42483987e917f63b7 (patch)
tree8699f46c0bfde5ebd476b4eece65d83aff7dfeb4
parentd7b540c9b5b6db6b0910b1d51e27825e9f81810a (diff)
Replace any string value with a nullable network for the fallback to match the first social service
Signed-off-by: Julius Härtl <jus@bitgrid.net>
-rw-r--r--lib/Cron/SocialUpdate.php2
-rw-r--r--lib/Service/SocialApiService.php4
-rw-r--r--tests/unit/Service/SocialApiServiceTest.php20
3 files changed, 18 insertions, 8 deletions
diff --git a/lib/Cron/SocialUpdate.php b/lib/Cron/SocialUpdate.php
index fcb41a5c..9f8ee9ba 100644
--- a/lib/Cron/SocialUpdate.php
+++ b/lib/Cron/SocialUpdate.php
@@ -46,7 +46,7 @@ class SocialUpdate extends \OC\BackgroundJob\QueuedJob {
$offsetContact = $arguments['offsetContact'] ?? null;
// update contacts with first available social media profile
- $result = $this->social->updateAddressbooks('any', $userId, $offsetBook, $offsetContact);
+ $result = $this->social->updateAddressbooks($userId, $offsetBook, $offsetContact);
if ($result->getStatus() === Http::STATUS_PARTIAL_CONTENT) {
// not finished; schedule a follow-up
diff --git a/lib/Service/SocialApiService.php b/lib/Service/SocialApiService.php
index 5184d72c..129068c5 100644
--- a/lib/Service/SocialApiService.php
+++ b/lib/Service/SocialApiService.php
@@ -342,12 +342,12 @@ class SocialApiService {
/**
* Updates social profile data for all contacts of an addressbook
*
- * @param {String} network the social network to use (fallback: take first match)
+ * @param {String|null} network the social network to use (take first match if unset)
* @param {String} userId the address book owner
*
* @returns {JSONResponse} JSONResponse with the list of changed and failed contacts
*/
- public function updateAddressbooks(string $network, string $userId, string $offsetBook = null, string $offsetContact = null) : JSONResponse {
+ public function updateAddressbooks(string $userId, string $offsetBook = null, string $offsetContact = null, string $network = null) : JSONResponse {
// double check!
$syncAllowedByAdmin = $this->config->getAppValue($this->appName, 'allowSocialSync', 'yes');
diff --git a/tests/unit/Service/SocialApiServiceTest.php b/tests/unit/Service/SocialApiServiceTest.php
index 9c2ab925..675f81f6 100644
--- a/tests/unit/Service/SocialApiServiceTest.php
+++ b/tests/unit/Service/SocialApiServiceTest.php
@@ -237,7 +237,7 @@ class SocialApiServiceTest extends TestCase {
'VERSION' => $contact['VERSION'],
'PHOTO;ENCODING=b;TYPE=' . $imageType . ';VALUE=BINARY' => base64_encode($body)
];
-
+
$this->socialProvider
->expects($this->once())->method("getSocialConnector")->with($network);
$provider->expects($this->once())->method("supportsContact")->with($contact);
@@ -306,7 +306,7 @@ class SocialApiServiceTest extends TestCase {
'VERSION' => $contact['VERSION'],
'PHOTO' => "data:".$imageType.";base64," . base64_encode($body)
];
-
+
$this->socialProvider
->expects($this->once())->method("getSocialConnector")->with($network);
$provider->expects($this->once())->method("supportsContact")->with($contact);
@@ -442,7 +442,17 @@ class SocialApiServiceTest extends TestCase {
$this->setupAddressbooks();
- $result = $this->service->updateAddressbooks('any', 'mrstest');
+ if ($syncAllowedByAdmin === 'yes' && $bgSyncEnabledByUser === 'yes') {
+ $this->socialProvider
+ ->expects($this->atLeastOnce())
+ ->method('getSocialConnectors');
+ }
+
+ $this->socialProvider
+ ->expects($this->never())
+ ->method('getSocialConnector');
+
+ $result = $this->service->updateAddressbooks('mrstest');
$this->assertEquals($expected, $result->getStatus());
@@ -474,7 +484,7 @@ class SocialApiServiceTest extends TestCase {
$this->setupAddressbooks();
- $result = $this->service->updateAddressbooks('any', 'msstest');
+ $result = $this->service->updateAddressbooks('msstest');
$this->assertEquals(Http::STATUS_PARTIAL_CONTENT, $result->getStatus());
@@ -502,7 +512,7 @@ class SocialApiServiceTest extends TestCase {
$this->setupAddressbooks();
- $result = $this->service->updateAddressbooks('any', 'mrstest', 'contacts2', '22222222-2222-2222-2222-222222222222');
+ $result = $this->service->updateAddressbooks('mrstest', 'contacts2', '22222222-2222-2222-2222-222222222222');
$this->assertEquals($expected, $result->getStatus());