mirror of
https://github.com/flarum/core.git
synced 2025-07-30 21:20:24 +02:00
User Preferences Extender and Tests (#2463)
This commit is contained in:
committed by
GitHub
parent
641619e820
commit
eed407812f
@@ -14,6 +14,7 @@ use Flarum\Tests\integration\RetrievesAuthorizedUsers;
|
||||
use Flarum\Tests\integration\TestCase;
|
||||
use Flarum\User\DisplayName\DriverInterface;
|
||||
use Flarum\User\User;
|
||||
use Illuminate\Support\Arr;
|
||||
|
||||
class UserTest extends TestCase
|
||||
{
|
||||
@@ -35,6 +36,14 @@ class UserTest extends TestCase
|
||||
]);
|
||||
}
|
||||
|
||||
protected function registerTestPreference()
|
||||
{
|
||||
$this->extend(
|
||||
(new Extend\User())
|
||||
->registerPreference('test', 'boolval', true)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
@@ -104,6 +113,51 @@ class UserTest extends TestCase
|
||||
|
||||
$this->assertNotContains('viewUserList', $user->getPermissions());
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function can_add_user_preference()
|
||||
{
|
||||
$this->registerTestPreference();
|
||||
$this->prepDb();
|
||||
|
||||
/** @var User $user */
|
||||
$user = User::find(2);
|
||||
$this->assertEquals(true, Arr::get($user->preferences, 'test'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function can_store_user_preference()
|
||||
{
|
||||
$this->registerTestPreference();
|
||||
$this->prepDb();
|
||||
|
||||
/** @var User $user */
|
||||
$user = User::find(2);
|
||||
|
||||
$user->setPreference('test', false);
|
||||
|
||||
$this->assertEquals(false, $user->getPreference('test'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function storing_user_preference_modified_by_transformer()
|
||||
{
|
||||
$this->registerTestPreference();
|
||||
$this->prepDb();
|
||||
|
||||
/** @var User $user */
|
||||
$user = User::find(2);
|
||||
|
||||
$user->setPreference('test', []);
|
||||
|
||||
$this->assertEquals(false, $user->getPreference('test'));
|
||||
}
|
||||
}
|
||||
|
||||
class CustomDisplayNameDriver implements DriverInterface
|
||||
|
Reference in New Issue
Block a user