Source of file ClientEntityTest.php
Size: 2,783 Bytes - Last Modified: 2021-12-24T05:17:09+00:00
/var/www/docs.ssmods.com/process/src/tests/ClientEntityTest.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | <?php namespace IanSimpson\Tests; use SilverStripe\Dev\SapphireTest; use IanSimpson\OAuth2\Entities\ClientEntity; use SilverStripe\ORM\ValidationException; class ClientEntityTest extends SapphireTest { protected $usesDatabase = true; public function testRedirectUriRequired() { $this->expectException(ValidationException::class); $e = new ClientEntity(); $e->populateDefaults(); $e->write(); } public function testRedirectUriWhitespace() { $this->expectException(ValidationException::class); $e = new ClientEntity(); $e->populateDefaults(); $e->ClientRedirectUri = ' '; $e->write(); } public function testValidatePass() { $e = new ClientEntity(); $e->populateDefaults(); $e->ClientRedirectUri = 'http://somewhere.lan/oauth2/callback'; $e->write(); } public function testLegacySecretMigratesToHashed() { $e = new ClientEntity(); $e->ClientIdentifier = '123'; $e->ClientSecret = 'abc'; $e->ClientRedirectUri = 'http://somewhere.lan/oauth2/callback'; $e->write(); $this->assertTrue(empty($e->ClientSecret)); $this->assertTrue($e->isSecretValid('abc')); } public function testSecretWorks() { $e = new ClientEntity(); $e->ClientRedirectUri = 'http://somewhere.lan/oauth2/callback'; $e->populateDefaults(); $secret = $e->HashedClientSecret; $e->write(); $this->assertNotEquals($secret, $e->HashedClientSecret); $this->assertTrue(empty($e->ClientSecret)); $this->assertTrue($e->isSecretValid($secret)); } public function testSecretIsNotAvailableAfterWriting() { $e = new ClientEntity(); $e->ClientRedirectUri = 'http://somewhere.lan/oauth2/callback'; $e->populateDefaults(); $e->write(); $refreshed = ClientEntity::get()->byID($e->ID); $secretField = $refreshed->getCMSFields()->fieldByName('Root.Main.HashedClientSecret'); $this->assertNull($secretField); $hiddenSecret = $refreshed->getCMSFields()->fieldByName('Root.Main.HiddenHashedClientSecret')->Value(); $this->assertEquals($hiddenSecret, '<hidden>'); } public function testLegacyWarningIsShown() { $e = new ClientEntity(); $e->ClientIdentifier = '123'; $e->ClientSecret = 'abc'; $e->ClientRedirectUri = 'http://somewhere.lan/oauth2/callback'; $secret = $e->getCMSFields()->fieldByName('Root.Main.HashedClientSecret'); $this->assertNull($secret); $legacyField = $e->getCMSFields()->fieldByName('Root.Main.LegacyClientSecret'); $this->assertNotNull($legacyField); } } |