diff --git a/src/Client/ClientRegistry.php b/src/Client/ClientRegistry.php index 6ee3f785..28682243 100644 --- a/src/Client/ClientRegistry.php +++ b/src/Client/ClientRegistry.php @@ -14,10 +14,18 @@ class ClientRegistry { + /** @var ContainerInterface */ private $container; + /** @var array */ private $serviceMap; + /** + * ClientRegistry constructor. + * + * @param ContainerInterface $container + * @param array $serviceMap + */ public function __construct(ContainerInterface $container, array $serviceMap) { $this->container = $container; diff --git a/src/Client/OAuth2Client.php b/src/Client/OAuth2Client.php index 477226d6..fd7982b7 100644 --- a/src/Client/OAuth2Client.php +++ b/src/Client/OAuth2Client.php @@ -20,14 +20,23 @@ class OAuth2Client { + const OAUTH2_SESSION_STATE_KEY = 'knpu.oauth2_client_state'; + + /** @var AbstractProvider */ private $provider; + /** @var RequestStack */ private $requestStack; + /** @var bool */ private $isStateless = false; - const OAUTH2_SESSION_STATE_KEY = 'knpu.oauth2_client_state'; - + /** + * OAuth2Client constructor. + * + * @param AbstractProvider $provider + * @param RequestStack $requestStack + */ public function __construct(AbstractProvider $provider, RequestStack $requestStack) { $this->provider = $provider; diff --git a/src/DependencyInjection/KnpUOAuth2ClientExtension.php b/src/DependencyInjection/KnpUOAuth2ClientExtension.php index 3244cec5..3f243fb0 100644 --- a/src/DependencyInjection/KnpUOAuth2ClientExtension.php +++ b/src/DependencyInjection/KnpUOAuth2ClientExtension.php @@ -31,13 +31,13 @@ class KnpUOAuth2ClientExtension extends Extension { - /** - * @var bool - */ + /** @var bool */ private $checkExternalClassExistence; + /** @var array */ private $configurators = []; + /** @var array */ private static $supportedProviderTypes = [ 'facebook' => FacebookProviderConfigurator::class, 'github' => GithubProviderConfigurator::class, @@ -49,11 +49,22 @@ class KnpUOAuth2ClientExtension extends Extension 'generic' => GenericProviderConfigurator::class, ]; + /** + * KnpUOAuth2ClientExtension constructor. + * + * @param bool $checkExternalClassExistence + */ public function __construct($checkExternalClassExistence = true) { $this->checkExternalClassExistence = $checkExternalClassExistence; } + /** + * Load the bundle configuration. + * + * @param array $configs + * @param ContainerBuilder $container + */ public function load(array $configs, ContainerBuilder $container) { $processor = new Processor(); diff --git a/src/DependencyInjection/ProviderFactory.php b/src/DependencyInjection/ProviderFactory.php index fc06a362..bd82de2c 100644 --- a/src/DependencyInjection/ProviderFactory.php +++ b/src/DependencyInjection/ProviderFactory.php @@ -19,13 +19,28 @@ */ class ProviderFactory { - private $generator; - + /** @var UrlGeneratorInterface */ + protected $generator; + + /** + * ProviderFactory constructor. + * + * @param UrlGeneratorInterface $generator + */ public function __construct(UrlGeneratorInterface $generator) { $this->generator = $generator; } + /** + * Creates a provider of the given class. + * + * @param string $class + * @param array $options + * @param string $redirectUri + * @param array $redirectParams + * @return mixed + */ public function createProvider($class, array $options, $redirectUri, array $redirectParams = []) { $redirectUri = $this->generator diff --git a/src/Security/Exception/FinishRegistrationException.php b/src/Security/Exception/FinishRegistrationException.php index 8faaa88e..e261ba80 100644 --- a/src/Security/Exception/FinishRegistrationException.php +++ b/src/Security/Exception/FinishRegistrationException.php @@ -21,10 +21,10 @@ class FinishRegistrationException extends AuthenticationException private $userInformation; /** - * @param mixed $userInfo Any info to be used to help registration - * @param string $message - * @param int $code - * @param \Exception $previous + * @param mixed $userInfo Any info to be used to help registration + * @param string $message + * @param int $code + * @param \Exception $previous */ public function __construct($userInfo, $message = '', $code = 0, Exception $previous = null) { diff --git a/tests/DependencyInjection/KnpUOAuth2ClientExtensionTest.php b/tests/DependencyInjection/KnpUOAuth2ClientExtensionTest.php index 7c752429..205fadf8 100644 --- a/tests/DependencyInjection/KnpUOAuth2ClientExtensionTest.php +++ b/tests/DependencyInjection/KnpUOAuth2ClientExtensionTest.php @@ -11,6 +11,7 @@ namespace KnpU\OAuth2ClientBundle\Tests\DependencyInjection; use KnpU\OAuth2ClientBundle\DependencyInjection\KnpUOAuth2ClientExtension; +use KnpU\OAuth2ClientBundle\DependencyInjection\Providers\ProviderConfiguratorInterface; use Symfony\Component\Config\Definition\ArrayNode; use Symfony\Component\Config\Definition\Builder\TreeBuilder; use Symfony\Component\Config\Definition\NodeInterface; @@ -81,6 +82,29 @@ public function testFacebookProviderMakesService() ); } + /** + * @dataProvider getAllProviderConfigurators + */ + public function testProviderConfiguratorsAreFullyImplemented(ProviderConfiguratorInterface $providerConfigurator) + { + $this->assertRegexp('#^[ \w]+$#', $providerConfigurator->getProviderDisplayName()); + if ('Generic' !== $providerConfigurator->getProviderDisplayName()) { + $this->assertRegexp('#^[\w-]+/[\w-]+$#', $providerConfigurator->getPackagistName()); + $this->assertNotFalse(filter_var($providerConfigurator->getLibraryHomepage(), FILTER_VALIDATE_URL)); + $this->assertTrue(class_exists($providerConfigurator->getClientClass([]))); + } + } + + public function getAllProviderConfigurators() + { + $extension = new KnpUOAuth2ClientExtension(); + $configurators = []; + foreach (KnpUOAuth2ClientExtension::getAllSupportedTypes() as $type) { + $configurators[$type] = [$extension->getConfigurator($type)]; + } + return $configurators; + } + /** * @dataProvider provideTypesAndConfig */