110 lines
3.7 KiB
PHP
110 lines
3.7 KiB
PHP
<?php
|
|
|
|
use Miniflux\Model;
|
|
|
|
require_once __DIR__.'/BaseTest.php';
|
|
|
|
class UserModelTest extends BaseTest
|
|
{
|
|
public function testGetByUsername()
|
|
{
|
|
$user = Model\User\get_user_by_username('admin');
|
|
$this->assertEquals(1, $user['id']);
|
|
$this->assertEquals('admin', $user['username']);
|
|
$this->assertEquals(1, $user['is_admin']);
|
|
$this->assertArrayHasKey('password', $user);
|
|
$this->assertArrayHasKey('last_login', $user);
|
|
|
|
$user = Model\User\get_user_by_username('missing');
|
|
$this->assertNull($user);
|
|
}
|
|
|
|
public function testGetById()
|
|
{
|
|
$user = Model\User\get_user_by_id(1);
|
|
$this->assertEquals(1, $user['id']);
|
|
$this->assertEquals('admin', $user['username']);
|
|
$this->assertEquals(1, $user['is_admin']);
|
|
$this->assertArrayHasKey('password', $user);
|
|
$this->assertArrayHasKey('last_login', $user);
|
|
|
|
$user = Model\User\get_user_by_id(42);
|
|
$this->assertNull($user);
|
|
}
|
|
|
|
public function testGetByIdWithoutPassword()
|
|
{
|
|
$user = Model\User\get_user_by_id_without_password(1);
|
|
$this->assertEquals('admin', $user['username']);
|
|
$this->assertArrayNotHasKey('password', $user);
|
|
|
|
$user = Model\User\get_user_by_id_without_password(42);
|
|
$this->assertNull($user);
|
|
}
|
|
|
|
public function testLoginDate()
|
|
{
|
|
$this->assertTrue(Model\User\set_last_login_date(1));
|
|
|
|
$user = Model\User\get_user_by_username('admin');
|
|
$this->assertEquals(time(), $user['last_login'], '', 1);
|
|
}
|
|
|
|
public function testCreateUser()
|
|
{
|
|
$this->assertEquals(2, Model\User\create_user('foobar', 'test'));
|
|
|
|
$user = Model\User\get_user_by_id(2);
|
|
$this->assertEquals(2, $user['id']);
|
|
$this->assertEquals('foobar', $user['username']);
|
|
$this->assertEquals(0, $user['is_admin']);
|
|
$this->assertNotEquals('test', $user['password']);
|
|
}
|
|
|
|
public function testCreateUserWithTrailingSpaces()
|
|
{
|
|
$this->assertEquals(2, Model\User\create_user('foobar ', ' test'));
|
|
|
|
$user = Model\User\get_user_by_id(2);
|
|
$this->assertEquals(2, $user['id']);
|
|
$this->assertEquals('foobar', $user['username']);
|
|
$this->assertEquals(0, $user['is_admin']);
|
|
$this->assertTrue(password_verify('test', $user['password']));
|
|
}
|
|
|
|
public function testRemoveUser()
|
|
{
|
|
$this->assertEquals(2, Model\User\create_user('foobar', 'test'));
|
|
$this->assertTrue(Model\User\remove_user(2));
|
|
$this->assertNull(Model\User\get_user_by_id(2));
|
|
}
|
|
|
|
public function testUpdateUser()
|
|
{
|
|
$this->assertEquals(2, Model\User\create_user('foobar', 'test'));
|
|
|
|
$this->assertTrue(Model\User\update_user(2, 'someone'));
|
|
$user1 = Model\User\get_user_by_id(2);
|
|
$this->assertEquals('someone', $user1['username']);
|
|
|
|
$this->assertTrue(Model\User\update_user(2, 'someone', 'password', true));
|
|
$user2 = Model\User\get_user_by_id(2);
|
|
$this->assertEquals('someone', $user2['username']);
|
|
$this->assertEquals(1, $user2['is_admin']);
|
|
$this->assertNotEquals($user1['password'], $user2['password']);
|
|
}
|
|
|
|
public function testGenerateTokens()
|
|
{
|
|
$user1 = Model\User\get_user_by_id(1);
|
|
$this->assertTrue(Model\User\regenerate_tokens(1));
|
|
|
|
$user2 = Model\User\get_user_by_id(1);
|
|
$this->assertNotEquals($user1['api_token'], $user2['api_token']);
|
|
$this->assertNotEquals($user1['bookmarklet_token'], $user2['bookmarklet_token']);
|
|
$this->assertNotEquals($user1['cronjob_token'], $user2['cronjob_token']);
|
|
$this->assertNotEquals($user1['fever_token'], $user2['fever_token']);
|
|
$this->assertNotEquals($user1['feed_token'], $user2['feed_token']);
|
|
}
|
|
}
|