Skip to content

Commit

Permalink
Merge pull request #199 from kenjis/refactor-add-return-type
Browse files Browse the repository at this point in the history
refactor: add return type
  • Loading branch information
lonnieezell authored Jun 3, 2022
2 parents 4b8c422 + baf204e commit ed439e6
Show file tree
Hide file tree
Showing 33 changed files with 238 additions and 276 deletions.
2 changes: 1 addition & 1 deletion src/Auth.php
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ public function routes(RouteCollection &$routes, array $config = []): void
{
$authRoutes = config('AuthRoutes')->routes;

$routes->group('/', ['namespace' => 'CodeIgniter\Shield\Controllers'], static function (RouteCollection $routes) use ($authRoutes, $config) {
$routes->group('/', ['namespace' => 'CodeIgniter\Shield\Controllers'], static function (RouteCollection $routes) use ($authRoutes, $config): void {
foreach ($authRoutes as $name => $row) {
if (! isset($config['except']) || (isset($config['except']) && ! in_array($name, $config['except'], true))) {
foreach ($row as $params) {
Expand Down
2 changes: 1 addition & 1 deletion src/Authentication/Actions/Email2FA.php
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ public function afterLogin(User $user): void
$this->createIdentity($user);
}

private function createIdentity(User $user)
private function createIdentity(User $user): void
{
/** @var UserIdentityModel $identityModel */
$identityModel = model(UserIdentityModel::class);
Expand Down
8 changes: 2 additions & 6 deletions src/Authentication/AuthenticationException.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,21 +35,17 @@ public static function forNoEntityProvided(): self
/**
* Fires when no minimumPasswordLength has been set
* in the Auth config file.
*
* @return self
*/
public static function forUnsetPasswordLength()
public static function forUnsetPasswordLength(): self
{
return new self(lang('Auth.unsetPasswordLength'), 500);
}

/**
* When the cURL request (to Have I Been Pwned) in PwnedValidator
* throws a HTTPException it is re-thrown as this one
*
* @return self
*/
public static function forHIBPCurlFail(HTTPException $e)
public static function forHIBPCurlFail(HTTPException $e): self
{
return new self($e->getMessage(), $e->getCode(), $e);
}
Expand Down
2 changes: 1 addition & 1 deletion src/Authentication/Authenticators/Session.php
Original file line number Diff line number Diff line change
Expand Up @@ -810,7 +810,7 @@ private function hashValidator(string $validator): string
return hash('sha256', $validator);
}

private function refreshRememberMeToken(stdClass $token)
private function refreshRememberMeToken(stdClass $token): void
{
// Update validator.
$validator = bin2hex(random_bytes(20));
Expand Down
14 changes: 3 additions & 11 deletions src/Authentication/Passwords/NothingPersonalValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,8 @@ public function check(string $password, ?User $user = null): Result
*
* isNotPersonal() returns true if no personal information can be found, or false
* if such info is found.
*
* @return bool
*/
protected function isNotPersonal(string $password, ?User $user)
protected function isNotPersonal(string $password, ?User $user): bool
{
$userName = \strtolower($user->username);
$email = \strtolower($user->email);
Expand Down Expand Up @@ -150,10 +148,8 @@ protected function isNotPersonal(string $password, ?User $user)
*
* A $maxSimilarity value of 0 (zero) returns true without making a comparison.
* In other words, 0 (zero) turns off similarity testing.
*
* @return bool
*/
protected function isNotSimilar(string $password, ?User $user)
protected function isNotSimilar(string $password, ?User $user): bool
{
$maxSimilarity = (float) $this->config->maxSimilarity;
// sanity checking - working range 1-100, 0 is off
Expand Down Expand Up @@ -183,12 +179,8 @@ protected function isNotSimilar(string $password, ?User $user)
*
* Replaces all non-word characters and underscores in $str with a space.
* Then it explodes that result using the space for a delimiter.
*
* @param string $str
*
* @return array
*/
protected function strip_explode($str)
protected function strip_explode(string $str): array
{
$stripped = \preg_replace('/[\W_]+/', ' ', $str);
$parts = \explode(' ', \trim($stripped));
Expand Down
4 changes: 1 addition & 3 deletions src/Models/RememberModel.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,8 @@ public function rememberUser(User $user, string $selector, string $hashedValidat

/**
* Returns the remember-me token info for a given selector.
*
* @return stdClass|null
*/
public function getRememberToken(string $selector)
public function getRememberToken(string $selector): ?stdClass
{
return $this->where('selector', $selector)
->get()
Expand Down
12 changes: 6 additions & 6 deletions tests/Authentication/AccessTokenTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@
*/
final class AccessTokenTest extends DatabaseTestCase
{
public function testCanNoScopes()
public function testCanNoScopes(): void
{
$token = new AccessToken();

$this->assertFalse($token->can('foo'));
}

public function testCanWildcard()
public function testCanWildcard(): void
{
$token = new AccessToken([
'extra' => ['*'],
Expand All @@ -27,7 +27,7 @@ public function testCanWildcard()
$this->assertTrue($token->can('bar'));
}

public function testCanSuccess()
public function testCanSuccess(): void
{
$token = new AccessToken([
'extra' => ['foo'],
Expand All @@ -37,14 +37,14 @@ public function testCanSuccess()
$this->assertFalse($token->can('bar'));
}

public function testCantNoScopes()
public function testCantNoScopes(): void
{
$token = new AccessToken();

$this->assertTrue($token->cant('foo'));
}

public function testCantWildcard()
public function testCantWildcard(): void
{
$token = new AccessToken([
'extra' => ['*'],
Expand All @@ -54,7 +54,7 @@ public function testCantWildcard()
$this->assertFalse($token->cant('bar'));
}

public function testCantSuccess()
public function testCantSuccess(): void
{
$token = new AccessToken([
'extra' => ['foo'],
Expand Down
10 changes: 5 additions & 5 deletions tests/Authentication/AuthHelperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,35 +31,35 @@ protected function setUp(): void
$this->setPrivateProperty(auth(), 'alias', null);
}

public function testAuthReturnsDefaultAuthenticator()
public function testAuthReturnsDefaultAuthenticator(): void
{
$authenticatorClassname = config('Auth')->authenticators[config('Auth')->defaultAuthenticator];

$this->assertInstanceOf($authenticatorClassname, auth()->getAuthenticator());
}

public function testAuthReturnsSpecifiedAuthenticator()
public function testAuthReturnsSpecifiedAuthenticator(): void
{
$authenticatorClassname = config('Auth')->authenticators['tokens'];

$this->assertInstanceOf($authenticatorClassname, auth('tokens')->getAuthenticator());
}

public function testAuthThrowsWithInvalidAuthenticator()
public function testAuthThrowsWithInvalidAuthenticator(): void
{
$this->expectException(AuthenticationException::class);
$this->expectExceptionMessage(lang('Auth.unknownAuthenticator', ['foo']));

auth('foo')->user();
}

public function testUserIdReturnsNull()
public function testUserIdReturnsNull(): void
{
$this->assertFalse(auth()->loggedIn());
$this->assertNull(user_id());
}

public function testUserIdReturnsId()
public function testUserIdReturnsId(): void
{
$user = fake(UserModel::class, ['id' => 1]);
$this->setPrivateProperty(auth()->getAuthenticator(), 'user', $user);
Expand Down
4 changes: 2 additions & 2 deletions tests/Authentication/AuthenticationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@ protected function setUp(): void
$this->auth->setProvider(new UserModel());
}

public function testThrowsOnUnknownAuthenticator()
public function testThrowsOnUnknownAuthenticator(): void
{
$this->expectException(AuthenticationException::class);
$this->expectExceptionMessage(lang('Auth.unknownAuthenticator', ['foo']));

$this->auth->factory('foo');
}

public function testFactoryLoadsDefault()
public function testFactoryLoadsDefault(): void
{
$shield1 = $this->auth->factory();
$shield2 = $this->auth->factory('session');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ protected function setUp(): void
Services::injectMock('events', new MockEvents());
}

public function testLogin()
public function testLogin(): void
{
$user = fake(UserModel::class);

Expand All @@ -48,7 +48,7 @@ public function testLogin()
$this->assertSame($user->id, $this->auth->getUser()->id);
}

public function testLogout()
public function testLogout(): void
{
// this one's a little odd since it's stateless, but roll with it...
$user = fake(UserModel::class);
Expand All @@ -60,7 +60,7 @@ public function testLogout()
$this->assertNull($this->auth->getUser());
}

public function testLoginByIdNoToken()
public function testLoginByIdNoToken(): void
{
$user = fake(UserModel::class);

Expand All @@ -72,7 +72,7 @@ public function testLoginByIdNoToken()
$this->assertNull($this->auth->getUser()->currentAccessToken());
}

public function testLoginByIdWithToken()
public function testLoginByIdWithToken(): void
{
/** @var User $user */
$user = fake(UserModel::class);
Expand All @@ -87,7 +87,7 @@ public function testLoginByIdWithToken()
$this->assertSame($token->id, $this->auth->getUser()->currentAccessToken()->id);
}

public function testLoginByIdWithMultipleTokens()
public function testLoginByIdWithMultipleTokens(): void
{
/** @var User $user */
$user = fake(UserModel::class);
Expand All @@ -103,15 +103,15 @@ public function testLoginByIdWithMultipleTokens()
$this->assertSame($token1->id, $this->auth->getUser()->currentAccessToken()->id);
}

public function testCheckNoToken()
public function testCheckNoToken(): void
{
$result = $this->auth->check([]);

$this->assertFalse($result->isOK());
$this->assertSame(lang('Auth.noToken'), $result->reason());
}

public function testCheckBadToken()
public function testCheckBadToken(): void
{
$result = $this->auth->check(['token' => 'abc123']);

Expand All @@ -135,7 +135,7 @@ public function testCheckOldToken()
$this->assertSame(lang('Auth.oldToken'), $result->reason());
}

public function testCheckSuccess()
public function testCheckSuccess(): void
{
/** @var User $user */
$user = fake(UserModel::class);
Expand All @@ -157,7 +157,7 @@ public function testCheckSuccess()
$this->assertNotEmpty($updatedToken->last_used_at);
}

public function testAttemptCannotFindUser()
public function testAttemptCannotFindUser(): void
{
$result = $this->auth->attempt([
'token' => 'abc123',
Expand All @@ -175,7 +175,7 @@ public function testAttemptCannotFindUser()
]);
}

public function testAttemptSuccess()
public function testAttemptSuccess(): void
{
/** @var User $user */
$user = fake(UserModel::class);
Expand Down Expand Up @@ -203,7 +203,7 @@ public function testAttemptSuccess()
]);
}

protected function setRequestHeader(string $token)
protected function setRequestHeader(string $token): void
{
$request = service('request');
$request->setHeader('Authorization', 'Bearer ' . $token);
Expand Down
Loading

0 comments on commit ed439e6

Please sign in to comment.