Skip to content

Commit 50fa5e4

Browse files
committed
added Laravel 11 support, Update phpunit version 11, fix Replace str_is() with Str::is() in the package code, change, unit test cases namespaces changes, and fix test cases deprecation warnings
1 parent 6730496 commit 50fa5e4

File tree

11 files changed

+981
-815
lines changed

11 files changed

+981
-815
lines changed

.phpunit.result.cache

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"version":1,"defects":{"EntrustTest::testRouteNeedsRole":5,"EntrustTest::testRouteNeedsPermission":5,"EntrustTest::testRouteNeedsRoleOrPermission":5,"EntrustUserTest::testCan":8,"EntrustUserTest::testCanWithPlaceholderSupport":8,"EntrustUserTest::testAbilityShouldReturnBoolean":8,"EntrustUserTest::testAbilityShouldReturnArray":8,"EntrustUserTest::testAbilityShouldReturnBoth":8,"EntrustUserTest::testAbilityShouldAcceptStrings":8,"EntrustUserTest::testAbilityDefaultOptions":8,"EntrustUserTest::testAttachRole":5,"EntrustUserTest::testDetachRole":5,"EntrustUserTest::testAttachRoles":5,"EntrustUserTest::testDetachRoles":5,"EntrustUserTest::testDetachAllRoles":5},"times":{"EntrustTest::testHasRole":0.005,"EntrustTest::testCan":0,"EntrustTest::testUser":0.001,"EntrustTest::testRouteNeedsRole":0.001,"EntrustTest::testRouteNeedsPermission":0,"EntrustTest::testRouteNeedsRoleOrPermission":0,"EntrustUserTest::testRoles":0.001,"EntrustUserTest::testHasRole":0.002,"EntrustUserTest::testCan":0.003,"EntrustUserTest::testCanWithPlaceholderSupport":0,"EntrustUserTest::testAbilityShouldReturnBoolean":0.001,"EntrustUserTest::testAbilityShouldReturnArray":0.001,"EntrustUserTest::testAbilityShouldReturnBoth":0.001,"EntrustUserTest::testAbilityShouldAcceptStrings":0,"EntrustUserTest::testAbilityDefaultOptions":0.001,"EntrustUserTest::testAbilityShouldThrowInvalidArgumentException":0,"EntrustUserTest::testAttachRole":0.001,"EntrustUserTest::testDetachRole":0,"EntrustUserTest::testAttachRoles":0,"EntrustUserTest::testDetachRoles":0,"EntrustUserTest::testDetachAllRoles":0.001,"EntrustAbilityTest::testHandle_IsGuestWithNoAbility_ShouldAbort403":0.002,"EntrustAbilityTest::testHandle_IsGuestWithAbility_ShouldAbort403":0.001,"EntrustAbilityTest::testHandle_IsLoggedInWithNoAbility_ShouldAbort403":0,"EntrustAbilityTest::testHandle_IsLoggedInWithAbility_ShouldNotAbort":0,"EntrustPermissionTest::testHandle_IsGuestWithNoPermission_ShouldAbort403":0,"EntrustPermissionTest::testHandle_IsGuestWithPermission_ShouldAbort403":0,"EntrustPermissionTest::testHandle_IsLoggedInWithNoPermission_ShouldAbort403":0,"EntrustPermissionTest::testHandle_IsLoggedInWithPermission_ShouldNotAbort":0,"EntrustRoleTest::testHandle_IsGuestWithMismatchingRole_ShouldAbort403":0,"EntrustRoleTest::testHandle_IsGuestWithMatchingRole_ShouldAbort403":0,"EntrustRoleTest::testHandle_IsLoggedInWithMismatchRole_ShouldAbort403":0,"EntrustRoleTest::testHandle_IsLoggedInWithMatchingRole_ShouldNotAbort":0,"EntrustTest::testFilterGeneratedByRouteNeedsRoleOrPermission#0":0.001,"EntrustTest::testFilterGeneratedByRouteNeedsRoleOrPermission#1":0,"EntrustTest::testFilterGeneratedByRouteNeedsRoleOrPermission#2":0,"EntrustTest::testFilterGeneratedByRouteNeedsRoleOrPermission#3":0,"EntrustTest::testFilterGeneratedByRouteNeedsRoleOrPermission#4":0,"EntrustTest::testFilterGeneratedByRouteNeedsRoleOrPermission#5":0,"EntrustTest::testFilterGeneratedByRouteNeedsRoleOrPermission#6":0,"EntrustTest::testFilterGeneratedByRouteNeedsRoleOrPermission#7":0,"EntrustTest::testFilterGeneratedByRouteNeedsRoleOrPermission#8":0,"EntrustTest::testFilterGeneratedByRouteNeedsRoleOrPermission#9":0,"EntrustTest::testFilterGeneratedByRouteNeedsRoleOrPermission#10":0,"EntrustTest::testFilterGeneratedByRouteNeedsRoleOrPermission#11":0,"EntrustTest::testFilterGeneratedByRouteNeedsRole#0":0.002,"EntrustTest::testFilterGeneratedByRouteNeedsRole#1":0,"EntrustTest::testFilterGeneratedByRouteNeedsRole#2":0,"EntrustTest::testFilterGeneratedByRouteNeedsPermission#0":0.001,"EntrustTest::testFilterGeneratedByRouteNeedsPermission#1":0,"EntrustTest::testFilterGeneratedByRouteNeedsPermission#2":0}}

composer.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@
2626
}
2727
],
2828
"require": {
29-
"php": "^8.1",
30-
"illuminate/console": "^9.0|^10.0",
31-
"illuminate/support": "^9.0|^10.0",
32-
"illuminate/cache": "^9.0|^10.0",
33-
"illuminate/database": "^9.0|^10.0"
29+
"php": "^8.2",
30+
"illuminate/console": "^11",
31+
"illuminate/support": "^11",
32+
"illuminate/cache": "^11",
33+
"illuminate/database": "^11"
3434
},
3535
"require-dev": {
36-
"phpunit/phpunit": "^9.0",
36+
"phpunit/phpunit": "^11",
3737
"mockery/mockery": "^1.5"
3838
},
3939
"autoload": {

composer.lock

Lines changed: 932 additions & 773 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

phpunit.xml

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<phpunit backupGlobals="false"
3-
backupStaticAttributes="false"
4-
bootstrap="vendor/autoload.php"
5-
colors="true"
6-
convertErrorsToExceptions="true"
7-
convertNoticesToExceptions="true"
8-
convertWarningsToExceptions="true"
9-
processIsolation="false"
10-
stopOnFailure="false"
11-
syntaxCheck="false"
12-
>
2+
<phpunit>
133
<testsuites>
144
<testsuite name="Package Test Suite">
155
<directory suffix=".php">./tests/</directory>

src/Entrust/Middleware/EntrustAbility.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,15 @@ public function __construct(Guard $auth)
4040
public function handle($request, Closure $next, $roles, $permissions, $validateAll = false)
4141
{
4242
if (!is_array($roles)) {
43-
$roles = explode(self::DELIMITER, $roles);
43+
// Convert $roles to an empty string if it's null or not a string
44+
$roles = $roles ?? '';
45+
$roles = explode(self::DELIMITER, $roles);
4446
}
4547

4648
if (!is_array($permissions)) {
47-
$permissions = explode(self::DELIMITER, $permissions);
49+
// Convert $permissions to an empty string if it's null or not a string
50+
$permissions = $permissions ?? '';
51+
$permissions = explode(self::DELIMITER, $permissions);
4852
}
4953

5054
if (!is_bool($validateAll)) {

src/Entrust/Middleware/EntrustPermission.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,12 @@ public function __construct(Guard $auth)
3838
public function handle($request, Closure $next, $permissions)
3939
{
4040
if (!is_array($permissions)) {
41-
$permissions = explode(self::DELIMITER, $permissions);
41+
// Convert $permissions to an empty string if it's null or not a string
42+
$permissions = $permissions ?? '';
43+
$permissions = explode(self::DELIMITER, $permissions);
4244
}
4345

46+
4447
if ($this->auth->guest() || !$request->user()->can($permissions)) {
4548
abort(403);
4649
}

src/Entrust/Middleware/EntrustRole.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,11 @@ public function __construct(Guard $auth)
3737
*/
3838
public function handle($request, Closure $next, $roles)
3939
{
40+
4041
if (!is_array($roles)) {
41-
$roles = explode(self::DELIMITER, $roles);
42+
// Convert $roles to an empty string if it's null or not a string
43+
$roles = $roles ?? '';
44+
$roles = explode(self::DELIMITER, $roles);
4245
}
4346

4447
if ($this->auth->guest() || !$request->user()->hasRole($roles)) {

src/Entrust/Traits/EntrustUserTrait.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
use Illuminate\Cache\TaggableStore;
1212
use Illuminate\Support\Facades\Cache;
1313
use Illuminate\Support\Facades\Config;
14+
use Illuminate\Support\Str;
15+
1416
use InvalidArgumentException;
1517

1618
trait EntrustUserTrait
@@ -162,7 +164,7 @@ public function can($permission, $requireAll = false)
162164
foreach ($this->cachedRoles() as $role) {
163165
// Validate against the Permission table
164166
foreach ($role->cachedPermissions() as $perm) {
165-
if (str_is( $permission, $perm->name) ) {
167+
if (Str::is( $permission, $perm->name) ) {
166168
return true;
167169
}
168170
}

tests/EntrustTest.php

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
<?php
22

33
use Zizaco\Entrust\Entrust;
4+
use PHPUnit\Framework\TestCase;
45
use Illuminate\Support\Facades\Facade;
6+
use PHPUnit\Framework\Attributes\DataProvider;
7+
58
use Mockery as m;
69

7-
class EntrustTest extends PHPUnit_Framework_TestCase
10+
class EntrustTest extends TestCase
811
{
912
protected $nullFilterTest;
1013
protected $abortFilterTest;
1114
protected $customResponseFilterTest;
1215

1316
protected $expectedResponse;
1417

15-
public function setUp()
18+
protected function setUp(): void
1619
{
20+
parent::setUp();
1721
$this->nullFilterTest = function($filterClosure) {
1822
if (!($filterClosure instanceof Closure)) {
1923
return false;
@@ -54,8 +58,9 @@ public function setUp()
5458
};
5559
}
5660

57-
public function tearDown()
61+
protected function tearDown(): void
5862
{
63+
parent::tearDown();
5964
m::close();
6065
}
6166

@@ -318,7 +323,7 @@ public function testRouteNeedsRoleOrPermission()
318323
$entrust->routeNeedsRoleOrPermission($route, $manyRole, $manyPerm);
319324
}
320325

321-
public function simpleFilterDataProvider()
326+
public static function simpleFilterDataProvider()
322327
{
323328
return [
324329
// Filter passes, null is returned
@@ -330,17 +335,13 @@ public function simpleFilterDataProvider()
330335
];
331336
}
332337

333-
/**
334-
* @dataProvider simpleFilterDataProvider
335-
*/
338+
#[DataProvider('simpleFilterDataProvider')]
336339
public function testFilterGeneratedByRouteNeedsRole($returnValue, $filterTest, $abort = false, $expectedResponse = null)
337340
{
338341
$this->filterTestExecution('routeNeedsRole', 'hasRole', $returnValue, $filterTest, $abort, $expectedResponse);
339342
}
340343

341-
/**
342-
* @dataProvider simpleFilterDataProvider
343-
*/
344+
#[DataProvider('simpleFilterDataProvider')]
344345
public function testFilterGeneratedByRouteNeedsPermission($returnValue, $filterTest, $abort = false, $expectedResponse = null)
345346
{
346347
$this->filterTestExecution('routeNeedsPermission', 'can', $returnValue, $filterTest, $abort, $expectedResponse);
@@ -371,7 +372,7 @@ protected function filterTestExecution($methodTested, $mockedMethod, $returnValu
371372
$entrust->$methodTested($route, $methodValue, $expectedResponse);
372373
}
373374

374-
public function routeNeedsRoleOrPermissionFilterDataProvider()
375+
public static function routeNeedsRoleOrPermissionFilterDataProvider()
375376
{
376377
return [
377378
// Both role and permission pass, null is returned
@@ -393,9 +394,8 @@ public function routeNeedsRoleOrPermissionFilterDataProvider()
393394
];
394395
}
395396

396-
/**
397-
* @dataProvider routeNeedsRoleOrPermissionFilterDataProvider
398-
*/
397+
398+
#[DataProvider('routeNeedsRoleOrPermissionFilterDataProvider')]
399399
public function testFilterGeneratedByRouteNeedsRoleOrPermission(
400400
$roleIsValid, $permIsValid, $filterTest, $requireAll = false, $abort = false, $expectedResponse = null
401401
) {

tests/EntrustUserTest.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@
77
use Illuminate\Support\Facades\Cache;
88
use Zizaco\Entrust\Permission;
99
use Zizaco\Entrust\Role;
10+
use PHPUnit\Framework\TestCase;
1011
use Mockery as m;
1112

12-
class EntrustUserTest extends PHPUnit_Framework_TestCase
13+
class EntrustUserTest extends TestCase
1314
{
1415
private $facadeMocks = array();
1516

16-
public function setUp()
17+
public function setUp(): void
1718
{
1819
parent::setUp();
1920

@@ -29,8 +30,9 @@ public function setUp()
2930
Cache::swap($this->facadeMocks['cache']);
3031
}
3132

32-
public function tearDown()
33+
public function tearDown() : void
3334
{
35+
parent::tearDown();
3436
m::close();
3537
}
3638

0 commit comments

Comments
 (0)