|
<?php |
|
|
|
require_once __DIR__.'/../Base.php'; |
|
|
|
use Kanboard\Auth\DatabaseAuth; |
|
use Kanboard\Model\UserModel; |
|
|
|
class DatabaseAuthTest extends Base |
|
{ |
|
public function testGetName() |
|
{ |
|
$provider = new DatabaseAuth($this->container); |
|
$this->assertEquals('Database', $provider->getName()); |
|
} |
|
|
|
public function testAuthenticate() |
|
{ |
|
$provider = new DatabaseAuth($this->container); |
|
|
|
$provider->setUsername('admin'); |
|
$provider->setPassword('admin'); |
|
$this->assertTrue($provider->authenticate()); |
|
|
|
$provider->setUsername('admin'); |
|
$provider->setPassword('test'); |
|
$this->assertFalse($provider->authenticate()); |
|
} |
|
|
|
public function testGetUser() |
|
{ |
|
$provider = new DatabaseAuth($this->container); |
|
$this->assertEquals(null, $provider->getUser()); |
|
|
|
$provider = new DatabaseAuth($this->container); |
|
$provider->setUsername('admin'); |
|
$provider->setPassword('admin'); |
|
|
|
$this->assertTrue($provider->authenticate()); |
|
$this->assertInstanceOf('Kanboard\User\DatabaseUserProvider', $provider->getUser()); |
|
} |
|
|
|
public function testIsvalidSession() |
|
{ |
|
$userModel = new UserModel($this->container); |
|
$provider = new DatabaseAuth($this->container); |
|
|
|
$this->assertFalse($provider->isValidSession()); |
|
|
|
$this->assertEquals(2, $userModel->create(array('username' => 'user1'))); |
|
$this->assertEquals(3, $userModel->create(array('username' => 'user2'))); |
|
|
|
$_SESSION['user'] = array('id' => 2, 'role' => 'app-user'); |
|
$this->assertTrue($provider->isValidSession()); |
|
|
|
$_SESSION['user'] = array('id' => 4, 'role' => 'app-user'); |
|
$this->assertFalse($provider->isValidSession()); |
|
|
|
$this->assertTrue($userModel->disable(2)); |
|
|
|
$_SESSION['user'] = array('id' => 2, 'role' => 'app-user'); |
|
$this->assertFalse($provider->isValidSession()); |
|
|
|
$_SESSION['user'] = array('id' => 3, 'role' => 'app-user'); |
|
$this->assertTrue($provider->isValidSession()); |
|
|
|
$_SESSION['user'] = array('id' => 3, 'role' => 'app-admin'); |
|
$this->assertFalse($provider->isValidSession()); |
|
} |
|
} |
|
|