| <?php |
|
|
| require_once __DIR__.'/../../Base.php'; |
|
|
| use Kanboard\Core\User\UserSession; |
| use Kanboard\Core\Security\Role; |
|
|
| class UserSessionTest extends Base |
| { |
| public function testInitialize() |
| { |
| $userSession = new UserSession($this->container); |
| $user = array( |
| 'id' => '123', |
| 'username' => 'john', |
| 'password' => 'something', |
| 'twofactor_secret' => 'something else', |
| 'is_admin' => '1', |
| 'is_project_admin' => '0', |
| 'is_ldap_user' => '0', |
| 'twofactor_activated' => '0', |
| 'role' => Role::APP_MANAGER, |
| 'filter' => 'status:close', |
| ); |
|
|
| $userSession->initialize($user); |
|
|
| $this->assertNotEmpty($_SESSION); |
| $this->assertEquals(123, $_SESSION['user']['id']); |
| $this->assertEquals('john', $_SESSION['user']['username']); |
| $this->assertEquals(Role::APP_MANAGER, $_SESSION['user']['role']); |
| $this->assertEquals('status:close', $_SESSION['user']['filter']); |
| $this->assertFalse($_SESSION['user']['is_ldap_user']); |
| $this->assertFalse($_SESSION['user']['twofactor_activated']); |
| $this->assertArrayNotHasKey('password', $_SESSION['user']); |
| $this->assertArrayNotHasKey('twofactor_secret', $_SESSION['user']); |
| $this->assertArrayNotHasKey('is_admin', $_SESSION['user']); |
| $this->assertArrayNotHasKey('is_project_admin', $_SESSION['user']); |
|
|
| $this->assertEquals('john', $userSession->getUsername()); |
| } |
|
|
| public function testGetId() |
| { |
| $userSession = new UserSession($this->container); |
|
|
| $this->assertEquals(0, $userSession->getId()); |
|
|
| $_SESSION['user'] = array('id' => 2); |
| $this->assertEquals(2, $userSession->getId()); |
|
|
| $_SESSION['user'] = array('id' => '2'); |
| $this->assertEquals(2, $userSession->getId()); |
| } |
|
|
| public function testIsLogged() |
| { |
| $userSession = new UserSession($this->container); |
| $this->assertFalse($userSession->isLogged()); |
|
|
| $_SESSION['user'] = array(); |
| $this->assertFalse($userSession->isLogged()); |
|
|
| $_SESSION['user'] = array('id' => 1); |
| $this->assertTrue($userSession->isLogged()); |
| } |
|
|
| public function testIsAdmin() |
| { |
| $userSession = new UserSession($this->container); |
| $this->assertFalse($userSession->isAdmin()); |
|
|
| $_SESSION['user'] = array('role' => Role::APP_ADMIN); |
| $this->assertTrue($userSession->isAdmin()); |
|
|
| $_SESSION['user'] = array('role' => Role::APP_USER); |
| $this->assertFalse($userSession->isAdmin()); |
|
|
| $_SESSION['user'] = array('role' => ''); |
| $this->assertFalse($userSession->isAdmin()); |
| } |
|
|
| public function testFilters() |
| { |
| $userSession = new UserSession($this->container); |
| $this->assertEquals('status:open', $userSession->getFilters(1)); |
|
|
| $_SESSION['user'] = array('filter' => 'status:open'); |
| $this->assertEquals('status:open', $userSession->getFilters(1)); |
|
|
| $userSession->setFilters(1, 'assignee:me'); |
| $this->assertEquals('assignee:me', $userSession->getFilters(1)); |
|
|
| $this->assertEquals('status:open', $userSession->getFilters(2)); |
|
|
| $userSession->setFilters(2, 'assignee:bob'); |
| $this->assertEquals('assignee:bob', $userSession->getFilters(2)); |
| } |
|
|
| public function testListOrder() |
| { |
| $userSession = new UserSession($this->container); |
| list($order, $direction) = $userSession->getListOrder(1); |
| $this->assertEquals('tasks.id', $order); |
| $this->assertEquals('DESC', $direction); |
|
|
| $userSession->setListOrder(1, 'tasks.priority', 'ASC'); |
| list($order, $direction) = $userSession->getListOrder(1); |
| $this->assertEquals('tasks.priority', $order); |
| $this->assertEquals('ASC', $direction); |
|
|
| list($order, $direction) = $userSession->getListOrder(2); |
| $this->assertEquals('tasks.id', $order); |
| $this->assertEquals('DESC', $direction); |
|
|
| $userSession->setListOrder(2, 'tasks.is_active', 'DESC'); |
| list($order, $direction) = $userSession->getListOrder(2); |
| $this->assertEquals('tasks.is_active', $order); |
| $this->assertEquals('DESC', $direction); |
| } |
|
|
| public function testPostAuthentication() |
| { |
| $userSession = new UserSession($this->container); |
| $this->assertFalse($userSession->isPostAuthenticationValidated()); |
|
|
| $_SESSION['postAuthenticationValidated'] = false; |
| $this->assertFalse($userSession->isPostAuthenticationValidated()); |
|
|
| $userSession->setPostAuthenticationAsValidated(); |
| $this->assertTrue($userSession->isPostAuthenticationValidated()); |
|
|
| $_SESSION['user'] = array(); |
| $this->assertFalse($userSession->hasPostAuthentication()); |
|
|
| $_SESSION['user'] = array('twofactor_activated' => false); |
| $this->assertFalse($userSession->hasPostAuthentication()); |
|
|
| $_SESSION['user'] = array('twofactor_activated' => true); |
| $this->assertTrue($userSession->hasPostAuthentication()); |
|
|
| $userSession->disablePostAuthentication(); |
| $this->assertFalse($userSession->hasPostAuthentication()); |
| } |
| } |
|
|