fuc-new/tests/App/Services/ViewTest.php
hellcat 1fe8673f62 1
2025-10-01 13:34:29 +08:00

74 lines
2.1 KiB
PHP
Executable File

<?php
declare(strict_types=1);
namespace App\Services;
use PHPUnit\Framework\TestCase;
use App\Services\View;
use App\Models\User;
final class ViewTest extends TestCase
{
private View $view;
private User $user;
protected function setUp(): void
{
$this->view = new View();
$this->user = new User();
}
/**
* @covers App\Services\View::getTheme
*/
public function testGetTheme(): void
{
$this->user->isLogin = true;
$this->user->theme = 'tabler';
$theme = $this->view->getTheme($this->user);
$this->assertEquals('tabler', $theme);
$_ENV['theme'] = 'not-tabler';
$this->user->isLogin = false;
$theme = $this->view->getTheme($this->user);
$this->assertEquals('not-tabler', $theme);
}
/**
* @covers App\Services\View::getConfig
*/
public function testGetConfig(): void
{
$_ENV['appName'] = 'Test App';
$_ENV['baseUrl'] = 'http://localhost';
$_ENV['jump_delay'] = 3;
$_ENV['enable_kill'] = true;
$_ENV['enable_change_email'] = true;
$_ENV['enable_r2_client_download'] = true;
$_ENV['jsdelivr_url'] = 'https://cdn.jsdelivr.net';
$config = $this->view->getConfig();
$this->assertIsArray($config);
$this->assertArrayHasKey('appName', $config);
$this->assertArrayHasKey('baseUrl', $config);
$this->assertArrayHasKey('jump_delay', $config);
$this->assertArrayHasKey('enable_kill', $config);
$this->assertArrayHasKey('enable_change_email', $config);
$this->assertArrayHasKey('enable_r2_client_download', $config);
$this->assertArrayHasKey('jsdelivr_url', $config);
$this->assertEquals('Test App', $config['appName']);
$this->assertEquals('http://localhost', $config['baseUrl']);
$this->assertEquals(3, $config['jump_delay']);
$this->assertTrue($config['enable_kill']);
$this->assertTrue($config['enable_change_email']);
$this->assertTrue($config['enable_r2_client_download']);
$this->assertEquals('https://cdn.jsdelivr.net', $config['jsdelivr_url']);
}
}