123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- <?php
- /**
- * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
- namespace Test\Accounts;
- use OC\Accounts\AccountProperty;
- use OCP\Accounts\IAccountManager;
- use Test\TestCase;
- /**
- * Class AccountPropertyTest
- *
- * @package Test\Accounts
- */
- class AccountPropertyTest extends TestCase {
- public function testConstructor() {
- $accountProperty = new AccountProperty(
- IAccountManager::PROPERTY_WEBSITE,
- 'https://example.com',
- IAccountManager::SCOPE_PUBLISHED,
- IAccountManager::VERIFIED,
- ''
- );
- $this->assertEquals(IAccountManager::PROPERTY_WEBSITE, $accountProperty->getName());
- $this->assertEquals('https://example.com', $accountProperty->getValue());
- $this->assertEquals(IAccountManager::SCOPE_PUBLISHED, $accountProperty->getScope());
- $this->assertEquals(IAccountManager::VERIFIED, $accountProperty->getVerified());
- }
- public function testSetValue() {
- $accountProperty = new AccountProperty(
- IAccountManager::PROPERTY_WEBSITE,
- 'https://example.com',
- 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() {
- $accountProperty = new AccountProperty(
- IAccountManager::PROPERTY_WEBSITE,
- 'https://example.com',
- IAccountManager::SCOPE_PUBLISHED,
- IAccountManager::VERIFIED,
- ''
- );
- $actualReturn = $accountProperty->setScope(IAccountManager::SCOPE_LOCAL);
- $this->assertEquals(IAccountManager::SCOPE_LOCAL, $accountProperty->getScope());
- $this->assertEquals(IAccountManager::SCOPE_LOCAL, $actualReturn->getScope());
- }
- public function scopesProvider() {
- 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],
- // legacy values
- [IAccountManager::VISIBILITY_PRIVATE, IAccountManager::SCOPE_LOCAL],
- [IAccountManager::VISIBILITY_CONTACTS_ONLY, IAccountManager::SCOPE_FEDERATED],
- [IAccountManager::VISIBILITY_PUBLIC, IAccountManager::SCOPE_PUBLISHED],
- ['', IAccountManager::SCOPE_LOCAL],
- // invalid values
- ['unknown', null],
- ['v2-unknown', null],
- ];
- }
- /**
- * @dataProvider scopesProvider
- */
- public function testSetScopeMapping(string $storedScope, ?string $returnedScope) {
- if ($returnedScope === null) {
- $this->expectException(\InvalidArgumentException::class);
- }
- $accountProperty = new AccountProperty(
- IAccountManager::PROPERTY_WEBSITE,
- 'https://example.com',
- $storedScope,
- IAccountManager::VERIFIED,
- ''
- );
- $this->assertEquals($returnedScope, $accountProperty->getScope());
- }
- public function testSetVerified() {
- $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 testSetVerificationData() {
- $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() {
- $accountProperty = new AccountProperty(
- IAccountManager::PROPERTY_WEBSITE,
- 'https://example.com',
- IAccountManager::SCOPE_PUBLISHED,
- IAccountManager::VERIFIED,
- '60a7a633b74af',
- );
- $this->assertEquals([
- 'name' => IAccountManager::PROPERTY_WEBSITE,
- 'value' => 'https://example.com',
- 'scope' => IAccountManager::SCOPE_PUBLISHED,
- 'verified' => IAccountManager::VERIFIED,
- 'verificationData' => '60a7a633b74af'
- ], $accountProperty->jsonSerialize());
- }
- }
|