mirror of
https://github.com/Bubka/2FAuth.git
synced 2024-11-25 09:44:04 +01:00
Fix & Complete tests
This commit is contained in:
parent
17256c6788
commit
4e463a781b
@ -47,11 +47,12 @@ public function user()
|
|||||||
$remoteUserHeader = config('auth.auth_proxy_headers.user');
|
$remoteUserHeader = config('auth.auth_proxy_headers.user');
|
||||||
$remoteUserHeader = $remoteUserHeader ?: 'REMOTE_USER';
|
$remoteUserHeader = $remoteUserHeader ?: 'REMOTE_USER';
|
||||||
$identifier = [];
|
$identifier = [];
|
||||||
|
$identifier['id'] = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$identifier['id'] = request()->server($remoteUserHeader) ?? apache_request_headers()[$remoteUserHeader] ?? null;
|
$identifier['id'] = request()->server($remoteUserHeader) ?? apache_request_headers()[$remoteUserHeader] ?? null;
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) { //@codeCoverageIgnore
|
||||||
$identifier['id'] = null;
|
// Do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $identifier['id'] || is_array($identifier['id'])) {
|
if (! $identifier['id'] || is_array($identifier['id'])) {
|
||||||
|
@ -590,7 +590,7 @@ class MigrationTestData
|
|||||||
"account": "' . OtpTestData::ACCOUNT . '",
|
"account": "' . OtpTestData::ACCOUNT . '",
|
||||||
"service": "' . OtpTestData::SERVICE . '",
|
"service": "' . OtpTestData::SERVICE . '",
|
||||||
"icon": "' . OtpTestData::ICON_JPEG . '",
|
"icon": "' . OtpTestData::ICON_JPEG . '",
|
||||||
"icon_mime": "image\/svg+xml",
|
"icon_mime": "image\/jpeg",
|
||||||
"icon_file": "' . OtpTestData::ICON_JPEG_DATA . '",
|
"icon_file": "' . OtpTestData::ICON_JPEG_DATA . '",
|
||||||
"secret": "' . OtpTestData::SECRET . '",
|
"secret": "' . OtpTestData::SECRET . '",
|
||||||
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
|
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
|
||||||
@ -614,7 +614,7 @@ class MigrationTestData
|
|||||||
"account": "' . OtpTestData::ACCOUNT . '",
|
"account": "' . OtpTestData::ACCOUNT . '",
|
||||||
"service": "' . OtpTestData::SERVICE . '",
|
"service": "' . OtpTestData::SERVICE . '",
|
||||||
"icon": "' . OtpTestData::ICON_PNG . '",
|
"icon": "' . OtpTestData::ICON_PNG . '",
|
||||||
"icon_mime": "image\/svg+xml",
|
"icon_mime": "image\/png",
|
||||||
"icon_file": "' . OtpTestData::ICON_PNG_DATA . '",
|
"icon_file": "' . OtpTestData::ICON_PNG_DATA . '",
|
||||||
"secret": "' . OtpTestData::SECRET . '",
|
"secret": "' . OtpTestData::SECRET . '",
|
||||||
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
|
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
|
||||||
@ -638,7 +638,31 @@ class MigrationTestData
|
|||||||
"account": "' . OtpTestData::ACCOUNT . '",
|
"account": "' . OtpTestData::ACCOUNT . '",
|
||||||
"service": "' . OtpTestData::SERVICE . '",
|
"service": "' . OtpTestData::SERVICE . '",
|
||||||
"icon": "' . OtpTestData::ICON_BMP . '",
|
"icon": "' . OtpTestData::ICON_BMP . '",
|
||||||
"icon_mime": "image\/svg+xml",
|
"icon_mime": "image\/bmp",
|
||||||
|
"icon_file": "' . OtpTestData::ICON_BMP_DATA . '",
|
||||||
|
"secret": "' . OtpTestData::SECRET . '",
|
||||||
|
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
|
||||||
|
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
|
||||||
|
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
|
||||||
|
"counter": null,
|
||||||
|
"legacy_uri": "' . OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . '"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}';
|
||||||
|
|
||||||
|
const VALID_2FAUTH_JSON_MIGRATION_PAYLOAD_WITH_XBMP_ICON = '
|
||||||
|
{
|
||||||
|
"app": "2fauth_v3.4.1",
|
||||||
|
"schema": 1,
|
||||||
|
"datetime": "2022-12-14T14:53:06.173939Z",
|
||||||
|
"data":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"otp_type": "totp",
|
||||||
|
"account": "' . OtpTestData::ACCOUNT . '",
|
||||||
|
"service": "' . OtpTestData::SERVICE . '",
|
||||||
|
"icon": "' . OtpTestData::ICON_BMP . '",
|
||||||
|
"icon_mime": "image\/x-ms-bmp",
|
||||||
"icon_file": "' . OtpTestData::ICON_BMP_DATA . '",
|
"icon_file": "' . OtpTestData::ICON_BMP_DATA . '",
|
||||||
"secret": "' . OtpTestData::SECRET . '",
|
"secret": "' . OtpTestData::SECRET . '",
|
||||||
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
|
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
|
||||||
@ -662,7 +686,7 @@ class MigrationTestData
|
|||||||
"account": "' . OtpTestData::ACCOUNT . '",
|
"account": "' . OtpTestData::ACCOUNT . '",
|
||||||
"service": "' . OtpTestData::SERVICE . '",
|
"service": "' . OtpTestData::SERVICE . '",
|
||||||
"icon": "' . OtpTestData::ICON_WEBP . '",
|
"icon": "' . OtpTestData::ICON_WEBP . '",
|
||||||
"icon_mime": "image\/svg+xml",
|
"icon_mime": "image\/webp",
|
||||||
"icon_file": "' . OtpTestData::ICON_WEBP_DATA . '",
|
"icon_file": "' . OtpTestData::ICON_WEBP_DATA . '",
|
||||||
"secret": "' . OtpTestData::SECRET . '",
|
"secret": "' . OtpTestData::SECRET . '",
|
||||||
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
|
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
use App\Providers\RouteServiceProvider;
|
use App\Providers\RouteServiceProvider;
|
||||||
|
use Illuminate\Support\Facades\Artisan;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use PHPUnit\Framework\Attributes\CoversClass;
|
use PHPUnit\Framework\Attributes\CoversClass;
|
||||||
@ -27,10 +28,24 @@ public function test_exception_handler_with_web_route()
|
|||||||
#[Test]
|
#[Test]
|
||||||
public function test_all_api_routes_are_behind_apiv1_middleware()
|
public function test_all_api_routes_are_behind_apiv1_middleware()
|
||||||
{
|
{
|
||||||
|
Artisan::call('route:clear');
|
||||||
|
Artisan::call('route:cache');
|
||||||
|
$this->get('/');
|
||||||
|
|
||||||
$routes = Route::getRoutes();
|
$routes = Route::getRoutes();
|
||||||
|
|
||||||
foreach ($routes as $route) {
|
foreach ($routes as $route) {
|
||||||
$middlewares = Route::gatherRouteMiddleware($route);
|
$middlewares = [];
|
||||||
|
|
||||||
|
try {
|
||||||
|
$uri = $route->uri;
|
||||||
|
$middlewares = Route::gatherRouteMiddleware($route);
|
||||||
|
}
|
||||||
|
catch (\Exception $ex)
|
||||||
|
{
|
||||||
|
$uri = $route->uri;
|
||||||
|
//return;
|
||||||
|
}
|
||||||
|
|
||||||
if (Str::startsWith($route->uri(), self::API_ROUTE_PREFIX)) {
|
if (Str::startsWith($route->uri(), self::API_ROUTE_PREFIX)) {
|
||||||
$this->assertEquals(self::API_ROUTE_PREFIX, $route->getPrefix());
|
$this->assertEquals(self::API_ROUTE_PREFIX, $route->getPrefix());
|
||||||
|
@ -163,7 +163,7 @@ public function test_user_can_assign_multiple_accounts()
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[Test]
|
#[Test]
|
||||||
public function test_setUser_sets_twfaccounts_user()
|
public function test_setUser_sets_groups_user()
|
||||||
{
|
{
|
||||||
$this->groupOne = Group::factory()->create();
|
$this->groupOne = Group::factory()->create();
|
||||||
$this->groupTwo = Group::factory()->create();
|
$this->groupTwo = Group::factory()->create();
|
||||||
|
@ -308,4 +308,19 @@ public function test_delete_single_id()
|
|||||||
'id' => $twofaccount->id,
|
'id' => $twofaccount->id,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[Test]
|
||||||
|
public function test_setUser_sets_twofaccounts_user()
|
||||||
|
{
|
||||||
|
$twofaccountA = TwoFAccount::factory()->create();
|
||||||
|
$twofaccountB = TwoFAccount::factory()->create();
|
||||||
|
|
||||||
|
$this->assertEquals(null, $twofaccountA->user_id);
|
||||||
|
$this->assertEquals(null, $twofaccountB->user_id);
|
||||||
|
|
||||||
|
TwoFAccounts::setUser(TwoFAccount::all(), $this->user);
|
||||||
|
|
||||||
|
$this->assertEquals($this->user->id, $twofaccountA->refresh()->user_id);
|
||||||
|
$this->assertEquals($this->user->id, $twofaccountB->refresh()->user_id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
use App\Factories\MigratorFactory;
|
use App\Factories\MigratorFactory;
|
||||||
use App\Models\TwoFAccount;
|
use App\Models\TwoFAccount;
|
||||||
use App\Providers\MigrationServiceProvider;
|
use App\Providers\MigrationServiceProvider;
|
||||||
|
use App\Providers\TwoFAuthServiceProvider;
|
||||||
use App\Services\Migrators\AegisMigrator;
|
use App\Services\Migrators\AegisMigrator;
|
||||||
use App\Services\Migrators\GoogleAuthMigrator;
|
use App\Services\Migrators\GoogleAuthMigrator;
|
||||||
use App\Services\Migrators\Migrator;
|
use App\Services\Migrators\Migrator;
|
||||||
@ -29,6 +30,7 @@
|
|||||||
* MigratorTest test class
|
* MigratorTest test class
|
||||||
*/
|
*/
|
||||||
#[CoversClass(MigrationServiceProvider::class)]
|
#[CoversClass(MigrationServiceProvider::class)]
|
||||||
|
#[CoversClass(TwoFAuthServiceProvider::class)]
|
||||||
#[CoversClass(MigratorFactory::class)]
|
#[CoversClass(MigratorFactory::class)]
|
||||||
#[CoversClass(Migrator::class)]
|
#[CoversClass(Migrator::class)]
|
||||||
#[CoversClass(AegisMigrator::class)]
|
#[CoversClass(AegisMigrator::class)]
|
||||||
@ -435,6 +437,9 @@ public static function TwoFAuthWithIconMigrationProvider()
|
|||||||
'BMP' => [
|
'BMP' => [
|
||||||
MigrationTestData::VALID_2FAUTH_JSON_MIGRATION_PAYLOAD_WITH_BMP_ICON,
|
MigrationTestData::VALID_2FAUTH_JSON_MIGRATION_PAYLOAD_WITH_BMP_ICON,
|
||||||
],
|
],
|
||||||
|
'XBMP' => [
|
||||||
|
MigrationTestData::VALID_2FAUTH_JSON_MIGRATION_PAYLOAD_WITH_XBMP_ICON,
|
||||||
|
],
|
||||||
'WEBP' => [
|
'WEBP' => [
|
||||||
MigrationTestData::VALID_2FAUTH_JSON_MIGRATION_PAYLOAD_WITH_WEBP_ICON,
|
MigrationTestData::VALID_2FAUTH_JSON_MIGRATION_PAYLOAD_WITH_WEBP_ICON,
|
||||||
],
|
],
|
||||||
|
Loading…
Reference in New Issue
Block a user