Skip to content

Commit 0059c1b

Browse files
committed
Extract the EmojiService from user status and add an OCP interface
Signed-off-by: Joas Schilling <[email protected]>
1 parent 57ecf55 commit 0059c1b

File tree

15 files changed

+91
-186
lines changed

15 files changed

+91
-186
lines changed

apps/user_status/composer/composer/autoload_classmap.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
'OCA\\UserStatus\\Migration\\Version0002Date20200902144824' => $baseDir . '/../lib/Migration/Version0002Date20200902144824.php',
3232
'OCA\\UserStatus\\Migration\\Version1000Date20201111130204' => $baseDir . '/../lib/Migration/Version1000Date20201111130204.php',
3333
'OCA\\UserStatus\\Migration\\Version2301Date20210809144824' => $baseDir . '/../lib/Migration/Version2301Date20210809144824.php',
34-
'OCA\\UserStatus\\Service\\EmojiService' => $baseDir . '/../lib/Service/EmojiService.php',
3534
'OCA\\UserStatus\\Service\\JSDataService' => $baseDir . '/../lib/Service/JSDataService.php',
3635
'OCA\\UserStatus\\Service\\PredefinedStatusService' => $baseDir . '/../lib/Service/PredefinedStatusService.php',
3736
'OCA\\UserStatus\\Service\\StatusService' => $baseDir . '/../lib/Service/StatusService.php',

apps/user_status/composer/composer/autoload_static.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ class ComposerStaticInitUserStatus
4646
'OCA\\UserStatus\\Migration\\Version0002Date20200902144824' => __DIR__ . '/..' . '/../lib/Migration/Version0002Date20200902144824.php',
4747
'OCA\\UserStatus\\Migration\\Version1000Date20201111130204' => __DIR__ . '/..' . '/../lib/Migration/Version1000Date20201111130204.php',
4848
'OCA\\UserStatus\\Migration\\Version2301Date20210809144824' => __DIR__ . '/..' . '/../lib/Migration/Version2301Date20210809144824.php',
49-
'OCA\\UserStatus\\Service\\EmojiService' => __DIR__ . '/..' . '/../lib/Service/EmojiService.php',
5049
'OCA\\UserStatus\\Service\\JSDataService' => __DIR__ . '/..' . '/../lib/Service/JSDataService.php',
5150
'OCA\\UserStatus\\Service\\PredefinedStatusService' => __DIR__ . '/..' . '/../lib/Service/PredefinedStatusService.php',
5251
'OCA\\UserStatus\\Service\\StatusService' => __DIR__ . '/..' . '/../lib/Service/StatusService.php',

apps/user_status/lib/Capabilities.php

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,19 @@
2525
*/
2626
namespace OCA\UserStatus;
2727

28-
use OCA\UserStatus\Service\EmojiService;
2928
use OCP\Capabilities\ICapability;
29+
use OCP\IEmojiHelper;
3030

3131
/**
3232
* Class Capabilities
3333
*
3434
* @package OCA\UserStatus
3535
*/
3636
class Capabilities implements ICapability {
37+
private IEmojiHelper $emojiHelper;
3738

38-
/** @var EmojiService */
39-
private $emojiService;
40-
41-
/**
42-
* Capabilities constructor.
43-
*
44-
* @param EmojiService $emojiService
45-
*/
46-
public function __construct(EmojiService $emojiService) {
47-
$this->emojiService = $emojiService;
39+
public function __construct(IEmojiHelper $emojiHelper) {
40+
$this->emojiHelper = $emojiHelper;
4841
}
4942

5043
/**
@@ -54,7 +47,7 @@ public function getCapabilities() {
5447
return [
5548
'user_status' => [
5649
'enabled' => true,
57-
'supports_emoji' => $this->emojiService->doesPlatformSupportEmoji(),
50+
'supports_emoji' => $this->emojiHelper->doesPlatformSupportEmoji(),
5851
],
5952
];
6053
}

apps/user_status/lib/Service/EmojiService.php

Lines changed: 0 additions & 102 deletions
This file was deleted.

apps/user_status/lib/Service/StatusService.php

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
use OCP\AppFramework\Utility\ITimeFactory;
3838
use OCP\DB\Exception;
3939
use OCP\IConfig;
40+
use OCP\IEmojiHelper;
4041
use OCP\IUser;
4142
use OCP\UserStatus\IUserStatus;
4243

@@ -56,8 +57,7 @@ class StatusService {
5657
/** @var PredefinedStatusService */
5758
private $predefinedStatusService;
5859

59-
/** @var EmojiService */
60-
private $emojiService;
60+
private IEmojiHelper $emojiHelper;
6161

6262
/** @var bool */
6363
private $shareeEnumeration;
@@ -95,24 +95,15 @@ class StatusService {
9595
/** @var int */
9696
public const MAXIMUM_MESSAGE_LENGTH = 80;
9797

98-
/**
99-
* StatusService constructor.
100-
*
101-
* @param UserStatusMapper $mapper
102-
* @param ITimeFactory $timeFactory
103-
* @param PredefinedStatusService $defaultStatusService
104-
* @param EmojiService $emojiService
105-
* @param IConfig $config
106-
*/
10798
public function __construct(UserStatusMapper $mapper,
10899
ITimeFactory $timeFactory,
109100
PredefinedStatusService $defaultStatusService,
110-
EmojiService $emojiService,
101+
IEmojiHelper $emojiHelper,
111102
IConfig $config) {
112103
$this->mapper = $mapper;
113104
$this->timeFactory = $timeFactory;
114105
$this->predefinedStatusService = $defaultStatusService;
115-
$this->emojiService = $emojiService;
106+
$this->emojiHelper = $emojiHelper;
116107
$this->shareeEnumeration = $config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes';
117108
$this->shareeEnumerationInGroupOnly = $this->shareeEnumeration && $config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_group', 'no') === 'yes';
118109
$this->shareeEnumerationPhone = $this->shareeEnumeration && $config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_phone', 'no') === 'yes';
@@ -334,7 +325,7 @@ public function setCustomMessage(string $userId,
334325
}
335326

336327
// Check if statusIcon contains only one character
337-
if ($statusIcon !== null && !$this->emojiService->isValidEmoji($statusIcon)) {
328+
if ($statusIcon !== null && !$this->emojiHelper->isValidSingleEmoji($statusIcon)) {
338329
throw new InvalidStatusIconException('Status-Icon is longer than one character');
339330
}
340331
// Check for maximum length of custom message

apps/user_status/tests/Unit/CapabilitiesTest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,22 @@
2626
namespace OCA\UserStatus\Tests;
2727

2828
use OCA\UserStatus\Capabilities;
29-
use OCA\UserStatus\Service\EmojiService;
29+
use OCP\IEmojiHelper;
3030
use Test\TestCase;
3131

3232
class CapabilitiesTest extends TestCase {
3333

34-
/** @var EmojiService|\PHPUnit\Framework\MockObject\MockObject */
35-
private $emojiService;
34+
/** @var IEmojiHelper|\PHPUnit\Framework\MockObject\MockObject */
35+
private $emojiHelper;
3636

3737
/** @var Capabilities */
3838
private $capabilities;
3939

4040
protected function setUp(): void {
4141
parent::setUp();
4242

43-
$this->emojiService = $this->createMock(EmojiService::class);
44-
$this->capabilities = new Capabilities($this->emojiService);
43+
$this->emojiHelper = $this->createMock(IEmojiHelper::class);
44+
$this->capabilities = new Capabilities($this->emojiHelper);
4545
}
4646

4747
/**
@@ -50,7 +50,7 @@ protected function setUp(): void {
5050
* @dataProvider getCapabilitiesDataProvider
5151
*/
5252
public function testGetCapabilities(bool $supportsEmojis): void {
53-
$this->emojiService->expects($this->once())
53+
$this->emojiHelper->expects($this->once())
5454
->method('doesPlatformSupportEmoji')
5555
->willReturn($supportsEmojis);
5656

apps/user_status/tests/Unit/Service/StatusServiceTest.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@
3535
use OCA\UserStatus\Exception\InvalidStatusIconException;
3636
use OCA\UserStatus\Exception\InvalidStatusTypeException;
3737
use OCA\UserStatus\Exception\StatusMessageTooLongException;
38-
use OCA\UserStatus\Service\EmojiService;
3938
use OCA\UserStatus\Service\PredefinedStatusService;
4039
use OCA\UserStatus\Service\StatusService;
4140
use OCP\AppFramework\Db\DoesNotExistException;
4241
use OCP\AppFramework\Utility\ITimeFactory;
4342
use OCP\DB\Exception;
4443
use OCP\IConfig;
44+
use OCP\IEmojiHelper;
4545
use OCP\UserStatus\IUserStatus;
4646
use Test\TestCase;
4747

@@ -56,8 +56,8 @@ class StatusServiceTest extends TestCase {
5656
/** @var PredefinedStatusService|\PHPUnit\Framework\MockObject\MockObject */
5757
private $predefinedStatusService;
5858

59-
/** @var EmojiService|\PHPUnit\Framework\MockObject\MockObject */
60-
private $emojiService;
59+
/** @var IEmojiHelper|\PHPUnit\Framework\MockObject\MockObject */
60+
private $emojiHelper;
6161

6262
/** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
6363
private $config;
@@ -71,7 +71,7 @@ protected function setUp(): void {
7171
$this->mapper = $this->createMock(UserStatusMapper::class);
7272
$this->timeFactory = $this->createMock(ITimeFactory::class);
7373
$this->predefinedStatusService = $this->createMock(PredefinedStatusService::class);
74-
$this->emojiService = $this->createMock(EmojiService::class);
74+
$this->emojiHelper = $this->createMock(IEmojiHelper::class);
7575

7676
$this->config = $this->createMock(IConfig::class);
7777

@@ -84,7 +84,7 @@ protected function setUp(): void {
8484
$this->service = new StatusService($this->mapper,
8585
$this->timeFactory,
8686
$this->predefinedStatusService,
87-
$this->emojiService,
87+
$this->emojiHelper,
8888
$this->config);
8989
}
9090

@@ -138,7 +138,7 @@ public function testFindAllRecentStatusChangesNoEnumeration(): void {
138138
$this->service = new StatusService($this->mapper,
139139
$this->timeFactory,
140140
$this->predefinedStatusService,
141-
$this->emojiService,
141+
$this->emojiHelper,
142142
$this->config);
143143

144144
$this->assertEquals([], $this->service->findAllRecentStatusChanges(20, 50));
@@ -155,7 +155,7 @@ public function testFindAllRecentStatusChangesNoEnumeration(): void {
155155
$this->service = new StatusService($this->mapper,
156156
$this->timeFactory,
157157
$this->predefinedStatusService,
158-
$this->emojiService,
158+
$this->emojiHelper,
159159
$this->config);
160160

161161
$this->assertEquals([], $this->service->findAllRecentStatusChanges(20, 50));
@@ -519,7 +519,7 @@ public function testSetCustomMessage(string $userId,
519519
->willThrowException(new DoesNotExistException(''));
520520
}
521521

522-
$this->emojiService->method('isValidEmoji')
522+
$this->emojiHelper->method('isValidSingleEmoji')
523523
->with($statusIcon)
524524
->willReturn($supportsEmoji);
525525

lib/composer/composer/autoload_classmap.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,7 @@
403403
'OCP\\IDBConnection' => $baseDir . '/lib/public/IDBConnection.php',
404404
'OCP\\IDateTimeFormatter' => $baseDir . '/lib/public/IDateTimeFormatter.php',
405405
'OCP\\IDateTimeZone' => $baseDir . '/lib/public/IDateTimeZone.php',
406+
'OCP\\IEmojiHelper' => $baseDir . '/lib/public/IEmojiHelper.php',
406407
'OCP\\IEventSource' => $baseDir . '/lib/public/IEventSource.php',
407408
'OCP\\IGroup' => $baseDir . '/lib/public/IGroup.php',
408409
'OCP\\IGroupManager' => $baseDir . '/lib/public/IGroupManager.php',
@@ -813,7 +814,6 @@
813814
'OC\\Command\\FileAccess' => $baseDir . '/lib/private/Command/FileAccess.php',
814815
'OC\\Command\\QueueBus' => $baseDir . '/lib/private/Command/QueueBus.php',
815816
'OC\\Comments\\Comment' => $baseDir . '/lib/private/Comments/Comment.php',
816-
'OC\\Comments\\EmojiHelper' => $baseDir . '/lib/private/Comments/EmojiHelper.php',
817817
'OC\\Comments\\Manager' => $baseDir . '/lib/private/Comments/Manager.php',
818818
'OC\\Comments\\ManagerFactory' => $baseDir . '/lib/private/Comments/ManagerFactory.php',
819819
'OC\\Config' => $baseDir . '/lib/private/Config.php',
@@ -1078,6 +1078,7 @@
10781078
'OC\\Diagnostics\\QueryLogger' => $baseDir . '/lib/private/Diagnostics/QueryLogger.php',
10791079
'OC\\DirectEditing\\Manager' => $baseDir . '/lib/private/DirectEditing/Manager.php',
10801080
'OC\\DirectEditing\\Token' => $baseDir . '/lib/private/DirectEditing/Token.php',
1081+
'OC\\EmojiHelper' => $baseDir . '/lib/private/EmojiHelper.php',
10811082
'OC\\Encryption\\DecryptAll' => $baseDir . '/lib/private/Encryption/DecryptAll.php',
10821083
'OC\\Encryption\\EncryptionWrapper' => $baseDir . '/lib/private/Encryption/EncryptionWrapper.php',
10831084
'OC\\Encryption\\Exceptions\\DecryptionFailedException' => $baseDir . '/lib/private/Encryption/Exceptions/DecryptionFailedException.php',

lib/composer/composer/autoload_static.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
432432
'OCP\\IDBConnection' => __DIR__ . '/../../..' . '/lib/public/IDBConnection.php',
433433
'OCP\\IDateTimeFormatter' => __DIR__ . '/../../..' . '/lib/public/IDateTimeFormatter.php',
434434
'OCP\\IDateTimeZone' => __DIR__ . '/../../..' . '/lib/public/IDateTimeZone.php',
435+
'OCP\\IEmojiHelper' => __DIR__ . '/../../..' . '/lib/public/IEmojiHelper.php',
435436
'OCP\\IEventSource' => __DIR__ . '/../../..' . '/lib/public/IEventSource.php',
436437
'OCP\\IGroup' => __DIR__ . '/../../..' . '/lib/public/IGroup.php',
437438
'OCP\\IGroupManager' => __DIR__ . '/../../..' . '/lib/public/IGroupManager.php',
@@ -842,7 +843,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
842843
'OC\\Command\\FileAccess' => __DIR__ . '/../../..' . '/lib/private/Command/FileAccess.php',
843844
'OC\\Command\\QueueBus' => __DIR__ . '/../../..' . '/lib/private/Command/QueueBus.php',
844845
'OC\\Comments\\Comment' => __DIR__ . '/../../..' . '/lib/private/Comments/Comment.php',
845-
'OC\\Comments\\EmojiHelper' => __DIR__ . '/../../..' . '/lib/private/Comments/EmojiHelper.php',
846846
'OC\\Comments\\Manager' => __DIR__ . '/../../..' . '/lib/private/Comments/Manager.php',
847847
'OC\\Comments\\ManagerFactory' => __DIR__ . '/../../..' . '/lib/private/Comments/ManagerFactory.php',
848848
'OC\\Config' => __DIR__ . '/../../..' . '/lib/private/Config.php',
@@ -1107,6 +1107,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
11071107
'OC\\Diagnostics\\QueryLogger' => __DIR__ . '/../../..' . '/lib/private/Diagnostics/QueryLogger.php',
11081108
'OC\\DirectEditing\\Manager' => __DIR__ . '/../../..' . '/lib/private/DirectEditing/Manager.php',
11091109
'OC\\DirectEditing\\Token' => __DIR__ . '/../../..' . '/lib/private/DirectEditing/Token.php',
1110+
'OC\\EmojiHelper' => __DIR__ . '/../../..' . '/lib/private/EmojiHelper.php',
11101111
'OC\\Encryption\\DecryptAll' => __DIR__ . '/../../..' . '/lib/private/Encryption/DecryptAll.php',
11111112
'OC\\Encryption\\EncryptionWrapper' => __DIR__ . '/../../..' . '/lib/private/Encryption/EncryptionWrapper.php',
11121113
'OC\\Encryption\\Exceptions\\DecryptionFailedException' => __DIR__ . '/../../..' . '/lib/private/Encryption/Exceptions/DecryptionFailedException.php',

0 commit comments

Comments
 (0)