summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGreg Roach <greg@subaqua.co.uk>2025-01-06 11:17:28 +0000
committerGreg Roach <greg@subaqua.co.uk>2025-01-06 12:47:39 +0000
commitcba20eb871932d4301cf65b62972e9fad19015ac (patch)
treecd01401993662b123d9c58cfb865f03a6e1b001e /tests
parent24cb7547cb882ddc3e5b99cdff164831ef80290c (diff)
downloadwebtrees-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')
-rw-r--r--tests/TestCase.php5
-rw-r--r--tests/app/Http/Middleware/HandleExceptionsTest.php3
-rw-r--r--tests/app/Http/RequestHandlers/ControlPanelControllerTest.php24
-rw-r--r--tests/app/Http/RequestHandlers/ManageMediaPageTest.php5
-rw-r--r--tests/app/Http/RequestHandlers/UpgradeWizardPageTest.php3
-rw-r--r--tests/app/Http/RequestHandlers/UpgradeWizardStepTest.php11
-rw-r--r--tests/app/Http/RequestHandlers/UploadMediaActionTest.php5
-rw-r--r--tests/app/Http/RequestHandlers/UploadMediaPageTest.php6
-rw-r--r--tests/app/Services/TimeoutServiceTest.php65
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);