/** * @covers CodeCollab\Http\Request\Request::__construct * @covers CodeCollab\Http\Request\Request::processServerVariables * @covers CodeCollab\Http\Request\Request::server * @covers CodeCollab\Http\Request\Request::isEncrypted * @covers CodeCollab\Http\Request\Request::getBaseUrl */ public function testGetBaseUrlNoSslNonStandardPort() { $request = new Request($this->createMock(Decryptor::class), array_merge($this->baseRequestData['server'], ['SERVER_PORT' => '8080']), $this->baseRequestData['get'], $this->baseRequestData['post'], $this->baseRequestData['files'], $this->baseRequestData['cookies'], $this->baseRequestData['input']); $this->assertSame('http://codecollab.com:8080', $request->getBaseUrl()); }
/** * Handles the cookie login * * @param \CodeCollab\Http\Request\Request $request The request object * @param \CodeCollab\Authentication\Authentication $user The authentication object * * @return \Symfony\Component\HttpFoundation\Response The HTTP response */ public function doCookieLogin(Request $request, Authentication $user) : Response { // Hardcoded user info. Normally this would be retrieved from the database. // This contains a user with username + password of demo + demo. $userInfo = ['username' => 'demo', 'name' => 'Demo Demo', 'hash' => '$2y$14$hPOMx1/RiQHriUVLgst0mOiZj1CyE7ziXk9LNf3UgZxsNuST.xnpe']; if ($request->cookie('rememberme') !== 'enabled' || !$user->logInRememberMe($userInfo)) { $this->response->addCookie('rememberme', '', (new \DateTime())->sub(new \DateInterval('P30D'))); } else { $this->response->addCookie('rememberme', '', (new \DateTime())->add(new \DateInterval('P30D'))); } $this->response->setStatusCode(StatusCode::FOUND); $this->response->addHeader('Location', $request->getBaseUrl()); return $this->response; }