diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/dav/l10n/sv.js | 26 | ||||
-rw-r--r-- | apps/dav/l10n/sv.json | 26 | ||||
-rw-r--r-- | apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php | 46 | ||||
-rw-r--r-- | apps/theming/lib/Controller/ThemingController.php | 1 | ||||
-rw-r--r-- | apps/theming/tests/Controller/ThemingControllerTest.php | 4 | ||||
-rw-r--r-- | apps/twofactor_backupcodes/appinfo/app.php | 3 | ||||
-rw-r--r-- | apps/twofactor_backupcodes/appinfo/routes.php | 2 | ||||
-rw-r--r-- | apps/twofactor_backupcodes/l10n/de.js | 2 | ||||
-rw-r--r-- | apps/twofactor_backupcodes/l10n/de.json | 2 | ||||
-rw-r--r-- | apps/twofactor_backupcodes/lib/Activity/Provider.php | 5 | ||||
-rw-r--r-- | apps/twofactor_backupcodes/lib/Db/BackupCodeMapper.php | 1 | ||||
-rw-r--r-- | apps/twofactor_backupcodes/settings/personal.php | 3 | ||||
-rw-r--r-- | apps/twofactor_backupcodes/tests/Unit/Activity/GenericProviderTest.php | 132 | ||||
-rw-r--r-- | apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php | 55 |
14 files changed, 244 insertions, 64 deletions
diff --git a/apps/dav/l10n/sv.js b/apps/dav/l10n/sv.js index 28eea0c5867..25cd0d797c8 100644 --- a/apps/dav/l10n/sv.js +++ b/apps/dav/l10n/sv.js @@ -2,7 +2,7 @@ OC.L10N.register( "dav", { "Calendar" : "Kalender", - "Todos" : "Att göra", + "Todos" : "Uppgifter", "{actor} created calendar {calendar}" : "{actor} skapade kalender {calendar}", "You created calendar {calendar}" : "Du skapade kalender {calendar}", "{actor} deleted calendar {calendar}" : "{actor} raderade kalender {calendar}", @@ -26,20 +26,20 @@ OC.L10N.register( "You deleted event {event} from calendar {calendar}" : "Du raderade händelse {event} från kalender {calendar}", "{actor} updated event {event} in calendar {calendar}" : "{actor} uppdaterade händelse {event} i kalender {calendar}", "You updated event {event} in calendar {calendar}" : "Du uppdaterade händelse {event} i kalender {calendar}", - "{actor} created todo {todo} in list {calendar}" : "{actor} skapade att-göra {todo} i listan {calendar}", - "You created todo {todo} in list {calendar}" : "Du skapade att-göra {todo} i listan {calendar}", - "{actor} deleted todo {todo} from list {calendar}" : "{actor} raderade att-göra {todo} från listan {calendar}", - "You deleted todo {todo} from list {calendar}" : "Du raderade att-göra {todo} från listan {calendar}", - "{actor} updated todo {todo} in list {calendar}" : "{actor} uppdaterade att-göra {todo} i listan {calendar}", - "You updated todo {todo} in list {calendar}" : "Du uppdaterade att-göra {todo} i listan {calendar}", - "{actor} solved todo {todo} in list {calendar}" : "{actor} löste att-göra {todo} i listan {calendar}", - "You solved todo {todo} in list {calendar}" : "Du löste att-göra {todo} i listan {calendar}", - "{actor} reopened todo {todo} in list {calendar}" : "{actor} återupptog att-göra {todo} i listan {calendar}", - "You reopened todo {todo} in list {calendar}" : "Du återupptog att-göra {todo} i listan {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} skapade uppgift {todo} i listan {calendar}", + "You created todo {todo} in list {calendar}" : "Du skapade uppgift {todo} i listan {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} raderade uppgift {todo} från listan {calendar}", + "You deleted todo {todo} from list {calendar}" : "Du raderade uppgift {todo} från listan {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} uppdaterade uppgift {todo} i listan {calendar}", + "You updated todo {todo} in list {calendar}" : "Du uppdaterade uppgift {todo} i listan {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} löste uppgift {todo} i listan {calendar}", + "You solved todo {todo} in list {calendar}" : "Du löste uppgift {todo} i listan {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} återupptog uppgift {todo} i listan {calendar}", + "You reopened todo {todo} in list {calendar}" : "Du återupptog uppgift {todo} i listan {calendar}", "A <strong>calendar</strong> was modified" : "En <strong>kalender</strong> modifierades", "A calendar <strong>event</strong> was modified" : "En kalender-<strong>händelse</strong> modifierades", - "A calendar <strong>todo</strong> was modified" : "En kalender <strong>att-göra</strong> modifierades", - "Contact birthdays" : "Kontakters födelsedagar", + "A calendar <strong>todo</strong> was modified" : "En kalender <strong>uppgift</strong> modifierades", + "Contact birthdays" : "Födelsedagar", "Personal" : "Privat", "Contacts" : "Kontakter", "Technical details" : "Tekniska detaljer", diff --git a/apps/dav/l10n/sv.json b/apps/dav/l10n/sv.json index 8dfb9e4e6ba..ba76ca55329 100644 --- a/apps/dav/l10n/sv.json +++ b/apps/dav/l10n/sv.json @@ -1,6 +1,6 @@ { "translations": { "Calendar" : "Kalender", - "Todos" : "Att göra", + "Todos" : "Uppgifter", "{actor} created calendar {calendar}" : "{actor} skapade kalender {calendar}", "You created calendar {calendar}" : "Du skapade kalender {calendar}", "{actor} deleted calendar {calendar}" : "{actor} raderade kalender {calendar}", @@ -24,20 +24,20 @@ "You deleted event {event} from calendar {calendar}" : "Du raderade händelse {event} från kalender {calendar}", "{actor} updated event {event} in calendar {calendar}" : "{actor} uppdaterade händelse {event} i kalender {calendar}", "You updated event {event} in calendar {calendar}" : "Du uppdaterade händelse {event} i kalender {calendar}", - "{actor} created todo {todo} in list {calendar}" : "{actor} skapade att-göra {todo} i listan {calendar}", - "You created todo {todo} in list {calendar}" : "Du skapade att-göra {todo} i listan {calendar}", - "{actor} deleted todo {todo} from list {calendar}" : "{actor} raderade att-göra {todo} från listan {calendar}", - "You deleted todo {todo} from list {calendar}" : "Du raderade att-göra {todo} från listan {calendar}", - "{actor} updated todo {todo} in list {calendar}" : "{actor} uppdaterade att-göra {todo} i listan {calendar}", - "You updated todo {todo} in list {calendar}" : "Du uppdaterade att-göra {todo} i listan {calendar}", - "{actor} solved todo {todo} in list {calendar}" : "{actor} löste att-göra {todo} i listan {calendar}", - "You solved todo {todo} in list {calendar}" : "Du löste att-göra {todo} i listan {calendar}", - "{actor} reopened todo {todo} in list {calendar}" : "{actor} återupptog att-göra {todo} i listan {calendar}", - "You reopened todo {todo} in list {calendar}" : "Du återupptog att-göra {todo} i listan {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} skapade uppgift {todo} i listan {calendar}", + "You created todo {todo} in list {calendar}" : "Du skapade uppgift {todo} i listan {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} raderade uppgift {todo} från listan {calendar}", + "You deleted todo {todo} from list {calendar}" : "Du raderade uppgift {todo} från listan {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} uppdaterade uppgift {todo} i listan {calendar}", + "You updated todo {todo} in list {calendar}" : "Du uppdaterade uppgift {todo} i listan {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} löste uppgift {todo} i listan {calendar}", + "You solved todo {todo} in list {calendar}" : "Du löste uppgift {todo} i listan {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} återupptog uppgift {todo} i listan {calendar}", + "You reopened todo {todo} in list {calendar}" : "Du återupptog uppgift {todo} i listan {calendar}", "A <strong>calendar</strong> was modified" : "En <strong>kalender</strong> modifierades", "A calendar <strong>event</strong> was modified" : "En kalender-<strong>händelse</strong> modifierades", - "A calendar <strong>todo</strong> was modified" : "En kalender <strong>att-göra</strong> modifierades", - "Contact birthdays" : "Kontakters födelsedagar", + "A calendar <strong>todo</strong> was modified" : "En kalender <strong>uppgift</strong> modifierades", + "Contact birthdays" : "Födelsedagar", "Personal" : "Privat", "Contacts" : "Kontakter", "Technical details" : "Tekniska detaljer", diff --git a/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php b/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php index 55329338a92..3c399268124 100644 --- a/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php +++ b/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php @@ -25,18 +25,24 @@ namespace OCA\FederatedFileSharing\Controller; +use OC\Files\Filesystem; use OC\HintException; +use OC\Share\Helper; use OCA\FederatedFileSharing\AddressHandler; +use OCA\FederatedFileSharing\DiscoveryManager; use OCA\FederatedFileSharing\FederatedShareProvider; +use OCA\Files_Sharing\External\Manager; use OCP\AppFramework\Controller; use OCP\AppFramework\Http; use OCP\AppFramework\Http\JSONResponse; +use OCP\Files\StorageInvalidException; use OCP\Http\Client\IClientService; use OCP\IL10N; use OCP\IRequest; use OCP\ISession; use OCP\IUserSession; use OCP\Share\IManager; +use OCP\Util; /** * Class MountPublicLinkController @@ -107,6 +113,7 @@ class MountPublicLinkController extends Controller { * * @NoCSRFRequired * @PublicPage + * @BruteForceProtection publicLink2FederatedShare * * @param string $shareWith * @param string $token @@ -226,22 +233,22 @@ class MountPublicLinkController extends Controller { private function legacyMountPublicLink($token, $remote, $password, $name, $owner, $ownerDisplayName) { // Check for invalid name - if (!\OCP\Util::isValidFileName($name)) { + if (!Util::isValidFileName($name)) { return new JSONResponse(['message' => $this->l->t('The mountpoint name contains invalid characters.')], Http::STATUS_BAD_REQUEST); } $currentUser = $this->userSession->getUser()->getUID(); $currentServer = $this->addressHandler->generateRemoteURL(); - if (\OC\Share\Helper::isSameUserOnSameServer($owner, $remote, $currentUser, $currentServer)) { + if (Helper::isSameUserOnSameServer($owner, $remote, $currentUser, $currentServer)) { return new JSONResponse(['message' => $this->l->t('Not allowed to create a federated share with the owner.')], Http::STATUS_BAD_REQUEST); } - $discoveryManager = new \OCA\FederatedFileSharing\DiscoveryManager( + $discoveryManager = new DiscoveryManager( \OC::$server->getMemCacheFactory(), \OC::$server->getHTTPClientService() ); - $externalManager = new \OCA\Files_Sharing\External\Manager( + $externalManager = new Manager( \OC::$server->getDatabaseConnection(), - \OC\Files\Filesystem::getMountManager(), - \OC\Files\Filesystem::getLoader(), + Filesystem::getMountManager(), + Filesystem::getLoader(), \OC::$server->getHTTPClientService(), \OC::$server->getNotificationManager(), $discoveryManager, @@ -249,7 +256,8 @@ class MountPublicLinkController extends Controller { ); // check for ssl cert - if (substr($remote, 0, 5) === 'https') { + + if (strpos($remote, 'https') === 0) { try { $client = $this->clientService->newClient(); $client->get($remote, [ @@ -268,19 +276,19 @@ class MountPublicLinkController extends Controller { try { // check if storage exists $storage->checkStorageAvailability(); - } catch (\OCP\Files\StorageInvalidException $e) { + } catch (StorageInvalidException $e) { // note: checkStorageAvailability will already remove the invalid share - \OCP\Util::writeLog( + Util::writeLog( 'federatedfilesharing', 'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(), - \OCP\Util::DEBUG + Util::DEBUG ); return new JSONResponse(['message' => $this->l->t('Could not authenticate to remote share, password might be wrong')], Http::STATUS_BAD_REQUEST); } catch (\Exception $e) { - \OCP\Util::writeLog( + Util::writeLog( 'federatedfilesharing', 'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(), - \OCP\Util::DEBUG + Util::DEBUG ); $externalManager->removeShare($mount->getMountPoint()); return new JSONResponse(['message' => $this->l->t('Storage not valid')], Http::STATUS_BAD_REQUEST); @@ -295,27 +303,27 @@ class MountPublicLinkController extends Controller { 'legacyMount' => '1' ] ); - } catch (\OCP\Files\StorageInvalidException $e) { - \OCP\Util::writeLog( + } catch (StorageInvalidException $e) { + Util::writeLog( 'federatedfilesharing', 'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(), - \OCP\Util::DEBUG + Util::DEBUG ); return new JSONResponse(['message' => $this->l->t('Storage not valid')], Http::STATUS_BAD_REQUEST); } catch (\Exception $e) { - \OCP\Util::writeLog( + Util::writeLog( 'federatedfilesharing', 'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(), - \OCP\Util::DEBUG + Util::DEBUG ); return new JSONResponse(['message' => $this->l->t('Couldn\'t add remote share')], Http::STATUS_BAD_REQUEST); } } else { $externalManager->removeShare($mount->getMountPoint()); - \OCP\Util::writeLog( + Util::writeLog( 'federatedfilesharing', 'Couldn\'t add remote share', - \OCP\Util::DEBUG + Util::DEBUG ); return new JSONResponse(['message' => $this->l->t('Couldn\'t add remote share')], Http::STATUS_BAD_REQUEST); } diff --git a/apps/theming/lib/Controller/ThemingController.php b/apps/theming/lib/Controller/ThemingController.php index 15bbfc30c54..24ac1c7d8d5 100644 --- a/apps/theming/lib/Controller/ThemingController.php +++ b/apps/theming/lib/Controller/ThemingController.php @@ -374,6 +374,7 @@ class ThemingController extends Controller { '; $responseCss .= sprintf('.nc-theming-main-background {background-color: %s}' . "\n", $color); $responseCss .= sprintf('.nc-theming-main-text {color: %s}' . "\n", $color); + $responseCss .= sprintf('#app-navigation li:hover > a, #app-navigation li:focus > a, #app-navigation a:focus, #app-navigation .selected, #app-navigation .selected a, #app-navigation .active, #app-navigation .active a {box-shadow: inset 2px 0 %s}' . "\n", $color); } $logo = $this->config->getAppValue($this->appName, 'logoMime'); diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php index f7c4a9f120e..97a5e985860 100644 --- a/apps/theming/tests/Controller/ThemingControllerTest.php +++ b/apps/theming/tests/Controller/ThemingControllerTest.php @@ -487,6 +487,7 @@ class ThemingControllerTest extends TestCase { '; $expectedData .= sprintf('.nc-theming-main-background {background-color: %s}' . "\n", $color); $expectedData .= sprintf('.nc-theming-main-text {color: %s}' . "\n", $color); + $expectedData .= sprintf('#app-navigation li:hover > a, #app-navigation li:focus > a, #app-navigation a:focus, #app-navigation .selected, #app-navigation .selected a, #app-navigation .active, #app-navigation .active a {box-shadow: inset 2px 0 %s}' . "\n", $color); $expectedData .= '.nc-theming-contrast {color: #ffffff}' . "\n"; $expectedData .= '.icon-file,.icon-filetype-text {' . 'background-image: url(\'./img/core/filetypes/text.svg?v=0\');' . "}\n" . @@ -581,6 +582,7 @@ class ThemingControllerTest extends TestCase { '; $expectedData .= sprintf('.nc-theming-main-background {background-color: %s}' . "\n", $color); $expectedData .= sprintf('.nc-theming-main-text {color: %s}' . "\n", $color); + $expectedData .= sprintf('#app-navigation li:hover > a, #app-navigation li:focus > a, #app-navigation a:focus, #app-navigation .selected, #app-navigation .selected a, #app-navigation .active, #app-navigation .active a {box-shadow: inset 2px 0 %s}' . "\n", $color); $expectedData .= '#header .header-appname, #expandDisplayName { color: #000000; }' . "\n"; $expectedData .= '#header .icon-caret { background-image: url(\'' . \OC::$WEBROOT . '/core/img/actions/caret-dark.svg\'); }' . "\n"; $expectedData .= '.searchbox input[type="search"] { background: transparent url(\'' . \OC::$WEBROOT . '/core/img/actions/search.svg\') no-repeat 6px center; color: #000; }' . "\n"; @@ -768,6 +770,7 @@ class ThemingControllerTest extends TestCase { '; $expectedData .= sprintf('.nc-theming-main-background {background-color: %s}' . "\n", $color); $expectedData .= sprintf('.nc-theming-main-text {color: %s}' . "\n", $color); + $expectedData .= sprintf('#app-navigation li:hover > a, #app-navigation li:focus > a, #app-navigation a:focus, #app-navigation .selected, #app-navigation .selected a, #app-navigation .active, #app-navigation .active a {box-shadow: inset 2px 0 %s}' . "\n", $color); $expectedData .= sprintf( '#header .logo {' . 'background-image: url(\'./logo?v=0\');' . @@ -879,6 +882,7 @@ class ThemingControllerTest extends TestCase { '; $expectedData .= sprintf('.nc-theming-main-background {background-color: %s}' . "\n", $color); $expectedData .= sprintf('.nc-theming-main-text {color: %s}' . "\n", $color); + $expectedData .= sprintf('#app-navigation li:hover > a, #app-navigation li:focus > a, #app-navigation a:focus, #app-navigation .selected, #app-navigation .selected a, #app-navigation .active, #app-navigation .active a {box-shadow: inset 2px 0 %s}' . "\n", $color); $expectedData .= sprintf( '#header .logo {' . 'background-image: url(\'./logo?v=0\');' . diff --git a/apps/twofactor_backupcodes/appinfo/app.php b/apps/twofactor_backupcodes/appinfo/app.php index 31f9b6b8eae..0cb10531360 100644 --- a/apps/twofactor_backupcodes/appinfo/app.php +++ b/apps/twofactor_backupcodes/appinfo/app.php @@ -19,4 +19,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ + +// @codeCoverageIgnoreStart OC_App::registerPersonal('twofactor_backupcodes', 'settings/personal'); +// @codeCoverageIgnoreEnd diff --git a/apps/twofactor_backupcodes/appinfo/routes.php b/apps/twofactor_backupcodes/appinfo/routes.php index f2af12e9b45..0119bfd0b08 100644 --- a/apps/twofactor_backupcodes/appinfo/routes.php +++ b/apps/twofactor_backupcodes/appinfo/routes.php @@ -19,6 +19,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ +// @codeCoverageIgnoreStart return [ 'routes' => [ [ @@ -33,3 +34,4 @@ return [ ], ] ]; +// @codeCoverageIgnoreEnd diff --git a/apps/twofactor_backupcodes/l10n/de.js b/apps/twofactor_backupcodes/l10n/de.js index 96e1fca0759..039b8bea68b 100644 --- a/apps/twofactor_backupcodes/l10n/de.js +++ b/apps/twofactor_backupcodes/l10n/de.js @@ -13,7 +13,7 @@ OC.L10N.register( "Two-factor authentication" : "Zwei-Faktor Authentifizierung", "You successfully logged in using two-factor authentication (%1$s)" : "Erfolgreich mittels Zwei-Faktorauthentifizierung angemeldet (%1$s)", "A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktorauthentifizierung gescheitert (%1$s)", - "You created two-factor backup codes for your account" : "Du hast Zwei-Faktor Sicherungs-Codes für Ihr Konto erstellt", + "You created two-factor backup codes for your account" : "Du hast Zwei-Faktor Sicherungs-Codes für Dein Konto erstellt", "Backup code" : "Backup-Code", "Use backup code" : "Backup-Code verwenden", "Second-factor backup codes" : "Zweitfaktor-Backup-Codes" diff --git a/apps/twofactor_backupcodes/l10n/de.json b/apps/twofactor_backupcodes/l10n/de.json index 6f582fc8bf0..6afdfa52ac4 100644 --- a/apps/twofactor_backupcodes/l10n/de.json +++ b/apps/twofactor_backupcodes/l10n/de.json @@ -11,7 +11,7 @@ "Two-factor authentication" : "Zwei-Faktor Authentifizierung", "You successfully logged in using two-factor authentication (%1$s)" : "Erfolgreich mittels Zwei-Faktorauthentifizierung angemeldet (%1$s)", "A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktorauthentifizierung gescheitert (%1$s)", - "You created two-factor backup codes for your account" : "Du hast Zwei-Faktor Sicherungs-Codes für Ihr Konto erstellt", + "You created two-factor backup codes for your account" : "Du hast Zwei-Faktor Sicherungs-Codes für Dein Konto erstellt", "Backup code" : "Backup-Code", "Use backup code" : "Backup-Code verwenden", "Second-factor backup codes" : "Zweitfaktor-Backup-Codes" diff --git a/apps/twofactor_backupcodes/lib/Activity/Provider.php b/apps/twofactor_backupcodes/lib/Activity/Provider.php index cfb16c9f8d3..9c7aaeae630 100644 --- a/apps/twofactor_backupcodes/lib/Activity/Provider.php +++ b/apps/twofactor_backupcodes/lib/Activity/Provider.php @@ -40,6 +40,11 @@ class Provider implements IProvider { /** @var ILogger */ private $logger; + /** + * @param L10nFactory $l10n + * @param IURLGenerator $urlGenerator + * @param ILogger $logger + */ public function __construct(L10nFactory $l10n, IURLGenerator $urlGenerator, ILogger $logger) { $this->logger = $logger; $this->urlGenerator = $urlGenerator; diff --git a/apps/twofactor_backupcodes/lib/Db/BackupCodeMapper.php b/apps/twofactor_backupcodes/lib/Db/BackupCodeMapper.php index f64e2e9e60b..85cc174fb6a 100644 --- a/apps/twofactor_backupcodes/lib/Db/BackupCodeMapper.php +++ b/apps/twofactor_backupcodes/lib/Db/BackupCodeMapper.php @@ -22,7 +22,6 @@ namespace OCA\TwoFactorBackupCodes\Db; use OCP\AppFramework\Db\Mapper; -use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IDBConnection; use OCP\IUser; diff --git a/apps/twofactor_backupcodes/settings/personal.php b/apps/twofactor_backupcodes/settings/personal.php index 037516e39a3..0a018c0ff28 100644 --- a/apps/twofactor_backupcodes/settings/personal.php +++ b/apps/twofactor_backupcodes/settings/personal.php @@ -1,5 +1,6 @@ <?php - +// @codeCoverageIgnoreStart $tmpl = new \OCP\Template('twofactor_backupcodes', 'personal'); return $tmpl->fetchPage(); +// @codeCoverageIgnoreEnd diff --git a/apps/twofactor_backupcodes/tests/Unit/Activity/GenericProviderTest.php b/apps/twofactor_backupcodes/tests/Unit/Activity/GenericProviderTest.php new file mode 100644 index 00000000000..242c4ab4e8d --- /dev/null +++ b/apps/twofactor_backupcodes/tests/Unit/Activity/GenericProviderTest.php @@ -0,0 +1,132 @@ +<?php + +/** + * @author Christoph Wurst <christoph@winzerhof-wurst.at> + * @copyright Copyright (c) 2016 Christoph Wurst <christoph@winzerhof-wurst.at> + * + * Two-factor backup codes + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OCA\TwoFactorBackupCodes\Test\Unit\Activity; + +use InvalidArgumentException; +use OCA\TwoFactorBackupCodes\Activity\GenericProvider; +use OCP\Activity\IEvent; +use OCP\IL10N; +use OCP\ILogger; +use OCP\IURLGenerator; +use OCP\L10N\IFactory; +use PHPUnit_Framework_MockObject_MockObject; +use Test\TestCase; + +class GenericProviderTest extends TestCase { + + /** @var IL10N|PHPUnit_Framework_MockObject_MockObject */ + private $l10n; + + /** @var IURLGenerator|PHPUnit_Framework_MockObject_MockObject */ + private $urlGenerator; + + /** @var ILogger|PHPUnit_Framework_MockObject_MockObject */ + private $logger; + + /** @var GenericProvider */ + private $provider; + + protected function setUp() { + parent::setUp(); + + $this->l10n = $this->createMock(IFactory::class); + $this->urlGenerator = $this->createMock(IURLGenerator::class); + $this->logger = $this->createMock(ILogger::class); + + $this->provider = new GenericProvider($this->l10n, $this->urlGenerator, $this->logger); + } + + public function testParseUnrelated() { + $lang = 'ru'; + $event = $this->createMock(IEvent::class); + $event->expects($this->once()) + ->method('getType') + ->willReturn('comments'); + $this->setExpectedException(InvalidArgumentException::class); + + $this->provider->parse($lang, $event); + } + + public function subjectData() { + return [ + ['twofactor_success'], + ['twofactor_failed'], + ]; + } + + /** + * @dataProvider subjectData + */ + public function testParse($subject) { + $lang = 'ru'; + $event = $this->createMock(IEvent::class); + $l = $this->createMock(IL10N::class); + + $event->expects($this->once()) + ->method('getType') + ->willReturn('twofactor'); + $this->l10n->expects($this->once()) + ->method('get') + ->with('core', $lang) + ->willReturn($l); + $this->urlGenerator->expects($this->once()) + ->method('imagePath') + ->with('core', 'actions/password.svg') + ->willReturn('path/to/image'); + $this->urlGenerator->expects($this->once()) + ->method('getAbsoluteURL') + ->with('path/to/image') + ->willReturn('absolute/path/to/image'); + $event->expects($this->once()) + ->method('setIcon') + ->with('absolute/path/to/image'); + $event->expects($this->once()) + ->method('getSubject') + ->willReturn($subject); + $event->expects($this->once()) + ->method('setParsedSubject'); + + $this->provider->parse($lang, $event); + } + + public function testParseInvalidSubject() { + $lang = 'ru'; + $l = $this->createMock(IL10N::class); + $event = $this->createMock(IEvent::class); + + $event->expects($this->once()) + ->method('getType') + ->willReturn('twofactor'); + $this->l10n->expects($this->once()) + ->method('get') + ->with('core', $lang) + ->willReturn($l); + $event->expects($this->once()) + ->method('getSubject') + ->willReturn('unrelated'); + + $this->expectException(InvalidArgumentException::class); + $this->provider->parse($lang, $event); + } + +} diff --git a/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php b/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php index 36e85ec1872..e1a13c89c10 100644 --- a/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php +++ b/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php @@ -2,7 +2,7 @@ /** * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @copyright Copyright (c) 2016 Christoph Wurst <christoph@winzerhof-wurst.at> + * @copyright Copyright (c) 2017 Christoph Wurst <christoph@winzerhof-wurst.at> * * Two-factor backup codes * @@ -23,21 +23,27 @@ namespace OCA\TwoFactorBackupCodes\Test\Unit\Activity; use InvalidArgumentException; -use OCA\TwoFactorBackupCodes\Activity\GenericProvider; +use OCA\TwoFactorBackupCodes\Activity\Provider; use OCP\Activity\IEvent; use OCP\IL10N; use OCP\ILogger; use OCP\IURLGenerator; use OCP\L10N\IFactory; +use PHPUnit_Framework_MockObject_MockObject; use Test\TestCase; class ProviderTest extends TestCase { + /** @var IL10N|PHPUnit_Framework_MockObject_MockObject */ private $l10n; + + /** @var IURLGenerator|PHPUnit_Framework_MockObject_MockObject */ private $urlGenerator; + + /** @var ILogger|PHPUnit_Framework_MockObject_MockObject */ private $logger; - /** @var GenericProvider */ + /** @var Provider */ private $provider; protected function setUp() { @@ -47,15 +53,15 @@ class ProviderTest extends TestCase { $this->urlGenerator = $this->createMock(IURLGenerator::class); $this->logger = $this->createMock(ILogger::class); - $this->provider = new GenericProvider($this->l10n, $this->urlGenerator, $this->logger); + $this->provider = new Provider($this->l10n, $this->urlGenerator, $this->logger); } public function testParseUnrelated() { $lang = 'ru'; $event = $this->createMock(IEvent::class); $event->expects($this->once()) - ->method('getType') - ->will($this->returnValue('comments')); + ->method('getApp') + ->willReturn('comments'); $this->setExpectedException(InvalidArgumentException::class); $this->provider->parse($lang, $event); @@ -63,8 +69,7 @@ class ProviderTest extends TestCase { public function subjectData() { return [ - ['twofactor_success'], - ['twofactor_failed'], + ['codes_generated'], ]; } @@ -77,30 +82,50 @@ class ProviderTest extends TestCase { $l = $this->createMock(IL10N::class); $event->expects($this->once()) - ->method('getType') - ->will($this->returnValue('twofactor')); + ->method('getApp') + ->willReturn('twofactor_backupcodes'); $this->l10n->expects($this->once()) ->method('get') - ->with('core', $lang) - ->will($this->returnValue($l)); + ->with('twofactor_backupcodes', $lang) + ->willReturn($l); $this->urlGenerator->expects($this->once()) ->method('imagePath') ->with('core', 'actions/password.svg') - ->will($this->returnValue('path/to/image')); + ->willReturn('path/to/image'); $this->urlGenerator->expects($this->once()) ->method('getAbsoluteURL') ->with('path/to/image') - ->will($this->returnValue('absolute/path/to/image')); + ->willReturn('absolute/path/to/image'); $event->expects($this->once()) ->method('setIcon') ->with('absolute/path/to/image'); $event->expects($this->once()) ->method('getSubject') - ->will($this->returnValue($subject)); + ->willReturn($subject); $event->expects($this->once()) ->method('setParsedSubject'); $this->provider->parse($lang, $event); } + public function testParseInvalidSubject() { + $lang = 'ru'; + $l = $this->createMock(IL10N::class); + $event = $this->createMock(IEvent::class); + + $event->expects($this->once()) + ->method('getApp') + ->willReturn('twofactor_backupcodes'); + $this->l10n->expects($this->once()) + ->method('get') + ->with('twofactor_backupcodes', $lang) + ->willReturn($l); + $event->expects($this->once()) + ->method('getSubject') + ->willReturn('unrelated'); + + $this->expectException(InvalidArgumentException::class); + $this->provider->parse($lang, $event); + } + } |