/** * Test session termination. */ public function testTerminateSession() { $test_session_id = 's123'; $session = new Session($test_session_id, 123); $user_repository = new UserRepository([new AuthenticatedUser(1, '*****@*****.**', 'Ilija Studen', '123')]); $session_repository = new SessionRepository([new Session($test_session_id, '*****@*****.**')]); $browser_session_adapter = new BrowserSessionAdapter($user_repository, $session_repository, $this->cookies); $this->assertInstanceOf(Session::class, $session_repository->getById($test_session_id)); $termination_transport = $browser_session_adapter->terminate($session); $this->assertInstanceOf(TransportInterface::class, $termination_transport); $this->assertNull($session_repository->getById($test_session_id)); }
/** * Test if authentication is applied based on request attribute. */ public function testUserIsAuthenticated() { $user = new AuthenticatedUser(1, '*****@*****.**', 'Ilija Studen', '123'); $user_repository = new UserRepository(['*****@*****.**' => new AuthenticatedUser(1, '*****@*****.**', 'Ilija Studen', '123')]); $session_repository = new SessionRepository([new Session('my-session-id', '*****@*****.**')]); $session_cookie_name = 'test-session-cookie'; $session_adapter = new BrowserSessionAdapter($user_repository, $session_repository, $this->cookies, $session_cookie_name); $session = $session_adapter->authenticate($user, []); /** @var ServerRequestInterface $request */ $request = $this->request->withAttribute('test_transport', new AuthorizationTransport($session_adapter, $user, $session, [1, 2, 3])); /** @var ResponseInterface $response */ $response = call_user_func(new ApplyAuthenticationMiddleware('test_transport'), $request, $this->response); $this->assertInstanceOf(ResponseInterface::class, $response); $set_cookie_header = $response->getHeaderLine('Set-Cookie'); $this->assertNotEmpty($set_cookie_header); $this->assertContains($session_cookie_name, $set_cookie_header); $this->assertContains('my-session-id', $set_cookie_header); }