From d5b77e96079085723298890b5a5cbe40f712b7b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Ivan=C4=8Di=C4=87?= <marko.ivancic@srce.hr> Date: Mon, 10 Jul 2023 16:23:29 +0200 Subject: [PATCH] WIP --- tests/src/Constants/StateArrays.php | 1 + .../Bases/AbstractOidcProviderTest.php | 79 +++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 tests/src/Entities/Providers/Bases/AbstractOidcProviderTest.php diff --git a/tests/src/Constants/StateArrays.php b/tests/src/Constants/StateArrays.php index 3d844cd..8b4b425 100755 --- a/tests/src/Constants/StateArrays.php +++ b/tests/src/Constants/StateArrays.php @@ -249,6 +249,7 @@ final class StateArrays 'owner' => null, 'post_logout_redirect_uri' => [], 'backchannel_logout_uri' => 'http://sp.host.internal:8074/logout.php', + 'logo_uri' => 'http://sp.host.internal:8074/logo.svg', ], 'AuthorizationRequestParameters' => [ 'response_type' => 'code', diff --git a/tests/src/Entities/Providers/Bases/AbstractOidcProviderTest.php b/tests/src/Entities/Providers/Bases/AbstractOidcProviderTest.php new file mode 100644 index 0000000..882ce99 --- /dev/null +++ b/tests/src/Entities/Providers/Bases/AbstractOidcProviderTest.php @@ -0,0 +1,79 @@ +<?php + +namespace SimpleSAML\Test\Module\accounting\Entities\Providers\Bases; + +use PHPUnit\Framework\MockObject\Stub; +use SimpleSAML\Module\accounting\Entities\Authentication\Protocol\Oidc; +use SimpleSAML\Module\accounting\Entities\Providers\Bases\AbstractOidcProvider; +use PHPUnit\Framework\TestCase; +use SimpleSAML\Module\accounting\Helpers\Arr; +use SimpleSAML\Module\accounting\Services\HelpersManager; +use SimpleSAML\Module\accounting\Services\JobRunner\State; +use SimpleSAML\Test\Module\accounting\Constants\StateArrays; + +/** + * @covers \SimpleSAML\Module\accounting\Entities\Providers\Bases\AbstractOidcProvider + * @uses \SimpleSAML\Module\accounting\Entities\Bases\AbstractProvider + */ +class AbstractOidcProviderTest 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::OIDC_FULL['Oidc']['RelyingPartyMetadata']; + } + + public function testCanCreateInstance(): void + { + $this->assertInstanceOf(AbstractOidcProvider::class, $this->prepareInstance(StateArrays::OIDC_FULL)); + } + + public function testCanGetLogoUrl(): void + { + $this->assertSame( + $this->metadata['logo_uri'], + $this->prepareInstance($this->metadata)->getLogoUrl() + ); + + $metadaNoLogo = $this->metadata; + unset($metadaNoLogo['logo_uri']); + + $this->assertNull($this->prepareInstance($metadaNoLogo)->getLogoUrl()); + } + + public function testCanGetProtocol(): void + { + $this->assertInstanceOf(Oidc::class, $this->prepareInstance($this->metadata)->getProtocol()); + } + + protected function prepareInstance(array $metadata): AbstractOidcProvider + { + $this->helpersManagerStub->method('getArr')->willReturn($this->arrStub); + return new class($metadata, $this->helpersManagerStub) extends AbstractOidcProvider { + public function getName(string $locale = self::DEFAULT_LOCALE): ?string + { + return 'name'; + } + + public function getDescription(string $locale = self::DEFAULT_LOCALE): ?string + { + return 'description'; + } + + protected function resolveEntityId(): string + { + return 'entityId'; + } + + protected function getProviderDescription(): string + { + return 'provider description'; + } + }; + } +} -- GitLab