mirror of
https://github.com/Vateron-Media/XC_VM.git
synced 2026-10-03 12:02:29 +02:00
Move the 17 global lookup arrays from resources/data/admin_constants.php into PSR-4 classes and enums, eliminating the last big pile of `global` reference data. New XcVm\Core\Reference\* (const + static accessors, FfmpegBinaries-style): GeoReference, LocaleReference, DeviceReference, UiReference, PermissionReference, StatusBadge. New XcVm\Core\Enum\* (backed enums with label()/options(), ModuleState-style): Theme (int), ResellerAction and ClientFilter (string). All consumers migrated off `global $rX` / `$GLOBALS['rX']` and the BaseAdminController extract bridge: TableController, DashboardController, SearchAjaxController, SettingsController, ResellerAPI and ResellerLoginController call the classes directly, and 21 view templates import them via `use`. The extract whitelist entries, the bootstrap require and admin_constants.php itself are removed. Fixes a latent bug: TableController read $rClientFilters without a `global`, so the client-request log showed raw status codes instead of labels; ClientFilter::labelFor() now resolves them. The reference classes and the three new enums are excluded from the load-balancer build (all consumers are already MAIN-only). Adds unit tests for the enums, StatusBadge and the reference data.
43 lines
1.5 KiB
PHP
43 lines
1.5 KiB
PHP
<?php
|
|
|
|
use XcVm\Core\Reference\StatusBadge;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
final class StatusBadgeTest extends TestCase {
|
|
|
|
public function testStreamKnownStatus(): void {
|
|
$this->assertStringContainsString('ONLINE', StatusBadge::stream(1));
|
|
$this->assertStringContainsString('STOPPED', StatusBadge::stream(0));
|
|
}
|
|
|
|
public function testStreamUnknownFallsBackToStopped(): void {
|
|
// Legacy behaviour: unknown status resolves to the STOPPED badge (index 0).
|
|
$this->assertSame(StatusBadge::stream(0), StatusBadge::stream(999));
|
|
}
|
|
|
|
public function testSearchUnknownIsEmpty(): void {
|
|
$this->assertStringContainsString('ENCODED', StatusBadge::search(9));
|
|
$this->assertSame('', StatusBadge::search(999));
|
|
}
|
|
|
|
public function testVod(): void {
|
|
$this->assertStringContainsString('Encoded', StatusBadge::vod(1));
|
|
$this->assertSame('', StatusBadge::vod(999));
|
|
}
|
|
|
|
public function testWatch(): void {
|
|
$this->assertStringContainsString('ADDED', StatusBadge::watch(1));
|
|
$this->assertSame('', StatusBadge::watch(999));
|
|
}
|
|
|
|
public function testFailure(): void {
|
|
$this->assertStringContainsString('STARTED', StatusBadge::failure('STREAM_START'));
|
|
$this->assertSame('', StatusBadge::failure('NOPE'));
|
|
}
|
|
|
|
public function testStreamLog(): void {
|
|
$this->assertSame('FFMPEG Error', StatusBadge::streamLog('FFMPEG_ERROR'));
|
|
$this->assertSame('', StatusBadge::streamLog('NOPE'));
|
|
}
|
|
}
|