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 testPostAuthentication() { $userSession = new UserSession($this->container); $this->assertFalse($userSession->isPostAuthenticationValidated()); $_SESSION['postAuthenticationValidated'] = false; $this->assertFalse($userSession->isPostAuthenticationValidated()); $userSession->validatePostAuthentication(); $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()); } }