Http::response('', 200), 'https://nami.dpsg.de/ica/rest/nami/auth/manual/sessionStartup' => Http::response($this->successJson, 200) ]); Config::set('nami.auth.mglnr', '11223'); Config::set('nami.auth.password', 'secret'); Config::set('nami.auth.groupid', '55555'); Nami::login(); Http::assertSent(function($request) { return $request->url() == 'https://nami.dpsg.de/ica/pages/login.jsp'; }); Http::assertSent(function($request) { return $request->url() == 'https://nami.dpsg.de/ica/rest/nami/auth/manual/sessionStartup' && $request['username'] == '11223' && $request['password'] == 'secret' && $request['redirectTo'] == './app.jsp' && $request['Login'] == 'API'; }); Http::assertSentCount(2); } public function test_first_login_fails_because_of_bruteforce_protection() { Http::fake([ 'https://nami.dpsg.de/ica/pages/login.jsp' => Http::response('', 200), 'https://nami.dpsg.de/ica/rest/nami/auth/manual/sessionStartup' => Http::response($this->bruteJson, 200) ]); Config::set('nami.auth.mglnr', '11223'); Config::set('nami.auth.password', 'secret'); Config::set('nami.auth.groupid', '55555'); try { Nami::login(); } catch(LoginException $e) { $this->assertEquals(LoginException::TOO_MANY_FAILED_LOGINS, $e->reason); } } public function test_login_once_on_second_login() { Http::fake([ 'https://nami.dpsg.de/ica/pages/login.jsp' => Http::response('', 200), 'https://nami.dpsg.de/ica/rest/nami/auth/manual/sessionStartup' => Http::response($this->successJson, 200) ]); Config::set('nami.auth.mglnr', '11223'); Config::set('nami.auth.password', 'secret'); Config::set('nami.auth.groupid', '55555'); Nami::login(); Nami::login(); Http::assertSent(function($request) { return $request->url() == 'https://nami.dpsg.de/ica/pages/login.jsp'; }); Http::assertSent(function($request) { return $request->url() == 'https://nami.dpsg.de/ica/rest/nami/auth/manual/sessionStartup' && $request['username'] == '11223' && $request['password'] == 'secret' && $request['redirectTo'] == './app.jsp' && $request['Login'] == 'API'; }); Http::assertSentCount(2); } public function test_login_check() { Http::fake([ 'https://nami.dpsg.de/ica/pages/login.jsp' => Http::response('', 200), 'https://nami.dpsg.de/ica/rest/nami/auth/manual/sessionStartup' => Http::sequence()->push($this->wrongCredentialsJson, 200) ]); Config::set('nami.auth.mglnr', '11223'); Config::set('nami.auth.password', 'secret'); Config::set('nami.auth.groupid', '55555'); try { Nami::login(); } catch(LoginException $e) { $this->assertEquals(LoginException::WRONG_CREDENTIALS, $e->reason); } Http::assertSentCount(2); } /* public function test_login_again_if_login_has_expired() { Http::fake([ 'https://nami.dpsg.de/*' => Http::sequence() ->push('') ->push($this->successJson, 200) ->push($this->expiredJson, 200) ->push('') ->push($this->successJson, 200) ->push('me', 200) ]); Config::set('nami.auth.mglnr', '11223'); Config::set('nami.auth.password', 'secret'); Config::set('nami.auth.groupid', '55555'); Nami::login(); Nami::me(); Http::assertSent(function($request) { return $request->url() == 'https://nami.dpsg.de/ica/pages/login.jsp'; }); Http::assertSent(function($request) { return $request->url() == 'https://nami.dpsg.de/ica/rest/nami/auth/manual/sessionStartup' && $request['username'] == '11223' && $request['password'] == 'secret' && $request['redirectTo'] == './app.jsp' && $request['Login'] == 'API'; }); Http::assertSentCount(6); } */ }