diff options
Diffstat (limited to 'tests/lib/Accounts/AccountPropertyTest.php')
-rw-r--r-- | tests/lib/Accounts/AccountPropertyTest.php | 112 |
1 files changed, 72 insertions, 40 deletions
diff --git a/tests/lib/Accounts/AccountPropertyTest.php b/tests/lib/Accounts/AccountPropertyTest.php index afd807a44b4..b92e45176a3 100644 --- a/tests/lib/Accounts/AccountPropertyTest.php +++ b/tests/lib/Accounts/AccountPropertyTest.php @@ -1,24 +1,8 @@ <?php + /** - * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net> - * - * @author Julius Härtl <jus@bitgrid.net> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * 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 - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace Test\Accounts; @@ -33,67 +17,115 @@ use Test\TestCase; * @package Test\Accounts */ class AccountPropertyTest extends TestCase { - public function testConstructor() { + public function testConstructor(): void { $accountProperty = new AccountProperty( IAccountManager::PROPERTY_WEBSITE, 'https://example.com', - IAccountManager::VISIBILITY_PUBLIC, - IAccountManager::VERIFIED + IAccountManager::SCOPE_PUBLISHED, + IAccountManager::VERIFIED, + '' ); $this->assertEquals(IAccountManager::PROPERTY_WEBSITE, $accountProperty->getName()); $this->assertEquals('https://example.com', $accountProperty->getValue()); - $this->assertEquals(IAccountManager::VISIBILITY_PUBLIC, $accountProperty->getScope()); + $this->assertEquals(IAccountManager::SCOPE_PUBLISHED, $accountProperty->getScope()); $this->assertEquals(IAccountManager::VERIFIED, $accountProperty->getVerified()); } - public function testSetValue() { + public function testSetValue(): void { $accountProperty = new AccountProperty( IAccountManager::PROPERTY_WEBSITE, 'https://example.com', - IAccountManager::VISIBILITY_PUBLIC, - IAccountManager::VERIFIED + IAccountManager::SCOPE_PUBLISHED, + IAccountManager::VERIFIED, + '' ); $actualReturn = $accountProperty->setValue('https://example.org'); $this->assertEquals('https://example.org', $accountProperty->getValue()); $this->assertEquals('https://example.org', $actualReturn->getValue()); } - public function testSetScope() { + public function testSetScope(): void { $accountProperty = new AccountProperty( IAccountManager::PROPERTY_WEBSITE, 'https://example.com', - IAccountManager::VISIBILITY_PUBLIC, - IAccountManager::VERIFIED + IAccountManager::SCOPE_PUBLISHED, + IAccountManager::VERIFIED, + '' ); - $actualReturn = $accountProperty->setScope(IAccountManager::VISIBILITY_PRIVATE); - $this->assertEquals(IAccountManager::VISIBILITY_PRIVATE, $accountProperty->getScope()); - $this->assertEquals(IAccountManager::VISIBILITY_PRIVATE, $actualReturn->getScope()); + $actualReturn = $accountProperty->setScope(IAccountManager::SCOPE_LOCAL); + $this->assertEquals(IAccountManager::SCOPE_LOCAL, $accountProperty->getScope()); + $this->assertEquals(IAccountManager::SCOPE_LOCAL, $actualReturn->getScope()); + } + + public static function scopesProvider(): array { + return [ + // current values + [IAccountManager::SCOPE_PRIVATE, IAccountManager::SCOPE_PRIVATE], + [IAccountManager::SCOPE_LOCAL, IAccountManager::SCOPE_LOCAL], + [IAccountManager::SCOPE_FEDERATED, IAccountManager::SCOPE_FEDERATED], + [IAccountManager::SCOPE_PUBLISHED, IAccountManager::SCOPE_PUBLISHED], + // invalid values + ['unknown', null], + ['v2-unknown', null], + ]; } - public function testSetVerified() { + #[\PHPUnit\Framework\Attributes\DataProvider('scopesProvider')] + public function testSetScopeMapping(string $storedScope, ?string $returnedScope): void { + if ($returnedScope === null) { + $this->expectException(\InvalidArgumentException::class); + } $accountProperty = new AccountProperty( IAccountManager::PROPERTY_WEBSITE, 'https://example.com', - IAccountManager::VISIBILITY_PUBLIC, - IAccountManager::VERIFIED + $storedScope, + IAccountManager::VERIFIED, + '' + ); + $this->assertEquals($returnedScope, $accountProperty->getScope()); + } + + public function testSetVerified(): void { + $accountProperty = new AccountProperty( + IAccountManager::PROPERTY_WEBSITE, + 'https://example.com', + IAccountManager::SCOPE_PUBLISHED, + IAccountManager::VERIFIED, + '' ); $actualReturn = $accountProperty->setVerified(IAccountManager::NOT_VERIFIED); $this->assertEquals(IAccountManager::NOT_VERIFIED, $accountProperty->getVerified()); $this->assertEquals(IAccountManager::NOT_VERIFIED, $actualReturn->getVerified()); } - public function testJsonSerialize() { + public function testSetVerificationData(): void { + $accountProperty = new AccountProperty( + IAccountManager::PROPERTY_WEBSITE, + 'https://example.com', + IAccountManager::SCOPE_PUBLISHED, + IAccountManager::VERIFIED, + '' + ); + $token = uniqid(); + $actualReturn = $accountProperty->setVerificationData($token); + $this->assertEquals($token, $accountProperty->getVerificationData()); + $this->assertEquals($token, $actualReturn->getVerificationData()); + } + + public function testJsonSerialize(): void { $accountProperty = new AccountProperty( IAccountManager::PROPERTY_WEBSITE, 'https://example.com', - IAccountManager::VISIBILITY_PUBLIC, - IAccountManager::VERIFIED + IAccountManager::SCOPE_PUBLISHED, + IAccountManager::VERIFIED, + '60a7a633b74af', ); $this->assertEquals([ 'name' => IAccountManager::PROPERTY_WEBSITE, 'value' => 'https://example.com', - 'scope' => IAccountManager::VISIBILITY_PUBLIC, - 'verified' => IAccountManager::VERIFIED + 'scope' => IAccountManager::SCOPE_PUBLISHED, + 'verified' => IAccountManager::VERIFIED, + 'verificationData' => '60a7a633b74af' ], $accountProperty->jsonSerialize()); } } |