mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-31 05:50:42 +02:00
[ticket/16799] Fix OAuth external account linking PHP fatal error
PHPBB3-16799
This commit is contained in:
@@ -77,4 +77,63 @@ class phpbb_functional_auth_test extends phpbb_functional_test_case
|
||||
$crawler = self::request('GET', 'adm/index.php?sid=' . $this->sid);
|
||||
$this->assertStringContainsString($this->lang('ADMIN_PANEL'), $crawler->filter('h1')->text());
|
||||
}
|
||||
|
||||
public function test_board_auth_oauth_setting()
|
||||
{
|
||||
$this->login();
|
||||
$this->admin_login();
|
||||
$this->add_lang(['ucp', 'acp/board']);
|
||||
|
||||
$crawler = self::request('GET', 'adm/index.php?i=acp_board&mode=auth&sid=' . $this->sid);
|
||||
$this->assertStringContainsString($this->lang('AUTH_METHOD'), $crawler->filter('label[for="auth_method"]')->text());
|
||||
|
||||
// Set OAuth authentication method for Google with random keys
|
||||
$form = $crawler->selectButton($this->lang('SUBMIT'))->form([
|
||||
'config[auth_method]' => 'oauth',
|
||||
'config[auth_oauth_google_key]' => '123456',
|
||||
'config[auth_oauth_google_secret]' => '123456',
|
||||
]);
|
||||
$crawler = self::submit($form);
|
||||
$this->assertContainsLang('CONFIG_UPDATED', $crawler->filter('div[class="successbox"] > p')->text());
|
||||
|
||||
// Test OAuth linking via UCP
|
||||
$crawler = self::request('GET', 'ucp.php?i=ucp_auth_link&mode=auth_link&sid=' . $this->sid);
|
||||
$this->assertStringContainsString($this->lang('AUTH_PROVIDER_OAUTH_SERVICE_GOOGLE'), $crawler->filter('h3')->text());
|
||||
$form = $crawler->selectButton($this->lang('UCP_AUTH_LINK_LINK'))->form();
|
||||
$crawler = self::submit($form);
|
||||
$this->assertStringContainsString('Google Accounts', $crawler->filter('title')->text());
|
||||
|
||||
// Test OAuth linking for registration
|
||||
$this->logout();
|
||||
$crawler = self::request('GET', 'ucp.php?mode=register');
|
||||
$this->assertContainsLang('REGISTRATION', $crawler->filter('div.content h2')->text());
|
||||
$form = $crawler->selectButton('I agree to these terms')->form();
|
||||
$crawler = self::submit($form);
|
||||
$this->assertContainsLang('AUTH_PROVIDER_OAUTH_SERVICE_GOOGLE', $crawler->filter('a[class="button2"]')->text());
|
||||
$crawler = self::request('GET', 'ucp.php?mode=login&login=external&oauth_service=google');
|
||||
$this->assertStringContainsString('Google Accounts', $crawler->filter('title')->text());
|
||||
|
||||
// Restore default auth method, but unset random keys first
|
||||
// Restart webclient as we were redirected to external site before
|
||||
self::$client->restart();
|
||||
|
||||
$this->login();
|
||||
$this->admin_login();
|
||||
|
||||
$crawler = self::request('GET', 'adm/index.php?i=acp_board&mode=auth&sid=' . $this->sid);
|
||||
$this->assertStringContainsString($this->lang('AUTH_METHOD'), $crawler->filter('label[for="auth_method"]')->text());
|
||||
$form = $crawler->selectButton($this->lang('SUBMIT'))->form([
|
||||
'config[auth_oauth_google_key]' => '',
|
||||
'config[auth_oauth_google_secret]' => '',
|
||||
]);
|
||||
$crawler = self::submit($form);
|
||||
$this->assertContainsLang('CONFIG_UPDATED', $crawler->filter('div[class="successbox"] > p')->text());
|
||||
$crawler = self::request('GET', 'adm/index.php?i=acp_board&mode=auth&sid=' . $this->sid);
|
||||
$this->assertStringContainsString($this->lang('AUTH_METHOD'), $crawler->filter('label[for="auth_method"]')->text());
|
||||
$form = $crawler->selectButton($this->lang('SUBMIT'))->form([
|
||||
'config[auth_method]' => 'db',
|
||||
]);
|
||||
$crawler = self::submit($form);
|
||||
$this->assertContainsLang('CONFIG_UPDATED', $crawler->filter('div[class="successbox"] > p')->text());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user