feat(Docker): Upgrade to PHP 8.5.0RC3 with native ext-uri support
BREAKING CHANGE: Requires PHP 8.5.0RC3 Changes: - Update Docker base image from php:8.4-fpm to php:8.5.0RC3-fpm - Enable ext-uri for native WHATWG URL parsing support - Update composer.json PHP requirement from ^8.4 to ^8.5 - Add ext-uri as required extension in composer.json - Move URL classes from Url.php85/ to Url/ directory (now compatible) - Remove temporary PHP 8.4 compatibility workarounds Benefits: - Native URL parsing with Uri\WhatWg\Url class - Better performance for URL operations - Future-proof with latest PHP features - Eliminates PHP version compatibility issues
This commit is contained in:
55
tests/Unit/Framework/UserAgent/DeviceCategoryTest.php
Normal file
55
tests/Unit/Framework/UserAgent/DeviceCategoryTest.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use App\Framework\UserAgent\ValueObjects\DeviceCategory;
|
||||
|
||||
describe('DeviceCategory Value Object', function () {
|
||||
it('has all expected device categories', function () {
|
||||
expect(DeviceCategory::BOT)->toBeInstanceOf(DeviceCategory::class);
|
||||
expect(DeviceCategory::MOBILE)->toBeInstanceOf(DeviceCategory::class);
|
||||
expect(DeviceCategory::DESKTOP)->toBeInstanceOf(DeviceCategory::class);
|
||||
expect(DeviceCategory::TABLET)->toBeInstanceOf(DeviceCategory::class);
|
||||
expect(DeviceCategory::UNKNOWN)->toBeInstanceOf(DeviceCategory::class);
|
||||
});
|
||||
|
||||
it('returns correct display names', function () {
|
||||
expect(DeviceCategory::BOT->getDisplayName())->toBe('Bot');
|
||||
expect(DeviceCategory::MOBILE->getDisplayName())->toBe('Mobile Device');
|
||||
expect(DeviceCategory::DESKTOP->getDisplayName())->toBe('Desktop Computer');
|
||||
expect(DeviceCategory::TABLET->getDisplayName())->toBe('Tablet');
|
||||
expect(DeviceCategory::UNKNOWN->getDisplayName())->toBe('Unknown Device');
|
||||
});
|
||||
|
||||
it('correctly identifies mobile devices', function () {
|
||||
expect(DeviceCategory::MOBILE->isMobile())->toBeTrue();
|
||||
expect(DeviceCategory::TABLET->isMobile())->toBeTrue();
|
||||
expect(DeviceCategory::DESKTOP->isMobile())->toBeFalse();
|
||||
expect(DeviceCategory::BOT->isMobile())->toBeFalse();
|
||||
expect(DeviceCategory::UNKNOWN->isMobile())->toBeFalse();
|
||||
});
|
||||
|
||||
it('correctly identifies desktop devices', function () {
|
||||
expect(DeviceCategory::DESKTOP->isDesktop())->toBeTrue();
|
||||
expect(DeviceCategory::MOBILE->isDesktop())->toBeFalse();
|
||||
expect(DeviceCategory::TABLET->isDesktop())->toBeFalse();
|
||||
expect(DeviceCategory::BOT->isDesktop())->toBeFalse();
|
||||
expect(DeviceCategory::UNKNOWN->isDesktop())->toBeFalse();
|
||||
});
|
||||
|
||||
it('correctly identifies bots', function () {
|
||||
expect(DeviceCategory::BOT->isBot())->toBeTrue();
|
||||
expect(DeviceCategory::MOBILE->isBot())->toBeFalse();
|
||||
expect(DeviceCategory::DESKTOP->isBot())->toBeFalse();
|
||||
expect(DeviceCategory::TABLET->isBot())->toBeFalse();
|
||||
expect(DeviceCategory::UNKNOWN->isBot())->toBeFalse();
|
||||
});
|
||||
|
||||
it('has correct enum values', function () {
|
||||
expect(DeviceCategory::BOT->value)->toBe('bot');
|
||||
expect(DeviceCategory::MOBILE->value)->toBe('mobile');
|
||||
expect(DeviceCategory::DESKTOP->value)->toBe('desktop');
|
||||
expect(DeviceCategory::TABLET->value)->toBe('tablet');
|
||||
expect(DeviceCategory::UNKNOWN->value)->toBe('unknown');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user