summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@gmail.com>2021-05-04 09:23:18 +0100
committerGreg Roach <fisharebest@gmail.com>2021-05-04 09:23:18 +0100
commit00c45d2300a5375d4779bf9dbe157d4ef56b9443 (patch)
tree227fee1ab9ef7d96d85af0d46e6453214bd5326c /tests
parent56afe05fa72eb037740c3a05c02828a7ba30f9a9 (diff)
downloadwebtrees-00c45d2300a5375d4779bf9dbe157d4ef56b9443.tar.gz
webtrees-00c45d2300a5375d4779bf9dbe157d4ef56b9443.tar.bz2
webtrees-00c45d2300a5375d4779bf9dbe157d4ef56b9443.zip
Revert "Move PSR17 factories to the registry"
This reverts commit 56afe05fa72eb037740c3a05c02828a7ba30f9a9.
Diffstat (limited to 'tests')
-rw-r--r--tests/TestCase.php65
-rw-r--r--tests/app/Http/Middleware/CheckCsrfTest.php6
-rw-r--r--tests/app/WebtreesTest.php4
3 files changed, 62 insertions, 13 deletions
diff --git a/tests/TestCase.php b/tests/TestCase.php
index d7473b4daf..b2e4cfee0b 100644
--- a/tests/TestCase.php
+++ b/tests/TestCase.php
@@ -22,6 +22,22 @@ namespace Fisharebest\Webtrees;
use Aura\Router\Route;
use Aura\Router\RouterContainer;
use Fig\Http\Message\RequestMethodInterface;
+use Fisharebest\Webtrees\Factories\CacheFactory;
+use Fisharebest\Webtrees\Factories\FamilyFactory;
+use Fisharebest\Webtrees\Factories\FilesystemFactory;
+use Fisharebest\Webtrees\Factories\ElementFactory;
+use Fisharebest\Webtrees\Factories\GedcomRecordFactory;
+use Fisharebest\Webtrees\Factories\HeaderFactory;
+use Fisharebest\Webtrees\Factories\IndividualFactory;
+use Fisharebest\Webtrees\Factories\LocationFactory;
+use Fisharebest\Webtrees\Factories\MediaFactory;
+use Fisharebest\Webtrees\Factories\NoteFactory;
+use Fisharebest\Webtrees\Factories\RepositoryFactory;
+use Fisharebest\Webtrees\Factories\SlugFactory;
+use Fisharebest\Webtrees\Factories\SourceFactory;
+use Fisharebest\Webtrees\Factories\SubmissionFactory;
+use Fisharebest\Webtrees\Factories\SubmitterFactory;
+use Fisharebest\Webtrees\Factories\XrefFactory;
use Fisharebest\Webtrees\Http\RequestHandlers\GedcomLoad;
use Fisharebest\Webtrees\Http\Routes\WebRoutes;
use Fisharebest\Webtrees\Module\ModuleThemeInterface;
@@ -31,10 +47,14 @@ use Fisharebest\Webtrees\Services\ModuleService;
use Fisharebest\Webtrees\Services\TimeoutService;
use Fisharebest\Webtrees\Services\TreeService;
use Illuminate\Database\Capsule\Manager as DB;
+use Nyholm\Psr7\Factory\Psr17Factory;
+use Psr\Http\Message\ResponseFactoryInterface;
+use Psr\Http\Message\ServerRequestFactoryInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\StreamFactoryInterface;
use Psr\Http\Message\UploadedFileFactoryInterface;
use Psr\Http\Message\UploadedFileInterface;
+use Psr\Http\Message\UriFactoryInterface;
use function app;
use function basename;
@@ -61,8 +81,30 @@ class TestCase extends \PHPUnit\Framework\TestCase
{
parent::setUpBeforeClass();
- $webtrees = new Webtrees();
- $webtrees->registerFactories();
+ // Use nyholm as our PSR7 factory
+ app()->bind(ResponseFactoryInterface::class, Psr17Factory::class);
+ app()->bind(ServerRequestFactoryInterface::class, Psr17Factory::class);
+ app()->bind(StreamFactoryInterface::class, Psr17Factory::class);
+ app()->bind(UploadedFileFactoryInterface::class, Psr17Factory::class);
+ app()->bind(UriFactoryInterface::class, Psr17Factory::class);
+
+ // Register the factories
+ Registry::cache(new CacheFactory());
+ Registry::familyFactory(new FamilyFactory());
+ Registry::filesystem(new FilesystemFactory());
+ Registry::elementFactory(new ElementFactory());
+ Registry::gedcomRecordFactory(new GedcomRecordFactory());
+ Registry::headerFactory(new HeaderFactory());
+ Registry::individualFactory(new IndividualFactory());
+ Registry::locationFactory(new LocationFactory());
+ Registry::mediaFactory(new MediaFactory());
+ Registry::noteFactory(new NoteFactory());
+ Registry::repositoryFactory(new RepositoryFactory());
+ Registry::slugFactory(new SlugFactory());
+ Registry::sourceFactory(new SourceFactory());
+ Registry::submissionFactory(new SubmissionFactory());
+ Registry::submitterFactory(new SubmitterFactory());
+ Registry::xrefFactory(new XrefFactory());
app()->bind(ModuleThemeInterface::class, WebtreesTheme::class);
@@ -135,9 +177,13 @@ class TestCase extends \PHPUnit\Framework\TestCase
array $files = [],
array $attributes = []
): ServerRequestInterface {
+ /** @var ServerRequestFactoryInterface */
+ $server_request_factory = app(ServerRequestFactoryInterface::class);
+
$uri = 'https://webtrees.test/index.php?' . http_build_query($query);
- $request = Registry::serverRequestFactory()
+ /** @var ServerRequestInterface $request */
+ $request = $server_request_factory
->createServerRequest($method, $uri)
->withQueryParams($query)
->withParsedBody($params)
@@ -197,7 +243,7 @@ class TestCase extends \PHPUnit\Framework\TestCase
{
$tree_service = new TreeService();
$tree = $tree_service->create(basename($gedcom_file), basename($gedcom_file));
- $stream = Registry::streamFactory()->createStreamFromFile(__DIR__ . '/data/' . $gedcom_file);
+ $stream = app(StreamFactoryInterface::class)->createStreamFromFile(__DIR__ . '/data/' . $gedcom_file);
$tree_service->importGedcomFile($tree, $stream, $gedcom_file);
@@ -224,12 +270,17 @@ class TestCase extends \PHPUnit\Framework\TestCase
*/
protected function createUploadedFile(string $filename, string $mime_type): UploadedFileInterface
{
- $stream = Registry::streamFactory()->createStreamFromFile($filename);
+ /** @var StreamFactoryInterface */
+ $stream_factory = app(StreamFactoryInterface::class);
+
+ /** @var UploadedFileFactoryInterface */
+ $uploaded_file_factory = app(UploadedFileFactoryInterface::class);
+
+ $stream = $stream_factory->createStreamFromFile($filename);
$size = filesize($filename);
$status = UPLOAD_ERR_OK;
$client_name = basename($filename);
- return Registry::uploadedFileFactory()
- ->createUploadedFile($stream, $size, $status, $client_name, $mime_type);
+ return $uploaded_file_factory->createUploadedFile($stream, $size, $status, $client_name, $mime_type);
}
}
diff --git a/tests/app/Http/Middleware/CheckCsrfTest.php b/tests/app/Http/Middleware/CheckCsrfTest.php
index a149e9dcae..3c71e6d8b2 100644
--- a/tests/app/Http/Middleware/CheckCsrfTest.php
+++ b/tests/app/Http/Middleware/CheckCsrfTest.php
@@ -21,8 +21,8 @@ namespace Fisharebest\Webtrees\Http\Middleware;
use Fig\Http\Message\RequestMethodInterface;
use Fig\Http\Message\StatusCodeInterface;
-use Fisharebest\Webtrees\Registry;
use Fisharebest\Webtrees\TestCase;
+use Psr\Http\Message\UriFactoryInterface;
use Psr\Http\Server\RequestHandlerInterface;
use function app;
@@ -43,10 +43,8 @@ class CheckCsrfTest extends TestCase
$handler = self::createMock(RequestHandlerInterface::class);
$handler->method('handle')->willReturn(response());
- $uri = Registry::UriFactory()->createUri('http://example.com');
-
$request = self::createRequest(RequestMethodInterface::METHOD_POST)
- ->withUri($uri);
+ ->withUri(app(UriFactoryInterface::class)->createUri('http://example.com'));
$middleware = new CheckCsrf();
$response = $middleware->process($request, $handler);
diff --git a/tests/app/WebtreesTest.php b/tests/app/WebtreesTest.php
index b15af2d790..264ad76680 100644
--- a/tests/app/WebtreesTest.php
+++ b/tests/app/WebtreesTest.php
@@ -30,7 +30,7 @@ use function set_error_handler;
class WebtreesTest extends TestCase
{
/**
- * @covers \Fisharebest\Webtrees\Webtrees::registerErrorHandler
+ * @covers \Fisharebest\Webtrees\Webtrees::bootstrap
* @return void
*/
public function testInit(): void
@@ -39,7 +39,7 @@ class WebtreesTest extends TestCase
set_error_handler(null);
$webtrees = new Webtrees();
- $webtrees->registerErrorHandler();
+ $webtrees->bootstrap();
// webtrees sets the error reporting level.
self::assertNotSame(0, error_reporting());