Skip to content
Snippets Groups Projects
Commit fa5fb9b6 authored by Marko Ivancic's avatar Marko Ivancic
Browse files

WIP

parent d5b77e96
No related branches found
No related tags found
1 merge request!11Show service logo if available
Pipeline #83624 passed
...@@ -34,7 +34,7 @@ class Oidc extends AbstractOidcProvider implements IdentityProviderInterface ...@@ -34,7 +34,7 @@ class Oidc extends AbstractOidcProvider implements IdentityProviderInterface
return $this->metadata[self::METADATA_KEY_ENTITY_ID]; return $this->metadata[self::METADATA_KEY_ENTITY_ID];
} }
throw new MetadataException('OpenID VersionedDataProvider metadata does not contain entity ID.'); throw new MetadataException($this->getProviderDescription() . ' metadata does not contain entity ID.');
} }
protected function getProviderDescription(): string protected function getProviderDescription(): string
......
...@@ -36,7 +36,7 @@ class Oidc extends AbstractOidcProvider implements ServiceProviderInterface ...@@ -36,7 +36,7 @@ class Oidc extends AbstractOidcProvider implements ServiceProviderInterface
return $this->metadata[self::METADATA_KEY_ENTITY_ID]; return $this->metadata[self::METADATA_KEY_ENTITY_ID];
} }
throw new MetadataException('Relying VersionedDataProvider metadata does not contain entity ID.'); throw new MetadataException($this->getProviderDescription() . ' metadata does not contain entity ID.');
} }
protected function getProviderDescription(): string protected function getProviderDescription(): string
......
<?php <?php
declare(strict_types=1);
namespace SimpleSAML\Test\Module\accounting\Entities\Providers\Bases; namespace SimpleSAML\Test\Module\accounting\Entities\Providers\Bases;
use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\MockObject\Stub;
...@@ -8,7 +10,6 @@ use SimpleSAML\Module\accounting\Entities\Providers\Bases\AbstractOidcProvider; ...@@ -8,7 +10,6 @@ use SimpleSAML\Module\accounting\Entities\Providers\Bases\AbstractOidcProvider;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use SimpleSAML\Module\accounting\Helpers\Arr; use SimpleSAML\Module\accounting\Helpers\Arr;
use SimpleSAML\Module\accounting\Services\HelpersManager; use SimpleSAML\Module\accounting\Services\HelpersManager;
use SimpleSAML\Module\accounting\Services\JobRunner\State;
use SimpleSAML\Test\Module\accounting\Constants\StateArrays; use SimpleSAML\Test\Module\accounting\Constants\StateArrays;
/** /**
...@@ -54,7 +55,8 @@ class AbstractOidcProviderTest extends TestCase ...@@ -54,7 +55,8 @@ class AbstractOidcProviderTest extends TestCase
protected function prepareInstance(array $metadata): AbstractOidcProvider protected function prepareInstance(array $metadata): AbstractOidcProvider
{ {
$this->helpersManagerStub->method('getArr')->willReturn($this->arrStub); $this->helpersManagerStub->method('getArr')->willReturn($this->arrStub);
return new class($metadata, $this->helpersManagerStub) extends AbstractOidcProvider {
return new class ($metadata, $this->helpersManagerStub) extends AbstractOidcProvider {
public function getName(string $locale = self::DEFAULT_LOCALE): ?string public function getName(string $locale = self::DEFAULT_LOCALE): ?string
{ {
return 'name'; return 'name';
......
<?php
declare(strict_types=1);
namespace SimpleSAML\Test\Module\accounting\Entities\Providers\Bases;
use PHPUnit\Framework\MockObject\Stub;
use SimpleSAML\Module\accounting\Entities\Interfaces\AuthenticationProtocolInterface;
use SimpleSAML\Module\accounting\Entities\Interfaces\ProviderInterface;
use SimpleSAML\Module\accounting\Entities\Providers\Bases\AbstractSaml2Provider;
use PHPUnit\Framework\TestCase;
use SimpleSAML\Module\accounting\Exceptions\MetadataException;
use SimpleSAML\Module\accounting\Helpers\Arr;
use SimpleSAML\Module\accounting\Services\HelpersManager;
use SimpleSAML\Test\Module\accounting\Constants\StateArrays;
/**
* @covers \SimpleSAML\Module\accounting\Entities\Providers\Bases\AbstractSaml2Provider
* @uses \SimpleSAML\Module\accounting\Entities\Bases\AbstractProvider
*/
class AbstractSaml2ProviderTest extends TestCase
{
protected Stub $helpersManagerStub;
protected Stub $arrStub;
protected array $metadata;
protected function setUp(): void
{
$this->helpersManagerStub = $this->createStub(HelpersManager::class);
$this->arrStub = $this->createStub(Arr::class);
$this->metadata = StateArrays::SAML2_FULL['SPMetadata'];
}
protected function prepareInstance(array $metadata): AbstractSaml2Provider
{
$this->helpersManagerStub->method('getArr')->willReturn($this->arrStub);
return new class ($metadata, $this->helpersManagerStub) extends AbstractSaml2Provider {
protected function getProviderDescription(): string
{
return 'service description';
}
};
}
public function testCanCreateInstance(): void
{
$this->assertInstanceOf(AbstractSaml2Provider::class, $this->prepareInstance($this->metadata));
}
public function testCanGetName(): void
{
$metadata = $this->metadata;
$this->assertSame(
$this->metadata[AbstractSaml2Provider::METADATA_KEY_NAME],
$this->prepareInstance($metadata)->getName()
);
unset($metadata[AbstractSaml2Provider::METADATA_KEY_NAME]);
$this->assertSame(
$this->metadata[AbstractSaml2Provider::METADATA_KEY_UI_INFO]
[AbstractSaml2Provider::METADATA_KEY_UI_INFO_DISPLAY_NAME]
[ProviderInterface::DEFAULT_LOCALE],
$this->prepareInstance($metadata)->getName()
);
unset($metadata[AbstractSaml2Provider::METADATA_KEY_UI_INFO]);
$this->assertNull($this->prepareInstance($metadata)->getName());
}
public function testCanGetDescription(): void
{
$metadata = $this->metadata;
$this->assertSame(
$this->metadata[AbstractSaml2Provider::METADATA_KEY_DESCRIPTION],
$this->prepareInstance($metadata)->getDescription()
);
unset($metadata[AbstractSaml2Provider::METADATA_KEY_DESCRIPTION]);
$this->assertSame(
$this->metadata[AbstractSaml2Provider::METADATA_KEY_UI_INFO]
[AbstractSaml2Provider::METADATA_KEY_UI_INFO_DESCRIPTION]
[ProviderInterface::DEFAULT_LOCALE],
$this->prepareInstance($metadata)->getDescription()
);
unset($metadata[AbstractSaml2Provider::METADATA_KEY_UI_INFO]);
$this->assertNull($this->prepareInstance($metadata)->getDescription());
}
public function testCanGetLogo(): void
{
$this->arrStub->method('getNestedElementByKey')->willReturn(['https://example.org/logo']);
$this->assertSame(
'https://example.org/logo',
$this->prepareInstance($this->metadata)->getLogoUrl()
);
}
public function testGetLogoNotFound(): void
{
$this->arrStub->method('getNestedElementByKey')->willReturn(null);
$this->assertNull(
$this->prepareInstance($this->metadata)->getLogoUrl()
);
}
public function testGetLogoIsNullIfNotValid(): void
{
$this->arrStub->method('getNestedElementByKey')->willReturn(['not-valid']);
$this->assertNull(
$this->prepareInstance($this->metadata)->getLogoUrl()
);
}
public function testThrowsForInvalidEntityId(): void
{
$metadata = $this->metadata;
unset($metadata[AbstractSaml2Provider::METADATA_KEY_ENTITY_ID]);
$this->expectException(MetadataException::class);
$this->prepareInstance($metadata);
}
public function testCanGetProtocol(): void
{
$this->assertInstanceOf(
AuthenticationProtocolInterface::class,
$this->prepareInstance($this->metadata)->getProtocol()
);
}
}
...@@ -12,6 +12,7 @@ use SimpleSAML\Module\accounting\Exceptions\MetadataException; ...@@ -12,6 +12,7 @@ use SimpleSAML\Module\accounting\Exceptions\MetadataException;
* @covers \SimpleSAML\Module\accounting\Entities\Providers\Identity\Oidc * @covers \SimpleSAML\Module\accounting\Entities\Providers\Identity\Oidc
* @uses \SimpleSAML\Module\accounting\Entities\Bases\AbstractProvider * @uses \SimpleSAML\Module\accounting\Entities\Bases\AbstractProvider
* @uses \SimpleSAML\Module\accounting\Entities\Providers\Bases\AbstractOidcProvider * @uses \SimpleSAML\Module\accounting\Entities\Providers\Bases\AbstractOidcProvider
* @uses \SimpleSAML\Module\accounting\Entities\Authentication\Protocol\Oidc
*/ */
class OidcTest extends TestCase class OidcTest extends TestCase
{ {
......
...@@ -12,6 +12,7 @@ use SimpleSAML\Module\accounting\Exceptions\MetadataException; ...@@ -12,6 +12,7 @@ use SimpleSAML\Module\accounting\Exceptions\MetadataException;
* @covers \SimpleSAML\Module\accounting\Entities\Providers\Service\Oidc * @covers \SimpleSAML\Module\accounting\Entities\Providers\Service\Oidc
* @uses \SimpleSAML\Module\accounting\Entities\Bases\AbstractProvider * @uses \SimpleSAML\Module\accounting\Entities\Bases\AbstractProvider
* @uses \SimpleSAML\Module\accounting\Entities\Providers\Bases\AbstractOidcProvider * @uses \SimpleSAML\Module\accounting\Entities\Providers\Bases\AbstractOidcProvider
* @uses \SimpleSAML\Module\accounting\Entities\Authentication\Protocol\Oidc
*/ */
class OidcTest extends TestCase class OidcTest extends TestCase
{ {
......
...@@ -82,6 +82,7 @@ class ArrayTest extends TestCase ...@@ -82,6 +82,7 @@ class ArrayTest extends TestCase
$this->assertSame($arrHelper->getNestedElementByKey($simpleIndexed, 0), [1]); $this->assertSame($arrHelper->getNestedElementByKey($simpleIndexed, 0), [1]);
$this->assertNull($arrHelper->getNestedElementByKey($simpleIndexed, 3)); $this->assertNull($arrHelper->getNestedElementByKey($simpleIndexed, 3));
$this->assertNull($arrHelper->getNestedElementByKey($simpleIndexed, 'a')); $this->assertNull($arrHelper->getNestedElementByKey($simpleIndexed, 'a'));
$this->assertNull($arrHelper->getNestedElementByKey($simpleIndexed, 0, 'a'));
$this->assertSame($arrHelper->getNestedElementByKey($nestedIndexed, 0), [1, [2, [4, [5]]]]); $this->assertSame($arrHelper->getNestedElementByKey($nestedIndexed, 0), [1, [2, [4, [5]]]]);
$this->assertSame($arrHelper->getNestedElementByKey($nestedIndexed, 0), [1, [2, [4, [5]]]]); $this->assertSame($arrHelper->getNestedElementByKey($nestedIndexed, 0), [1, [2, [4, [5]]]]);
......
...@@ -22,7 +22,9 @@ use SimpleSAML\Test\Module\accounting\Constants\StateArrays; ...@@ -22,7 +22,9 @@ use SimpleSAML\Test\Module\accounting\Constants\StateArrays;
* @uses \SimpleSAML\Module\accounting\Entities\Providers\Service\Saml2 * @uses \SimpleSAML\Module\accounting\Entities\Providers\Service\Saml2
* @uses \SimpleSAML\Module\accounting\Entities\Providers\Service\Oidc * @uses \SimpleSAML\Module\accounting\Entities\Providers\Service\Oidc
* @uses \SimpleSAML\Module\accounting\Entities\Providers\Bases\AbstractSaml2Provider * @uses \SimpleSAML\Module\accounting\Entities\Providers\Bases\AbstractSaml2Provider
* @uses \SimpleSAML\Module\accounting\Entities\Providers\Bases\AbstractOidcProvider
* @uses \SimpleSAML\Module\accounting\Entities\Authentication\Protocol\Saml2 * @uses \SimpleSAML\Module\accounting\Entities\Authentication\Protocol\Saml2
* @uses \SimpleSAML\Module\accounting\Entities\Authentication\Protocol\Oidc
*/ */
class ProviderResolverTest extends TestCase class ProviderResolverTest extends TestCase
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment