| <?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()); |
| } |
| } |
|
|