X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/b8e2d75014c89c9e345c3f940ec8743bd158df67..refs/pull/3068/head:/tests/ThemeTest.php diff --git a/tests/ThemeTest.php b/tests/ThemeTest.php index 7a0cd49cb..9aa7873b0 100644 --- a/tests/ThemeTest.php +++ b/tests/ThemeTest.php @@ -1,14 +1,15 @@ -assertInstanceOf(ConfigurableEnvironmentInterface::class, $environment); $callbackCalled = true; + return $environment; }; Theme::listen(ThemeEvents::COMMONMARK_ENVIRONMENT_CONFIGURE, $callback); @@ -148,8 +150,8 @@ class ThemeTest extends TestCase Theme::listen(ThemeEvents::AUTH_REGISTER, $callback); $this->setSettings(['registration-enabled' => 'true']); - $user = factory(User::class)->make(); - $this->post('/register', ['email' => $user->email, 'name' => $user->name, 'password' => 'password']); + $user = User::factory()->make(); + $this->post('/register', ['email' => $user->email, 'name' => $user->name, 'password' => 'password']); $this->assertCount(2, $args); $this->assertEquals('standard', $args[0]); @@ -159,8 +161,8 @@ class ThemeTest extends TestCase public function test_add_social_driver() { Theme::addSocialDriver('catnet', [ - 'client_id' => 'abc123', - 'client_secret' => 'def456' + 'client_id' => 'abc123', + 'client_secret' => 'def456', ], 'SocialiteProviders\Discord\DiscordExtendSocialite@handleTesting'); $this->assertEquals('catnet', config('services.catnet.name')); @@ -174,9 +176,9 @@ class ThemeTest extends TestCase public function test_add_social_driver_uses_name_in_config_if_given() { Theme::addSocialDriver('catnet', [ - 'client_id' => 'abc123', + 'client_id' => 'abc123', 'client_secret' => 'def456', - 'name' => 'Super Cat Name', + 'name' => 'Super Cat Name', ], 'SocialiteProviders\Discord\DiscordExtendSocialite@handleTesting'); $this->assertEquals('Super Cat Name', config('services.catnet.name')); @@ -184,10 +186,30 @@ class ThemeTest extends TestCase $loginResp->assertSee('Super Cat Name'); } + public function test_add_social_driver_allows_a_configure_for_redirect_callback_to_be_passed() + { + Theme::addSocialDriver( + 'discord', + [ + 'client_id' => 'abc123', + 'client_secret' => 'def456', + 'name' => 'Super Cat Name', + ], + 'SocialiteProviders\Discord\DiscordExtendSocialite@handle', + function ($driver) { + $driver->with(['donkey' => 'donut']); + } + ); + + $loginResp = $this->get('/login/service/discord'); + $redirect = $loginResp->headers->get('location'); + $this->assertStringContainsString('donkey=donut', $redirect); + } + protected function usingThemeFolder(callable $callback) { // Create a folder and configure a theme - $themeFolderName = 'testing_theme_' . rtrim(base64_encode(time()), "="); + $themeFolderName = 'testing_theme_' . rtrim(base64_encode(time()), '='); config()->set('view.theme', $themeFolderName); $themeFolderPath = theme_path(''); File::makeDirectory($themeFolderPath); @@ -197,5 +219,4 @@ class ThemeTest extends TestCase // Cleanup the custom theme folder we created File::deleteDirectory($themeFolderPath); } - -} \ No newline at end of file +}