| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- <?php
- declare(strict_types=1);
- namespace App\Services;
- use PHPUnit\Framework\TestCase;
- use App\Services\Config;
- class ConfigTest extends TestCase
- {
- /**
- * @covers App\Services\Config::getViewConfig
- */
- public function testGetPublicConfig(): void
- {
- $_ENV = [
- 'appName' => 'My App',
- 'baseUrl' => 'https://example.com',
- 'enable_checkin' => true,
- 'checkinMin' => 10,
- 'checkinMax' => 20,
- 'jump_delay' => 5,
- 'enable_kill' => true,
- 'enable_change_email' => false,
- 'enable_r2_client_download' => true,
- 'jsdelivr_url' => 'cdn.jsdelivr.net',
- ];
- $mockEnv = [
- 'appName' => 'My App',
- 'baseUrl' => 'https://example.com',
- 'enable_checkin' => true,
- 'checkinMin' => 10,
- 'checkinMax' => 20,
- 'jump_delay' => 5,
- 'enable_kill' => true,
- 'enable_change_email' => false,
- 'enable_r2_client_download' => true,
- 'jsdelivr_url' => 'cdn.jsdelivr.net',
- ];
- $config = Config::getViewConfig();
- $this->assertSame($mockEnv['appName'], $config['appName']);
- $this->assertSame($mockEnv['baseUrl'], $config['baseUrl']);
- $this->assertSame($mockEnv['enable_checkin'], $config['enable_checkin']);
- $this->assertSame($mockEnv['checkinMin'], $config['checkinMin']);
- $this->assertSame($mockEnv['checkinMax'], $config['checkinMax']);
- $this->assertSame($mockEnv['jump_delay'], $config['jump_delay']);
- $this->assertSame($mockEnv['enable_kill'], $config['enable_kill']);
- $this->assertSame($mockEnv['enable_change_email'], $config['enable_change_email']);
- $this->assertSame($mockEnv['enable_r2_client_download'], $config['enable_r2_client_download']);
- $this->assertSame($mockEnv['jsdelivr_url'], $config['jsdelivr_url']);
- }
- /**
- * @covers App\Services\Config::getRedisConfig
- */
- public function testGetRedisConfig(): void
- {
- $_ENV = [
- 'redis_host' => 'localhost',
- 'redis_port' => 6379,
- 'redis_timeout' => 10,
- 'redis_username' => 'myuser',
- 'redis_password' => 'mypassword',
- 'redis_ssl' => false,
- ];
- $mockEnv = [
- 'redis_host' => 'localhost',
- 'redis_port' => 6379,
- 'redis_timeout' => 10,
- 'redis_username' => 'myuser',
- 'redis_password' => 'mypassword',
- 'redis_ssl' => false,
- ];
- $config = Config::getRedisConfig();
- $this->assertSame($mockEnv['redis_host'], $config['host']);
- $this->assertSame($mockEnv['redis_port'], $config['port']);
- $this->assertSame($mockEnv['redis_timeout'], $config['connectTimeout']);
- $this->assertSame([$mockEnv['redis_username'], $mockEnv['redis_password']], $config['auth']);
- $this->assertSame(['verify_peer' => $mockEnv['redis_ssl']], $config['ssl']);
- }
- /**
- * @covers App\Services\Config::getDbConfig
- */
- public function testGetDbConfig(): void
- {
- $_ENV = [
- 'db_driver' => 'mysql',
- 'db_host' => 'localhost',
- 'db_socket' => '/var/run/mysqld/mysqld.sock',
- 'db_database' => 'mydb',
- 'db_username' => 'myuser',
- 'db_password' => 'mypassword',
- 'db_charset' => 'utf8mb4',
- 'db_collation' => 'utf8mb4_unicode_ci',
- 'db_prefix' => '',
- 'db_port' => 3306,
- ];
- $mockEnv = [
- 'db_driver' => 'mysql',
- 'db_host' => 'localhost',
- 'db_socket' => '/var/run/mysqld/mysqld.sock',
- 'db_database' => 'mydb',
- 'db_username' => 'myuser',
- 'db_password' => 'mypassword',
- 'db_charset' => 'utf8mb4',
- 'db_collation' => 'utf8mb4_unicode_ci',
- 'db_prefix' => '',
- 'db_port' => 3306,
- ];
- $config = Config::getDbConfig();
- $this->assertSame($mockEnv['db_driver'], $config['driver']);
- $this->assertSame($mockEnv['db_host'], $config['host']);
- $this->assertSame($mockEnv['db_socket'], $config['unix_socket']);
- $this->assertSame($mockEnv['db_database'], $config['database']);
- $this->assertSame($mockEnv['db_username'], $config['username']);
- $this->assertSame($mockEnv['db_password'], $config['password']);
- $this->assertSame($mockEnv['db_charset'], $config['charset']);
- $this->assertSame($mockEnv['db_collation'], $config['collation']);
- $this->assertSame($mockEnv['db_prefix'], $config['prefix']);
- $this->assertSame($mockEnv['db_port'], $config['port']);
- }
- /**
- * @covers App\Services\Config::getSsMethod
- */
- public function testGetSsMethod(): void
- {
- $params = Config::getSsMethod('ss_aead_method');
- $this->assertIsArray($params);
- $this->assertContains('aes-128-gcm', $params);
- $this->assertContains('aes-192-gcm', $params);
- $this->assertContains('aes-256-gcm', $params);
- $this->assertContains('chacha20-ietf-poly1305', $params);
- $this->assertContains('xchacha20-ietf-poly1305', $params);
- }
- }
|