2022-06-21 10:32:18 -04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Tests\Auth;
|
|
|
|
|
|
|
|
use Tests\TestCase;
|
|
|
|
|
|
|
|
class LoginAutoInitiateTest extends TestCase
|
|
|
|
{
|
|
|
|
protected function setUp(): void
|
|
|
|
{
|
|
|
|
parent::setUp();
|
|
|
|
|
|
|
|
config()->set([
|
2022-06-22 07:49:58 -04:00
|
|
|
'auth.auto_initiate' => true,
|
2022-06-21 10:32:18 -04:00
|
|
|
'services.google.client_id' => false,
|
|
|
|
'services.github.client_id' => false,
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_with_oidc()
|
|
|
|
{
|
|
|
|
config()->set([
|
|
|
|
'auth.method' => 'oidc',
|
|
|
|
]);
|
|
|
|
|
|
|
|
$req = $this->get('/login');
|
|
|
|
$req->assertSeeText('Attempting Login');
|
2022-07-23 10:10:18 -04:00
|
|
|
$this->withHtml($req)->assertElementExists('form[action$="/oidc/login"][method=POST][id="login-form"] button');
|
|
|
|
$this->withHtml($req)->assertElementExists('button[form="login-form"]');
|
2022-06-21 10:32:18 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_with_saml2()
|
|
|
|
{
|
|
|
|
config()->set([
|
|
|
|
'auth.method' => 'saml2',
|
|
|
|
]);
|
|
|
|
|
|
|
|
$req = $this->get('/login');
|
|
|
|
$req->assertSeeText('Attempting Login');
|
2022-07-23 10:10:18 -04:00
|
|
|
$this->withHtml($req)->assertElementExists('form[action$="/saml2/login"][method=POST][id="login-form"] button');
|
|
|
|
$this->withHtml($req)->assertElementExists('button[form="login-form"]');
|
2022-06-21 10:32:18 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_it_does_not_run_if_social_provider_is_active()
|
|
|
|
{
|
|
|
|
config()->set([
|
2022-06-22 07:49:58 -04:00
|
|
|
'auth.method' => 'oidc',
|
|
|
|
'services.google.client_id' => 'abc123a',
|
2022-06-21 10:32:18 -04:00
|
|
|
'services.google.client_secret' => 'def456',
|
|
|
|
]);
|
|
|
|
|
|
|
|
$req = $this->get('/login');
|
|
|
|
$req->assertDontSeeText('Attempting Login');
|
|
|
|
$req->assertSee('Log In');
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_it_does_not_run_if_prevent_query_string_exists()
|
|
|
|
{
|
|
|
|
config()->set([
|
|
|
|
'auth.method' => 'oidc',
|
|
|
|
]);
|
|
|
|
|
|
|
|
$req = $this->get('/login?prevent_auto_init=true');
|
|
|
|
$req->assertDontSeeText('Attempting Login');
|
|
|
|
$req->assertSee('Log In');
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_logout_with_auto_init_leads_to_login_page_with_prevention_query()
|
|
|
|
{
|
|
|
|
config()->set([
|
|
|
|
'auth.method' => 'oidc',
|
|
|
|
]);
|
2023-01-21 06:08:34 -05:00
|
|
|
$this->actingAs($this->users->editor());
|
2022-06-21 10:32:18 -04:00
|
|
|
|
|
|
|
$req = $this->post('/logout');
|
|
|
|
$req->assertRedirect('/login?prevent_auto_init=true');
|
|
|
|
}
|
2022-06-22 07:49:58 -04:00
|
|
|
}
|