diff options
| author | Greg Roach <greg@subaqua.co.uk> | 2025-01-06 11:17:28 +0000 |
|---|---|---|
| committer | Greg Roach <greg@subaqua.co.uk> | 2025-01-06 12:47:39 +0000 |
| commit | cba20eb871932d4301cf65b62972e9fad19015ac (patch) | |
| tree | cd01401993662b123d9c58cfb865f03a6e1b001e /tests | |
| parent | 24cb7547cb882ddc3e5b99cdff164831ef80290c (diff) | |
| download | webtrees-cba20eb871932d4301cf65b62972e9fad19015ac.tar.gz webtrees-cba20eb871932d4301cf65b62972e9fad19015ac.tar.bz2 webtrees-cba20eb871932d4301cf65b62972e9fad19015ac.zip | |
Add PhpService so we can mock/test calles to ini_get(), etc.
Diffstat (limited to 'tests')
9 files changed, 53 insertions, 74 deletions
diff --git a/tests/TestCase.php b/tests/TestCase.php index 1998009147..d81d1ac604 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -30,6 +30,7 @@ use Fisharebest\Webtrees\Module\WebtreesTheme; use Fisharebest\Webtrees\Services\GedcomImportService; use Fisharebest\Webtrees\Services\MigrationService; use Fisharebest\Webtrees\Services\ModuleService; +use Fisharebest\Webtrees\Services\PhpService; use Fisharebest\Webtrees\Services\TimeoutService; use Fisharebest\Webtrees\Services\TreeService; use PHPUnit\Framework\Constraint\Callback; @@ -56,8 +57,6 @@ use const UPLOAD_ERR_OK; class TestCase extends \PHPUnit\Framework\TestCase { - public static ?object $mock_functions = null; - protected static bool $uses_database = false; /** @@ -189,7 +188,7 @@ class TestCase extends \PHPUnit\Framework\TestCase $tree_service->importGedcomFile($tree, $stream, $gedcom_file, ''); - $timeout_service = new TimeoutService(); + $timeout_service = new TimeoutService(php_service: new PhpService()); $controller = new GedcomLoad($gedcom_import_service, $timeout_service); $request = self::createRequest()->withAttribute('tree', $tree); diff --git a/tests/app/Http/Middleware/HandleExceptionsTest.php b/tests/app/Http/Middleware/HandleExceptionsTest.php index 74c2ce65f7..1e4c775413 100644 --- a/tests/app/Http/Middleware/HandleExceptionsTest.php +++ b/tests/app/Http/Middleware/HandleExceptionsTest.php @@ -23,6 +23,7 @@ use Fig\Http\Message\StatusCodeInterface; use Fisharebest\Webtrees\Http\Exceptions\HttpServerErrorException; use Fisharebest\Webtrees\Registry; use Fisharebest\Webtrees\Services\ModuleService; +use Fisharebest\Webtrees\Services\PhpService; use Fisharebest\Webtrees\Services\TreeService; use Fisharebest\Webtrees\Services\UserService; use Fisharebest\Webtrees\TestCase; @@ -48,7 +49,7 @@ class HandleExceptionsTest extends TestCase Registry::container()->set(ModuleService::class, $module_service); $request = self::createRequest(); - $middleware = new HandleExceptions($tree_service); + $middleware = new HandleExceptions(php_service: new PhpService(), tree_service: $tree_service); $response = $middleware->process($request, $handler); self::assertSame(StatusCodeInterface::STATUS_INTERNAL_SERVER_ERROR, $response->getStatusCode()); diff --git a/tests/app/Http/RequestHandlers/ControlPanelControllerTest.php b/tests/app/Http/RequestHandlers/ControlPanelControllerTest.php index 1fa2386667..27fb5a5d42 100644 --- a/tests/app/Http/RequestHandlers/ControlPanelControllerTest.php +++ b/tests/app/Http/RequestHandlers/ControlPanelControllerTest.php @@ -26,6 +26,7 @@ use Fisharebest\Webtrees\Services\GedcomImportService; use Fisharebest\Webtrees\Services\HousekeepingService; use Fisharebest\Webtrees\Services\MessageService; use Fisharebest\Webtrees\Services\ModuleService; +use Fisharebest\Webtrees\Services\PhpService; use Fisharebest\Webtrees\Services\ServerCheckService; use Fisharebest\Webtrees\Services\TimeoutService; use Fisharebest\Webtrees\Services\TreeService; @@ -42,18 +43,27 @@ class ControlPanelControllerTest extends TestCase public function testControlPanel(): void { $admin_service = new AdminService(); - $message_service = new MessageService(new EmailService(), new UserService()); + $message_service = new MessageService(email_service: new EmailService(), user_service: new UserService()); $module_service = new ModuleService(); $housekeeping_service = new HousekeepingService(); - $server_check_service = new ServerCheckService(); - $timeout_service = new TimeoutService(); + $server_check_service = new ServerCheckService(php_service: new PhpService()); + $timeout_service = new TimeoutService(php_service: new PhpService()); $gedcom_import_service = new GedcomImportService(); - $tree_service = new TreeService($gedcom_import_service); - $upgrade_service = new UpgradeService($timeout_service); + $tree_service = new TreeService(gedcom_import_service: $gedcom_import_service); + $upgrade_service = new UpgradeService(timeout_service: $timeout_service); $user_service = new UserService(); - $handler = new ControlPanel($admin_service, $housekeeping_service, $message_service, $module_service, $server_check_service, $tree_service, $upgrade_service, $user_service); + $handler = new ControlPanel( + admin_service: $admin_service, + housekeeping_service: $housekeeping_service, + message_service: $message_service, + module_service: $module_service, + server_check_service: $server_check_service, + tree_service: $tree_service, + upgrade_service: $upgrade_service, + user_service: $user_service, + ); $request = self::createRequest(); - $response = $handler->handle($request); + $response = $handler->handle(request: $request); self::assertSame(StatusCodeInterface::STATUS_OK, $response->getStatusCode()); } diff --git a/tests/app/Http/RequestHandlers/ManageMediaPageTest.php b/tests/app/Http/RequestHandlers/ManageMediaPageTest.php index 4349fa449b..c33a7579ad 100644 --- a/tests/app/Http/RequestHandlers/ManageMediaPageTest.php +++ b/tests/app/Http/RequestHandlers/ManageMediaPageTest.php @@ -21,6 +21,7 @@ namespace Fisharebest\Webtrees\Http\RequestHandlers; use Fig\Http\Message\StatusCodeInterface; use Fisharebest\Webtrees\Services\MediaFileService; +use Fisharebest\Webtrees\Services\PhpService; use Fisharebest\Webtrees\TestCase; use PHPUnit\Framework\Attributes\CoversClass; @@ -31,8 +32,8 @@ class ManageMediaPageTest extends TestCase public function testIndex(): void { - $media_file_service = new MediaFileService(); - $handler = new ManageMediaPage($media_file_service); + $media_file_service = new MediaFileService(php_service: new PhpService()); + $handler = new ManageMediaPage(media_file_service: $media_file_service); $request = self::createRequest(); $response = $handler->handle($request); diff --git a/tests/app/Http/RequestHandlers/UpgradeWizardPageTest.php b/tests/app/Http/RequestHandlers/UpgradeWizardPageTest.php index e27717d9bb..d8702a7910 100644 --- a/tests/app/Http/RequestHandlers/UpgradeWizardPageTest.php +++ b/tests/app/Http/RequestHandlers/UpgradeWizardPageTest.php @@ -21,6 +21,7 @@ namespace Fisharebest\Webtrees\Http\RequestHandlers; use Fig\Http\Message\StatusCodeInterface; use Fisharebest\Webtrees\Services\GedcomImportService; +use Fisharebest\Webtrees\Services\PhpService; use Fisharebest\Webtrees\Services\TimeoutService; use Fisharebest\Webtrees\Services\TreeService; use Fisharebest\Webtrees\Services\UpgradeService; @@ -34,7 +35,7 @@ class UpgradeWizardPageTest extends TestCase public function testWizard(): void { - $timeout_service = new TimeoutService(); + $timeout_service = new TimeoutService(php_service: new PhpService()); $gedcom_import_service = new GedcomImportService(); $tree_service = new TreeService($gedcom_import_service); $upgrade_service = new UpgradeService($timeout_service); diff --git a/tests/app/Http/RequestHandlers/UpgradeWizardStepTest.php b/tests/app/Http/RequestHandlers/UpgradeWizardStepTest.php index 3665c91d32..2609e343b4 100644 --- a/tests/app/Http/RequestHandlers/UpgradeWizardStepTest.php +++ b/tests/app/Http/RequestHandlers/UpgradeWizardStepTest.php @@ -26,6 +26,7 @@ use Fisharebest\Webtrees\Auth; use Fisharebest\Webtrees\Http\Exceptions\HttpServerErrorException; use Fisharebest\Webtrees\Services\GedcomExportService; use Fisharebest\Webtrees\Services\GedcomImportService; +use Fisharebest\Webtrees\Services\PhpService; use Fisharebest\Webtrees\Services\TimeoutService; use Fisharebest\Webtrees\Services\TreeService; use Fisharebest\Webtrees\Services\UpgradeService; @@ -45,7 +46,7 @@ class UpgradeWizardStepTest extends TestCase $handler = new UpgradeWizardStep( new GedcomExportService(new Psr17Factory(), new Psr17Factory()), new TreeService(new GedcomImportService()), - new UpgradeService(new TimeoutService()) + new UpgradeService(new TimeoutService(php_service: new PhpService())) ); $request = self::createRequest(RequestMethodInterface::METHOD_POST, ['step' => 'Invalid']); @@ -108,7 +109,7 @@ class UpgradeWizardStepTest extends TestCase $handler = new UpgradeWizardStep( new GedcomExportService(new Psr17Factory(), new Psr17Factory()), new TreeService(new GedcomImportService()), - new UpgradeService(new TimeoutService()) + new UpgradeService(new TimeoutService(php_service: new PhpService())) ); $request = self::createRequest(RequestMethodInterface::METHOD_POST, ['step' => 'Prepare']); @@ -122,7 +123,7 @@ class UpgradeWizardStepTest extends TestCase $handler = new UpgradeWizardStep( new GedcomExportService(new Psr17Factory(), new Psr17Factory()), new TreeService(new GedcomImportService()), - new UpgradeService(new TimeoutService()) + new UpgradeService(new TimeoutService(php_service: new PhpService())) ); $request = self::createRequest(RequestMethodInterface::METHOD_POST, ['step' => 'Pending']); @@ -143,7 +144,7 @@ class UpgradeWizardStepTest extends TestCase $handler = new UpgradeWizardStep( new GedcomExportService(new Psr17Factory(), new Psr17Factory()), new TreeService(new GedcomImportService()), - new UpgradeService(new TimeoutService()) + new UpgradeService(new TimeoutService(php_service: new PhpService())) ); $request = self::createRequest(RequestMethodInterface::METHOD_POST, ['step' => 'Pending']); @@ -162,7 +163,7 @@ class UpgradeWizardStepTest extends TestCase $handler = new UpgradeWizardStep( new GedcomExportService(new Psr17Factory(), new Psr17Factory()), $tree_service, - new UpgradeService(new TimeoutService()) + new UpgradeService(new TimeoutService(php_service: new PhpService())) ); $request = self::createRequest()->withQueryParams(['step' => 'Export', 'tree' => $tree->name()]); diff --git a/tests/app/Http/RequestHandlers/UploadMediaActionTest.php b/tests/app/Http/RequestHandlers/UploadMediaActionTest.php index 9da8dae440..ea4af30f73 100644 --- a/tests/app/Http/RequestHandlers/UploadMediaActionTest.php +++ b/tests/app/Http/RequestHandlers/UploadMediaActionTest.php @@ -21,6 +21,7 @@ namespace Fisharebest\Webtrees\Http\RequestHandlers; use Fig\Http\Message\StatusCodeInterface; use Fisharebest\Webtrees\Services\MediaFileService; +use Fisharebest\Webtrees\Services\PhpService; use Fisharebest\Webtrees\TestCase; use PHPUnit\Framework\Attributes\CoversClass; @@ -31,8 +32,8 @@ class UploadMediaActionTest extends TestCase public function testResponseIsOK(): void { - $media_file_service = new MediaFileService(); - $handler = new UploadMediaAction($media_file_service); + $media_file_service = new MediaFileService(php_service: new PhpService()); + $handler = new UploadMediaAction(media_file_service: $media_file_service); $request = self::createRequest(); $response = $handler->handle($request); diff --git a/tests/app/Http/RequestHandlers/UploadMediaPageTest.php b/tests/app/Http/RequestHandlers/UploadMediaPageTest.php index 94f0400854..4f906f11f8 100644 --- a/tests/app/Http/RequestHandlers/UploadMediaPageTest.php +++ b/tests/app/Http/RequestHandlers/UploadMediaPageTest.php @@ -21,6 +21,7 @@ namespace Fisharebest\Webtrees\Http\RequestHandlers; use Fig\Http\Message\StatusCodeInterface; use Fisharebest\Webtrees\Services\MediaFileService; +use Fisharebest\Webtrees\Services\PhpService; use Fisharebest\Webtrees\TestCase; use PHPUnit\Framework\Attributes\CoversClass; @@ -31,8 +32,9 @@ class UploadMediaPageTest extends TestCase public function testResponseIsOK(): void { - $media_file_service = new MediaFileService(); - $handler = new UploadMediaPage($media_file_service); + $php_service = new PhpService(); + $media_file_service = new MediaFileService(php_service: $php_service); + $handler = new UploadMediaPage(media_file_service: $media_file_service, php_service: $php_service); $request = self::createRequest(); $response = $handler->handle($request); diff --git a/tests/app/Services/TimeoutServiceTest.php b/tests/app/Services/TimeoutServiceTest.php index 16c5a4034f..05bb014c9b 100644 --- a/tests/app/Services/TimeoutServiceTest.php +++ b/tests/app/Services/TimeoutServiceTest.php @@ -20,68 +20,33 @@ declare(strict_types=1); namespace Fisharebest\Webtrees\Services; use Fisharebest\Webtrees\Contracts\TimeFactoryInterface; -use Fisharebest\Webtrees\MockGlobalFunctions; use Fisharebest\Webtrees\Registry; use Fisharebest\Webtrees\TestCase; use PHPUnit\Framework\Attributes\CoversClass; -/** - * Mock function. - * - * @param mixed ...$args - * - * @return mixed - */ -function ini_get(...$args) -{ - if (TestCase::$mock_functions === null) { - return \ini_get(...$args); - } - - return TestCase::$mock_functions->iniGet(...$args); -} - #[CoversClass(TimeoutService::class)] class TimeoutServiceTest extends TestCase { - protected function setUp(): void - { - parent::setUp(); - - self::$mock_functions = $this->createMock(MockGlobalFunctions::class); - } - - protected function tearDown(): void - { - parent::setUp(); - - self::$mock_functions = null; - } - public function testNoTimeOut(): void { - $now = 1500000000.0; + $php_service = $this->createMock(PhpService::class); + $php_service->method('maxExecutionTime')->willReturn(0); - $timeout_service = new TimeoutService($now); + $now = 1500000000.0; - self::$mock_functions - ->method('iniGet') - ->with('max_execution_time') - ->willReturn('0'); + $timeout_service = new TimeoutService(php_service: $php_service, start_time: $now); self::assertFalse($timeout_service->isTimeNearlyUp()); } public function testTimeOutReached(): void { - $now = 1500000000.0; + $php_service = $this->createMock(PhpService::class); + $php_service->method('maxExecutionTime')->willReturn(30); - $timeout_service = new TimeoutService($now); + $now = 1500000000.0; - self::$mock_functions - ->method('iniGet') - ->with('max_execution_time') - ->willReturn('30'); + $timeout_service = new TimeoutService(php_service: $php_service, start_time: $now); $time_factory = $this->createMock(TimeFactoryInterface::class); $time_factory->method('now')->willReturn($now + 60.0); @@ -92,14 +57,12 @@ class TimeoutServiceTest extends TestCase public function testTimeOutNotReached(): void { - $now = Registry::timeFactory()->now(); + $php_service = $this->createMock(PhpService::class); + $php_service->method('maxExecutionTime')->willReturn(30); - $timeout_service = new TimeoutService($now); + $now = Registry::timeFactory()->now(); - self::$mock_functions - ->method('iniGet') - ->with('max_execution_time') - ->willReturn('30'); + $timeout_service = new TimeoutService(php_service: $php_service, start_time: $now); $time_factory = $this->createMock(TimeFactoryInterface::class); $time_factory->method('now')->willReturn($now + 10.0); @@ -112,7 +75,7 @@ class TimeoutServiceTest extends TestCase { $now = Registry::timeFactory()->now(); - $timeout_service = new TimeoutService($now); + $timeout_service = new TimeoutService(php_service: new PhpService(), start_time: $now); $time_factory = $this->createMock(TimeFactoryInterface::class); $time_factory->method('now')->willReturn($now + 1.4); @@ -125,7 +88,7 @@ class TimeoutServiceTest extends TestCase { $now = Registry::timeFactory()->now(); - $timeout_service = new TimeoutService($now); + $timeout_service = new TimeoutService(php_service: new PhpService(), start_time: $now); $time_factory = $this->createMock(TimeFactoryInterface::class); $time_factory->method('now')->willReturn($now + 1.6); |
