summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2019-04-02 12:49:16 +0100
committerGreg Roach <fisharebest@webtrees.net>2019-04-10 10:46:01 +0100
commit6ccdf4f0fd1b65a5d54259c969912382ce49629d (patch)
tree05b5413ec6c06cec5ba59c24fd73dd2034ff1b74 /tests
parente2e7f6bfc3bed346c21ad436fd1055ed03e163c3 (diff)
downloadwebtrees-6ccdf4f0fd1b65a5d54259c969912382ce49629d.tar.gz
webtrees-6ccdf4f0fd1b65a5d54259c969912382ce49629d.tar.bz2
webtrees-6ccdf4f0fd1b65a5d54259c969912382ce49629d.zip
Convert requests, middleware and reponses to use PSR-7, PSR-15 and PSR-17
Diffstat (limited to 'tests')
-rw-r--r--tests/TestCase.php176
-rw-r--r--tests/app/Http/Controllers/Admin/ChangesLogControllerTest.php26
-rw-r--r--tests/app/Http/Controllers/Admin/ControlPanelControllerTest.php17
-rw-r--r--tests/app/Http/Controllers/Admin/FixLevel0MediaControllerTest.php26
-rw-r--r--tests/app/Http/Controllers/Admin/ImportThumbnailsControllerTest.php31
-rw-r--r--tests/app/Http/Controllers/Admin/LocationControllerTest.php83
-rw-r--r--tests/app/Http/Controllers/Admin/MapProviderControllerTest.php19
-rw-r--r--tests/app/Http/Controllers/Admin/MediaControllerTest.php82
-rw-r--r--tests/app/Http/Controllers/Admin/ModuleControllerTest.php180
-rw-r--r--tests/app/Http/Controllers/Admin/UpgradeControllerTest.php94
-rw-r--r--tests/app/Http/Controllers/Admin/UsersControllerTest.php66
-rw-r--r--tests/app/Http/Controllers/CalendarControllerTest.php31
-rw-r--r--tests/app/Http/Controllers/ModuleControllerTest.php5
-rw-r--r--tests/feature/IndividualListTest.php26
-rw-r--r--tests/feature/UserAdminTest.php104
15 files changed, 611 insertions, 355 deletions
diff --git a/tests/TestCase.php b/tests/TestCase.php
index 5f90eb81bd..b110d08882 100644
--- a/tests/TestCase.php
+++ b/tests/TestCase.php
@@ -17,13 +17,14 @@ declare(strict_types=1);
namespace Fisharebest\Webtrees;
+use Fig\Http\Message\StatusCodeInterface;
use Fisharebest\Localization\Locale\LocaleEnUs;
use Fisharebest\Localization\Locale\LocaleInterface;
use Fisharebest\Webtrees\Contracts\UserInterface;
use Fisharebest\Webtrees\Http\Controllers\GedcomFileController;
+use Fisharebest\Webtrees\Http\Request;
use Fisharebest\Webtrees\Module\ModuleThemeInterface;
use Fisharebest\Webtrees\Module\WebtreesTheme;
-use Fisharebest\Webtrees\Schema\SeedDatabase;
use Fisharebest\Webtrees\Services\MigrationService;
use Fisharebest\Webtrees\Services\TimeoutService;
use Fisharebest\Webtrees\Services\UserService;
@@ -32,13 +33,28 @@ use Illuminate\Cache\Repository;
use Illuminate\Database\Capsule\Manager as DB;
use League\Flysystem\Filesystem;
use League\Flysystem\Memory\MemoryAdapter;
-use Symfony\Component\HttpFoundation\Request;
+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;
+use function define;
+use function defined;
+use function dirname;
+use function filesize;
+use function http_build_query;
+use function rawurlencode;
+use const UPLOAD_ERR_OK;
/**
* Base class for unit tests
*/
-class TestCase extends \PHPUnit\Framework\TestCase
+class TestCase extends \PHPUnit\Framework\TestCase implements StatusCodeInterface
{
protected static $uses_database = false;
@@ -49,6 +65,34 @@ class TestCase extends \PHPUnit\Framework\TestCase
{
parent::setUpBeforeClass();
+ // 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);
+
+ // Use an array cache for database calls, etc.
+ app()->instance('cache.array', new Repository(new ArrayStore()));
+
+ app()->bind(Tree::class, static function () {
+ return null;
+ });
+
+ app()->instance(UserService::class, new UserService());
+ app()->instance(UserInterface::class, new GuestUser());
+
+ app()->instance(ServerRequestInterface::class, Request::create('http://localhost/index.php'));
+ app()->instance(Filesystem::class, new Filesystem(new MemoryAdapter()));
+
+ app()->bind(ModuleThemeInterface::class, WebtreesTheme::class);
+ app()->bind(LocaleInterface::class, LocaleEnUs::class);
+
+ defined('WT_ROOT') || define('WT_ROOT', dirname(__DIR__) . '/');
+ defined('WT_BASE_URL') || define('WT_BASE_URL', 'http://localhost/');
+ defined('WT_DATA_DIR') || define('WT_DATA_DIR', WT_ROOT . 'data/');
+ defined('WT_LOCALE') || define('WT_LOCALE', I18N::init('en-US', null, true));
+
if (static::$uses_database) {
defined('WT_ROOT') || define('WT_ROOT', dirname(__DIR__) . '/');
@@ -57,6 +101,30 @@ class TestCase extends \PHPUnit\Framework\TestCase
}
/**
+ * Create an SQLite in-memory database for testing
+ */
+ protected static function createTestDatabase(): void
+ {
+ $capsule = new DB();
+ $capsule->addConnection([
+ 'driver' => 'sqlite',
+ 'database' => ':memory:',
+ ]);
+ $capsule->setAsGlobal();
+ Database::registerMacros();
+
+ // Migrations create logs, which requires an IP address, which requires a request
+ self::createRequest();
+
+ // Create tables
+ $migration_service = new MigrationService;
+ $migration_service->updateSchema('\Fisharebest\Webtrees\Schema', 'WT_SCHEMA_VERSION', Webtrees::SCHEMA_VERSION);
+
+ // Create config data
+ $migration_service->seedDatabase();
+ }
+
+ /**
* Things to run once, AFTER all the tests.
*/
public static function tearDownAfterClass()
@@ -76,27 +144,6 @@ class TestCase extends \PHPUnit\Framework\TestCase
{
parent::setUp();
- // Use an array cache for database calls, etc.
- app()->instance('cache.array', new Repository(new ArrayStore()));
-
- app()->bind(Tree::class, static function () {
- return null;
- });
-
- app()->instance(UserService::class, new UserService());
- app()->instance(UserInterface::class, new GuestUser());
-
- app()->instance(Request::class, Request::createFromGlobals());
- app()->instance(Filesystem::class, new Filesystem(new MemoryAdapter()));
-
- app()->bind(ModuleThemeInterface::class, WebtreesTheme::class);
- app()->bind(LocaleInterface::class, LocaleEnUs::class);
-
- defined('WT_ROOT') || define('WT_ROOT', dirname(__DIR__) . '/');
- defined('WT_BASE_URL') || define('WT_BASE_URL', 'http://localhost/');
- defined('WT_DATA_DIR') || define('WT_DATA_DIR', WT_ROOT . 'data/');
- defined('WT_LOCALE') || define('WT_LOCALE', I18N::init('en-US', null, true));
-
if (static::$uses_database) {
DB::connection()->beginTransaction();
}
@@ -122,27 +169,6 @@ class TestCase extends \PHPUnit\Framework\TestCase
}
/**
- * Create an SQLite in-memory database for testing
- */
- protected static function createTestDatabase(): void
- {
- $capsule = new DB();
- $capsule->addConnection([
- 'driver' => 'sqlite',
- 'database' => ':memory:',
- ]);
- $capsule->setAsGlobal();
- Database::registerMacros();
-
- // Create tables
- $migration_service = new MigrationService;
- $migration_service->updateSchema('\Fisharebest\Webtrees\Schema', 'WT_SCHEMA_VERSION', Webtrees::SCHEMA_VERSION);
-
- // Create config data
- $migration_service->seedDatabase();
- }
-
- /**
* Import a GEDCOM file into the test database.
*
* @param string $gedcom_file
@@ -152,7 +178,9 @@ class TestCase extends \PHPUnit\Framework\TestCase
protected function importTree(string $gedcom_file): Tree
{
$tree = Tree::create(basename($gedcom_file), basename($gedcom_file));
- $tree->importGedcomFile(__DIR__ . '/data/' . $gedcom_file, $gedcom_file);
+
+ $stream = app(StreamFactoryInterface::class)->createStreamFromFile(__DIR__ . '/data/' . $gedcom_file);
+ $tree->importGedcomFile($stream, $gedcom_file);
View::share('tree', $tree);
$gedcom_file_controller = new GedcomFileController();
@@ -165,4 +193,60 @@ class TestCase extends \PHPUnit\Framework\TestCase
return $tree;
}
+
+ /**
+ * Create a request and bind it into the container.
+ *
+ * @param string $method
+ * @param string[] $query
+ * @param string[] $params
+ * @param UploadedFileInterface[] $files
+ *
+ * @return ServerRequestInterface
+ */
+ protected static function createRequest(string $method = 'GET', array $query = [], array $params = [], array $files = []): ServerRequestInterface
+ {
+ /** @var ServerRequestFactoryInterface */
+ $server_request_factory = app(ServerRequestFactoryInterface::class);
+
+ $uri = 'http://localhost/index.php?' . http_build_query($query);
+
+ /** @var ServerRequestInterface $request */
+ $request = $server_request_factory
+ ->createServerRequest($method, $uri)
+ ->withQueryParams($query)
+ ->withParsedBody($params)
+ ->withUploadedFiles($files);
+
+ app()->instance(ServerRequestInterface::class, $request);
+
+ return $request;
+ }
+
+ /**
+ * Create an uploaded file for a request.
+ *
+ * @param string $filename
+ * @param string $mime_type
+ *
+ * @return UploadedFileInterface
+ */
+ protected function createUploadedFile(string $filename, string $mime_type): UploadedFileInterface
+ {
+ /** @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 $uploaded_file_factory->createUploadedFile($stream, $size, $status, $client_name, $mime_type);
+ }
}
diff --git a/tests/app/Http/Controllers/Admin/ChangesLogControllerTest.php b/tests/app/Http/Controllers/Admin/ChangesLogControllerTest.php
index 217ab4e1a1..6ebcf839da 100644
--- a/tests/app/Http/Controllers/Admin/ChangesLogControllerTest.php
+++ b/tests/app/Http/Controllers/Admin/ChangesLogControllerTest.php
@@ -21,16 +21,16 @@ use Fisharebest\Algorithm\MyersDiff;
use Fisharebest\Webtrees\Auth;
use Fisharebest\Webtrees\Services\DatatablesService;
use Fisharebest\Webtrees\Services\UserService;
+use Fisharebest\Webtrees\TestCase;
use Fisharebest\Webtrees\Tree;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
+use Fisharebest\Webtrees\Http\Request;
/**
* Test the changes log controller
*
* @covers \Fisharebest\Webtrees\Http\Controllers\Admin\ChangesLogController
*/
-class ChangesLogControllerTest extends \Fisharebest\Webtrees\TestCase
+class ChangesLogControllerTest extends TestCase
{
protected static $uses_database = true;
@@ -39,10 +39,11 @@ class ChangesLogControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testChangeLog(): void
{
- $controller = new ChangesLogController();
- $response = $controller->changesLog(new Request(), new UserService());
+ $request = self::createRequest('GET', ['route' => 'admin-changes-log']);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $controller = new ChangesLogController();
+ $response = $controller->changesLog($request, new UserService());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -55,7 +56,8 @@ class ChangesLogControllerTest extends \Fisharebest\Webtrees\TestCase
Auth::login($user);
$individual = $tree->createIndividual("0 @@ INDI\n1 NAME Joe Bloggs");
- $request = new Request([
+ $request = self::createRequest('GET', [
+ 'route' => 'admin-changes-log-data',
'search' => 'Joe',
'from' => '2000-01-01',
'to' => '2099-12-31',
@@ -67,7 +69,7 @@ class ChangesLogControllerTest extends \Fisharebest\Webtrees\TestCase
$controller = new ChangesLogController();
$response = $controller->changesLogData($request, new DatatablesService(), new MyersDiff());
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -80,9 +82,13 @@ class ChangesLogControllerTest extends \Fisharebest\Webtrees\TestCase
Auth::login($user);
$tree->createIndividual("0 @@ INDI\n1 NAME Joe Bloggs");
+ $request = self::createRequest('GET', [
+ 'route' => 'admin-changes-log-download',
+ 'ged' => $tree->name(),
+ ]);
$controller = new ChangesLogController();
- $response = $controller->changesLogDownload(new Request());
+ $response = $controller->changesLogDownload($request);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
}
diff --git a/tests/app/Http/Controllers/Admin/ControlPanelControllerTest.php b/tests/app/Http/Controllers/Admin/ControlPanelControllerTest.php
index 55fb6bcbec..0c31fc1f10 100644
--- a/tests/app/Http/Controllers/Admin/ControlPanelControllerTest.php
+++ b/tests/app/Http/Controllers/Admin/ControlPanelControllerTest.php
@@ -23,14 +23,14 @@ use Fisharebest\Webtrees\Services\ServerCheckService;
use Fisharebest\Webtrees\Services\TimeoutService;
use Fisharebest\Webtrees\Services\UpgradeService;
use Fisharebest\Webtrees\Services\UserService;
-use Symfony\Component\HttpFoundation\Response;
+use Fisharebest\Webtrees\TestCase;
/**
* Test the control panel controller
*
* @covers \Fisharebest\Webtrees\Http\Controllers\Admin\ControlPanelController
*/
-class ControlPanelControllerTest extends \Fisharebest\Webtrees\TestCase
+class ControlPanelControllerTest extends TestCase
{
protected static $uses_database = true;
@@ -40,7 +40,8 @@ class ControlPanelControllerTest extends \Fisharebest\Webtrees\TestCase
public function testControlPanel(): void
{
$controller = new ControlPanelController();
- $response = $controller->controlPanel(
+ self::createRequest('GET', ['route' => 'control-panel']);
+ $response = $controller->controlPanel(
new HousekeepingService(),
new UpgradeService(new TimeoutService(microtime(true))),
new ModuleService(),
@@ -48,7 +49,7 @@ class ControlPanelControllerTest extends \Fisharebest\Webtrees\TestCase
new UserService()
);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -56,10 +57,10 @@ class ControlPanelControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testControlPanelManager(): void
{
- $controller = new ControlPanelController();
- $module_service = new ModuleService();
- $response = $controller->controlPanelManager($module_service);
+ $controller = new ControlPanelController();
+ self::createRequest('GET', ['route' => 'control-panel']);
+ $response = $controller->controlPanelManager(new ModuleService());
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
}
diff --git a/tests/app/Http/Controllers/Admin/FixLevel0MediaControllerTest.php b/tests/app/Http/Controllers/Admin/FixLevel0MediaControllerTest.php
index 27bff403ff..496122873e 100644
--- a/tests/app/Http/Controllers/Admin/FixLevel0MediaControllerTest.php
+++ b/tests/app/Http/Controllers/Admin/FixLevel0MediaControllerTest.php
@@ -18,16 +18,15 @@ declare(strict_types=1);
namespace Fisharebest\Webtrees\Http\Controllers\Admin;
use Fisharebest\Webtrees\Services\DatatablesService;
+use Fisharebest\Webtrees\TestCase;
use Fisharebest\Webtrees\Tree;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
/**
* Test FixLevel0MediaControllerTest class.
*
* @covers \Fisharebest\Webtrees\Http\Controllers\Admin\FixLevel0MediaController
*/
-class FixLevel0MediaControllerTest extends \Fisharebest\Webtrees\TestCase
+class FixLevel0MediaControllerTest extends TestCase
{
protected static $uses_database = true;
@@ -37,9 +36,10 @@ class FixLevel0MediaControllerTest extends \Fisharebest\Webtrees\TestCase
public function testFixLevel0Media(): void
{
$controller = new FixLevel0MediaController();
- $response = $controller->fixLevel0Media();
+ self::createRequest('GET', ['route' => 'admin-fix-level-0-media']);
+ $response = $controller->fixLevel0Media();
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -47,13 +47,17 @@ class FixLevel0MediaControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testFixLevel0MediaAction(): void
{
- $tree = Tree::create('name', 'title');
- $request = new Request(['tree_id' => $tree->id()]);
-
+ $tree = Tree::create('name', 'title');
+ $request = self::createRequest('POST', ['route' => 'admin-fix-level-0-media'], [
+ 'tree_id' => $tree->id(),
+ 'fact_id' => '',
+ 'indi_xref' => '',
+ 'obje_xref' => '',
+ ]);
$controller = new FixLevel0MediaController();
$response = $controller->fixLevel0MediaAction($request);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -63,10 +67,10 @@ class FixLevel0MediaControllerTest extends \Fisharebest\Webtrees\TestCase
{
$datatables_service = new DatatablesService();
$tree = Tree::create('name', 'title');
- $request = new Request(['tree_id' => $tree->id()]);
$controller = new FixLevel0MediaController();
+ $request = self::createRequest('GET', ['route' => 'admin-fix-level-0-media-data', ['tree_id' => $tree->id()]]);
$response = $controller->fixLevel0MediaData($request, $datatables_service);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
}
diff --git a/tests/app/Http/Controllers/Admin/ImportThumbnailsControllerTest.php b/tests/app/Http/Controllers/Admin/ImportThumbnailsControllerTest.php
index 864099f1ae..4dc4d29944 100644
--- a/tests/app/Http/Controllers/Admin/ImportThumbnailsControllerTest.php
+++ b/tests/app/Http/Controllers/Admin/ImportThumbnailsControllerTest.php
@@ -17,15 +17,14 @@ declare(strict_types=1);
namespace Fisharebest\Webtrees\Http\Controllers\Admin;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
+use Fisharebest\Webtrees\TestCase;
/**
* Test ImportThumbnailsController class.
*
* @covers \Fisharebest\Webtrees\Http\Controllers\Admin\ImportThumbnailsController
*/
-class ImportThumbnailsControllerTest extends \Fisharebest\Webtrees\TestCase
+class ImportThumbnailsControllerTest extends TestCase
{
protected static $uses_database = true;
@@ -35,9 +34,10 @@ class ImportThumbnailsControllerTest extends \Fisharebest\Webtrees\TestCase
public function testWebtrees1Thumbnails(): void
{
$controller = new ImportThumbnailsController();
- $response = $controller->webtrees1Thumbnails();
+ self::createRequest('GET', ['route' => 'admin-webtrees1-thumbs']);
+ $response = $controller->webtrees1Thumbnails();
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -46,9 +46,15 @@ class ImportThumbnailsControllerTest extends \Fisharebest\Webtrees\TestCase
public function testWebtrees1ThumbnailsAction(): void
{
$controller = new ImportThumbnailsController();
- $response = $controller->webtrees1ThumbnailsAction(new Request());
+ $request = self::createRequest('POST', ['route' => 'admin-webtrees1-thumbs-action'], [
+ 'thumbnail' => 'foo',
+ 'action' => '',
+ 'xref' => [],
+ 'ged' => [],
+ ]);
+ $response = $controller->webtrees1ThumbnailsAction($request);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -57,8 +63,15 @@ class ImportThumbnailsControllerTest extends \Fisharebest\Webtrees\TestCase
public function testWebtrees1ThumbnailsData(): void
{
$controller = new ImportThumbnailsController();
- $response = $controller->webtrees1ThumbnailsData(new Request());
+ $request = self::createRequest('GET', [
+ 'route' => 'admin-webtrees1-thumbs-data',
+ 'start' => '0',
+ 'length' => '10',
+ 'search' => ['value' => ''],
+ 'draw' => '1',
+ ]);
+ $response = $controller->webtrees1ThumbnailsData($request);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
}
diff --git a/tests/app/Http/Controllers/Admin/LocationControllerTest.php b/tests/app/Http/Controllers/Admin/LocationControllerTest.php
index 9ab0be3b7b..00e23cb9c5 100644
--- a/tests/app/Http/Controllers/Admin/LocationControllerTest.php
+++ b/tests/app/Http/Controllers/Admin/LocationControllerTest.php
@@ -17,17 +17,17 @@ declare(strict_types=1);
namespace Fisharebest\Webtrees\Http\Controllers\Admin;
+use Fisharebest\Webtrees\Services\GedcomService;
+use Fisharebest\Webtrees\TestCase;
use Fisharebest\Webtrees\Tree;
-use Symfony\Component\HttpFoundation\File\UploadedFile;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
+use function dirname;
/**
* Test the location admin controller
*
* @covers \Fisharebest\Webtrees\Http\Controllers\Admin\LocationController
*/
-class LocationControllerTest extends \Fisharebest\Webtrees\TestCase
+class LocationControllerTest extends TestCase
{
protected static $uses_database = true;
@@ -36,10 +36,11 @@ class LocationControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testMapData(): void
{
- $controller = app(LocationController::class);
- $response = app()->dispatch($controller, 'mapData');
+ $controller = new LocationController(new GedcomService());
+ $request = self::createRequest('GET', ['route' => 'map-data']);
+ $response = $controller->mapData($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -47,10 +48,11 @@ class LocationControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testMapDataEdit(): void
{
- $controller = app(LocationController::class);
- $response = app()->dispatch($controller, 'mapDataEdit');
+ $controller = new LocationController(new GedcomService());
+ $request = self::createRequest('GET', ['route' => 'map-data-edit', 'place_id' => '0', 'parent_id' => '0']);
+ $response = $controller->mapDataEdit($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -58,10 +60,21 @@ class LocationControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testMapDataSave(): void
{
- $controller = app(LocationController::class);
- $response = app()->dispatch($controller, 'mapDataSave');
+ $controller = new LocationController(new GedcomService());
+ $request = self::createRequest('POST', ['route' => 'map-data-edit'], [
+ 'parent_id' => '0',
+ 'place_id' => '0',
+ 'new_place_lati' => '-12.345',
+ 'new_place_long' => '-123.45',
+ 'icon' => '',
+ 'new_zoom_factor' => '2',
+ 'new_place_name' => 'place',
+ 'lati_control' => 'S',
+ 'long_control' => 'W',
+ ]);
+ $response = $controller->mapDataSave($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -69,10 +82,11 @@ class LocationControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testMapDataDelete(): void
{
- $controller = app(LocationController::class);
- $response = app()->dispatch($controller, 'mapDataDelete');
+ $controller = new LocationController(new GedcomService());
+ $request = self::createRequest('POST', ['route' => 'map-data-delete'], ['parent_id' => '0', 'place_id' => '0']);
+ $response = $controller->mapDataDelete($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -80,10 +94,12 @@ class LocationControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testExportLocations(): void
{
- $controller = app(LocationController::class);
- $response = app()->dispatch($controller, 'exportLocations');
+ $controller = new LocationController(new GedcomService());
+ $request = self::createRequest('GET', ['route' => 'locations-export', 'parent_id' => '0', 'format' => 'geojson']);
+ $response = $controller->exportLocations($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
+ $this->assertSame($response->getHeaderLine('Content-type'), 'application/vnd.geo+json');
}
/**
@@ -91,10 +107,11 @@ class LocationControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testImportLocations(): void
{
- $controller = app(LocationController::class);
- $response = app()->dispatch($controller, 'importLocations');
+ $controller = new LocationController(new GedcomService());
+ $request = self::createRequest('GET', ['route' => 'locations-import'], ['parent_id' => '0']);
+ $response = $controller->importLocations($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -102,14 +119,12 @@ class LocationControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testImportLocationsAction(): void
{
- $csv = new UploadedFile(dirname(__DIR__, 4) . '/data/places.csv', 'places.csv', 'image/jpeg', UPLOAD_ERR_OK);
+ $csv = $this->createUploadedFile(dirname(__DIR__, 4) . '/data/places.csv', 'text/csv');
+ $controller = new LocationController(new GedcomService());
+ $request = self::createRequest('POST', ['route' => 'locations-import'], ['parent_id' => '0'], ['csv' => $csv]);
+ $response = $controller->importLocationsAction($request);
- app()->instance(Request::class, new Request([], [], [], [], ['localfile' => $csv]));
-
- $controller = app(LocationController::class);
- $response = app()->dispatch($controller, 'importLocationsAction');
-
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -117,11 +132,11 @@ class LocationControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testImportLocationsFromTree(): void
{
- app()->instance(Tree::class, Tree::create('name', 'title'));
-
- $controller = app(LocationController::class);
- $response = app()->dispatch($controller, 'importLocationsFromTree');
+ $tree = Tree::create('name', 'title');
+ $controller = new LocationController(new GedcomService());
+ self::createRequest('POST', ['route' => 'locations-import-from-tree']);
+ $response = $controller->importLocationsFromTree($tree);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
}
diff --git a/tests/app/Http/Controllers/Admin/MapProviderControllerTest.php b/tests/app/Http/Controllers/Admin/MapProviderControllerTest.php
index aeffefe1bc..16f251ea37 100644
--- a/tests/app/Http/Controllers/Admin/MapProviderControllerTest.php
+++ b/tests/app/Http/Controllers/Admin/MapProviderControllerTest.php
@@ -17,14 +17,15 @@ declare(strict_types=1);
namespace Fisharebest\Webtrees\Http\Controllers\Admin;
-use Symfony\Component\HttpFoundation\Response;
+use Fisharebest\Webtrees\TestCase;
+use Psr\Http\Message\ResponseInterface;
/**
* Test the changes log controller
*
* @covers \Fisharebest\Webtrees\Http\Controllers\Admin\MapProviderController
*/
-class MapProviderControllerTest extends \Fisharebest\Webtrees\TestCase
+class MapProviderControllerTest extends TestCase
{
protected static $uses_database = true;
@@ -33,10 +34,11 @@ class MapProviderControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testMapProviderEdit(): void
{
- $controller = app(MapProviderController::class);
- $response = app()->dispatch($controller, 'mapProviderEdit');
+ $controller = new MapProviderController();
+ self::createRequest('GET', ['route' => 'map-provider']);
+ $response = $controller->mapProviderEdit();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -44,9 +46,10 @@ class MapProviderControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testMapProviderSave(): void
{
- $controller = app(MapProviderController::class);
- $response = app()->dispatch($controller, 'mapProviderSave');
+ $controller = new MapProviderController();
+ $request = self::createRequest('POST', ['route' => 'map-provider'], ['provider' => '']);
+ $response = $controller->mapProviderSave($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
}
diff --git a/tests/app/Http/Controllers/Admin/MediaControllerTest.php b/tests/app/Http/Controllers/Admin/MediaControllerTest.php
index 75bb205ff1..fb47fccb94 100644
--- a/tests/app/Http/Controllers/Admin/MediaControllerTest.php
+++ b/tests/app/Http/Controllers/Admin/MediaControllerTest.php
@@ -17,15 +17,15 @@ declare(strict_types=1);
namespace Fisharebest\Webtrees\Http\Controllers\Admin;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
+use Fisharebest\Webtrees\Services\DatatablesService;
+use Fisharebest\Webtrees\TestCase;
/**
* Test MediaController class.
*
* @covers \Fisharebest\Webtrees\Http\Controllers\Admin\MediaController
*/
-class MediaControllerTest extends \Fisharebest\Webtrees\TestCase
+class MediaControllerTest extends TestCase
{
protected static $uses_database = true;
@@ -34,10 +34,11 @@ class MediaControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testIndex(): void
{
- $controller = app(MediaController::class);
- $response = app()->dispatch($controller, 'index');
+ $controller = new MediaController();
+ $request = self::createRequest('GET', ['route' => 'admin-media']);
+ $response = $controller->index($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -45,11 +46,19 @@ class MediaControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testDataLocal(): void
{
- app()->instance(Request::class, new Request(['files' => 'local']));
- $controller = app(MediaController::class);
- $response = app()->dispatch($controller, 'data');
+ $controller = new MediaController();
+ $request = self::createRequest('GET', [
+ 'route' => 'admin-media-data',
+ 'files' => 'local',
+ 'media_folder' => '',
+ 'subfolders' => 'include',
+ 'search' => ['value' => ''],
+ 'start' => '0',
+ 'length' => '10',
+ ]);
+ $response = $controller->data($request, new DatatablesService());
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -57,11 +66,19 @@ class MediaControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testDataExternal(): void
{
- app()->instance(Request::class, new Request(['files' => 'external']));
- $controller = app(MediaController::class);
- $response = app()->dispatch($controller, 'data');
+ $controller = new MediaController();
+ $request = self::createRequest('GET', [
+ 'route' => 'admin-media-external',
+ 'files' => 'local',
+ 'media_folder' => '',
+ 'subfolders' => 'include',
+ 'search' => ['value' => ''],
+ 'start' => '0',
+ 'length' => '10',
+ ]);
+ $response = $controller->data($request, new DatatablesService());
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -69,11 +86,19 @@ class MediaControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testDataUnused(): void
{
- app()->instance(Request::class, new Request(['files' => 'unused']));
- $controller = app(MediaController::class);
- $response = app()->dispatch($controller, 'data');
+ $controller = new MediaController();
+ $request = self::createRequest('GET', [
+ 'route' => 'admin-media-unused',
+ 'files' => 'local',
+ 'media_folder' => '',
+ 'subfolders' => 'include',
+ 'search' => ['value' => ''],
+ 'start' => '0',
+ 'length' => '10',
+ ]);
+ $response = $controller->data($request, new DatatablesService());
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -81,10 +106,11 @@ class MediaControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testDelete(): void
{
- $controller = app(MediaController::class);
- $response = app()->dispatch($controller, 'delete');
+ $controller = new MediaController();
+ $request = self::createRequest('POST', ['route' => 'admin-media-delete'], ['file' => 'foo', 'folder' => 'bar']);
+ $response = $controller->delete($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -92,10 +118,11 @@ class MediaControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testUpload(): void
{
- $controller = app(MediaController::class);
- $response = app()->dispatch($controller, 'upload');
+ $controller = new MediaController();
+ self::createRequest('GET', ['route' => 'admin-media-upload']);
+ $response = $controller->upload();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -103,9 +130,10 @@ class MediaControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testUploadAction(): void
{
- $controller = app(MediaController::class);
- $response = app()->dispatch($controller, 'uploadAction');
+ $controller = new MediaController();
+ $request = self::createRequest('POST', ['route' => 'admin-media-delete']);
+ $response = $controller->uploadAction($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
}
diff --git a/tests/app/Http/Controllers/Admin/ModuleControllerTest.php b/tests/app/Http/Controllers/Admin/ModuleControllerTest.php
index de9d412ce4..ebeb6dbccd 100644
--- a/tests/app/Http/Controllers/Admin/ModuleControllerTest.php
+++ b/tests/app/Http/Controllers/Admin/ModuleControllerTest.php
@@ -17,15 +17,16 @@ declare(strict_types=1);
namespace Fisharebest\Webtrees\Http\Controllers\Admin;
+use Fisharebest\Webtrees\Services\ModuleService;
+use Fisharebest\Webtrees\TestCase;
use Fisharebest\Webtrees\Tree;
-use Symfony\Component\HttpFoundation\Response;
/**
* Test the module admin controller
*
* @covers \Fisharebest\Webtrees\Http\Controllers\Admin\ModuleController
*/
-class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
+class ModuleControllerTest extends TestCase
{
protected static $uses_database = true;
@@ -34,10 +35,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testList(): void
{
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'list');
+ $controller = new ModuleController(new ModuleService());
+ self::createRequest('GET', ['route' => 'modules']);
+ $response = $controller->list();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -45,10 +47,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testListAnalytics(): void
{
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'listAnalytics');
+ $controller = new ModuleController(new ModuleService());
+ self::createRequest('GET', ['route' => 'analytics']);
+ $response = $controller->listAnalytics();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -56,10 +59,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testListBlocks(): void
{
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'listBlocks');
+ $controller = new ModuleController(new ModuleService());
+ self::createRequest('GET', ['route' => 'blocks']);
+ $response = $controller->listBlocks();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -67,10 +71,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testListCharts(): void
{
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'listCharts');
+ $controller = new ModuleController(new ModuleService());
+ self::createRequest('GET', ['route' => 'charts']);
+ $response = $controller->listCharts();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -78,10 +83,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testListFooters(): void
{
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'listFooters');
+ $controller = new ModuleController(new ModuleService());
+ self::createRequest('GET', ['route' => 'footers']);
+ $response = $controller->listFooters();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -89,10 +95,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testListHistory(): void
{
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'listHistory');
+ $controller = new ModuleController(new ModuleService());
+ self::createRequest('GET', ['route' => 'history']);
+ $response = $controller->listHistory();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -100,10 +107,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testListLanguages(): void
{
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'listLanguages');
+ $controller = new ModuleController(new ModuleService());
+ self::createRequest('GET', ['route' => 'languages']);
+ $response = $controller->listLanguages();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -111,10 +119,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testListMenus(): void
{
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'listMenus');
+ $controller = new ModuleController(new ModuleService());
+ self::createRequest('GET', ['route' => 'menus']);
+ $response = $controller->listMenus();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -122,10 +131,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testListReports(): void
{
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'listReports');
+ $controller = new ModuleController(new ModuleService());
+ self::createRequest('GET', ['route' => 'reports']);
+ $response = $controller->listReports();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -133,10 +143,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testListSidebars(): void
{
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'listSidebars');
+ $controller = new ModuleController(new ModuleService());
+ self::createRequest('GET', ['route' => 'sidebars']);
+ $response = $controller->listSidebars();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -144,10 +155,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testListTabs(): void
{
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'listTabs');
+ $controller = new ModuleController(new ModuleService());
+ self::createRequest('GET', ['route' => 'tabs']);
+ $response = $controller->listTabs();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -155,10 +167,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testListThemes(): void
{
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'listThemes');
+ $controller = new ModuleController(new ModuleService());
+ self::createRequest('GET', ['route' => 'themes']);
+ $response = $controller->listThemes();
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -167,10 +180,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
public function testUpdate(): void
{
Tree::create('name', 'title');
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'update');
+ $controller = new ModuleController(new ModuleService());
+ $request = self::createRequest('POST', ['route' => 'modules']);
+ $response = $controller->update($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -179,10 +193,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
public function testUpdateAnalytics(): void
{
Tree::create('name', 'title');
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'updateAnalytics');
+ $controller = new ModuleController(new ModuleService());
+ $request = self::createRequest('POST', ['route' => 'analytics']);
+ $response = $controller->updateAnalytics($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -191,10 +206,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
public function testUpdateBlocks(): void
{
Tree::create('name', 'title');
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'updateBlocks');
+ $controller = new ModuleController(new ModuleService());
+ $request = self::createRequest('POST', ['route' => 'blocks']);
+ $response = $controller->updateBlocks($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -203,10 +219,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
public function testUpdateCharts(): void
{
Tree::create('name', 'title');
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'updateCharts');
+ $controller = new ModuleController(new ModuleService());
+ $request = self::createRequest('POST', ['route' => 'charts']);
+ $response = $controller->updateCharts($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -215,10 +232,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
public function testUpdateFooters(): void
{
Tree::create('name', 'title');
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'updateFooters');
+ $controller = new ModuleController(new ModuleService());
+ $request = self::createRequest('POST', ['route' => 'footers']);
+ $response = $controller->updateFooters($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -227,10 +245,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
public function testUpdateHistory(): void
{
Tree::create('name', 'title');
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'updateHistory');
+ $controller = new ModuleController(new ModuleService());
+ $request = self::createRequest('POST', ['route' => 'history']);
+ $response = $controller->updateHistory($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -239,10 +258,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
public function testUpdateLanguages(): void
{
Tree::create('name', 'title');
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'updateLanguages');
+ $controller = new ModuleController(new ModuleService());
+ $request = self::createRequest('POST', ['route' => 'languages']);
+ $response = $controller->updateLanguages($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -251,10 +271,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
public function testUpdateMenus(): void
{
Tree::create('name', 'title');
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'updateMenus');
+ $controller = new ModuleController(new ModuleService());
+ $request = self::createRequest('POST', ['route' => 'menus']);
+ $response = $controller->updateMenus($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -263,10 +284,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
public function testUpdateReports(): void
{
Tree::create('name', 'title');
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'updateReports');
+ $controller = new ModuleController(new ModuleService());
+ $request = self::createRequest('POST', ['route' => 'reports']);
+ $response = $controller->updateReports($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -275,10 +297,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
public function testUpdateSidebars(): void
{
Tree::create('name', 'title');
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'updateSidebars');
+ $controller = new ModuleController(new ModuleService());
+ $request = self::createRequest('POST', ['route' => 'sidebars']);
+ $response = $controller->updateSidebars($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -287,10 +310,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
public function testUpdateTabs(): void
{
Tree::create('name', 'title');
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'updateTabs');
+ $controller = new ModuleController(new ModuleService());
+ $request = self::createRequest('POST', ['route' => 'tabs']);
+ $response = $controller->updateTabs($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -299,10 +323,11 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
public function testUpdateThemes(): void
{
Tree::create('name', 'title');
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'updateThemes');
+ $controller = new ModuleController(new ModuleService());
+ $request = self::createRequest('POST', ['route' => 'themes']);
+ $response = $controller->updateThemes($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -310,9 +335,10 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
*/
public function testDeleteModuleSettings(): void
{
- $controller = app(ModuleController::class);
- $response = app()->dispatch($controller, 'deleteModuleSettings');
+ $controller = new ModuleController(new ModuleService());
+ $request = self::createRequest('POST', ['route' => 'delete-module-settings'], ['module_name' => 'foo']);
+ $response = $controller->deleteModuleSettings($request);
- $this->assertInstanceOf(Response::class, $response);
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
}
diff --git a/tests/app/Http/Controllers/Admin/UpgradeControllerTest.php b/tests/app/Http/Controllers/Admin/UpgradeControllerTest.php
index 12a27e0d65..0f88bddcbe 100644
--- a/tests/app/Http/Controllers/Admin/UpgradeControllerTest.php
+++ b/tests/app/Http/Controllers/Admin/UpgradeControllerTest.php
@@ -22,19 +22,18 @@ use Fisharebest\Webtrees\Auth;
use Fisharebest\Webtrees\Services\TimeoutService;
use Fisharebest\Webtrees\Services\UpgradeService;
use Fisharebest\Webtrees\Services\UserService;
+use Fisharebest\Webtrees\TestCase;
use Fisharebest\Webtrees\Tree;
use Illuminate\Support\Collection;
use League\Flysystem\Filesystem;
use League\Flysystem\Memory\MemoryAdapter;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
/**
* Test UpgradeController class.
*
* @covers \Fisharebest\Webtrees\Http\Controllers\Admin\UpgradeController
*/
-class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
+class UpgradeControllerTest extends TestCase
{
protected static $uses_database = true;
@@ -45,12 +44,13 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
{
$controller = new UpgradeController(
new Filesystem(new MemoryAdapter()),
- new UpgradeService(new TimeoutService(microtime(true)))
+ new UpgradeService(new TimeoutService())
);
- $response = $controller->wizard(new Request());
+ $request = self::createRequest('GET', ['route' => 'wizard']);
+ $response = $controller->wizard($request);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -62,12 +62,13 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
$controller = new UpgradeController(
new Filesystem(new MemoryAdapter()),
- new UpgradeService(new TimeoutService(microtime(true)))
+ new UpgradeService(new TimeoutService())
);
- $response = $controller->wizard(new Request(['continue' => '1']));
+ $request = self::createRequest('GET', ['route' => 'wizard', 'continue' => '1']);
+ $response = $controller->wizard($request);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -78,10 +79,11 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
{
$controller = new UpgradeController(
new Filesystem(new MemoryAdapter()),
- new UpgradeService(new TimeoutService(microtime(true)))
+ new UpgradeService(new TimeoutService())
);
- $controller->step(new Request(['step' => 'Invalid']), null);
+ $request = self::createRequest('POST', ['route' => 'wizard'], ['step' => 'Invalid']);
+ $controller->step($request, null);
}
/**
@@ -96,9 +98,10 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
$mock_upgrade_service
);
- $response = $controller->step(new Request(['step' => 'Check']), null);
+ $request = self::createRequest('POST', ['route' => 'wizard'], ['step' => 'Check']);
+ $response = $controller->step($request, null);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -114,7 +117,8 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
$mock_upgrade_service
);
- $controller->step(new Request(['step' => 'Check']), null);
+ $request = self::createRequest('POST', ['route' => 'wizard'], ['step' => 'Check']);
+ $controller->step($request, null);
}
/**
@@ -130,7 +134,8 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
$mock_upgrade_service
);
- $controller->step(new Request(['step' => 'Check']), null);
+ $request = self::createRequest('POST', ['route' => 'wizard'], ['step' => 'Check']);
+ $controller->step($request, null);
}
/**
@@ -140,12 +145,13 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
{
$controller = new UpgradeController(
new Filesystem(new MemoryAdapter()),
- new UpgradeService(new TimeoutService(microtime(true)))
+ new UpgradeService(new TimeoutService())
);
- $response = $controller->step(new Request(['step' => 'Prepare']), null);
+ $request = self::createRequest('POST', ['route' => 'wizard'], ['step' => 'Prepare']);
+ $response = $controller->step($request, null);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -155,19 +161,20 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
{
$controller = new UpgradeController(
new Filesystem(new MemoryAdapter()),
- new UpgradeService(new TimeoutService(microtime(true)))
+ new UpgradeService(new TimeoutService())
);
- $response = $controller->step(new Request(['step' => 'Pending']), null);
+ $request = self::createRequest('POST', ['route' => 'wizard'], ['step' => 'Pending']);
+ $response = $controller->step($request, null);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
* @expectedException \Fisharebest\Webtrees\Exceptions\InternalServerErrorException
* @return void
*/
- public function testStepPendingEzist(): void
+ public function testStepPendingExist(): void
{
$tree = Tree::create('name', 'title');
$user = (new UserService)->create('user', 'name', 'email', 'password');
@@ -176,10 +183,11 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
$controller = new UpgradeController(
new Filesystem(new MemoryAdapter()),
- new UpgradeService(new TimeoutService(microtime(true)))
+ new UpgradeService(new TimeoutService())
);
- $controller->step(new Request(['step' => 'Pending']), null);
+ $request = self::createRequest('POST', ['route' => 'wizard'], ['step' => 'Pending']);
+ $controller->step($request, null);
}
/**
@@ -190,17 +198,18 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
$tree = $this->importTree('demo.ged');
$controller = new UpgradeController(
new Filesystem(new MemoryAdapter()),
- new UpgradeService(new TimeoutService(microtime(true)))
+ new UpgradeService(new TimeoutService())
);
- $response = $controller->step(new Request(['step' => 'Export']), $tree);
+ $request = self::createRequest('POST', ['route' => 'wizard'], ['step' => 'Export']);
+ $response = $controller->step($request, $tree);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
// Now overwrite the file we just created
- $response = $controller->step(new Request(['step' => 'Export']), $tree);
+ $response = $controller->step($request, $tree);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -216,7 +225,8 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
$mock_upgrade_service
);
- $controller->step(new Request(['step' => 'Download']), null);
+ $request = self::createRequest('POST', ['route' => 'wizard'], ['step' => 'Download']);
+ $controller->step($request, null);
}
/**
@@ -231,9 +241,10 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
$mock_upgrade_service
);
- $response = $controller->step(new Request(['step' => 'Download']), null);
+ $request = self::createRequest('POST', ['route' => 'wizard'], ['step' => 'Download']);
+ $response = $controller->step($request, null);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -248,9 +259,10 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
$mock_upgrade_service
);
- $response = $controller->step(new Request(['step' => 'Unzip']), null);
+ $request = self::createRequest('POST', ['route' => 'wizard'], ['step' => 'Unzip']);
+ $response = $controller->step($request, null);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -260,12 +272,13 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
{
$controller = new UpgradeController(
new Filesystem(new MemoryAdapter()),
- new UpgradeService(new TimeoutService(microtime(true)))
+ new UpgradeService(new TimeoutService())
);
- $response = $controller->step(new Request(['step' => 'Copy']), null);
+ $request = self::createRequest('POST', ['route' => 'wizard'], ['step' => 'Copy']);
+ $response = $controller->step($request, null);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -274,13 +287,14 @@ class UpgradeControllerTest extends \Fisharebest\Webtrees\TestCase
public function testStepCleanup(): void
{
$mock_upgrade_service = $this->createMock(UpgradeService::class);
- $controller = new UpgradeController(
+ $controller = new UpgradeController(
new Filesystem(new MemoryAdapter()),
$mock_upgrade_service
);
- $response = $controller->step(new Request(['step' => 'Cleanup']), null);
+ $request = self::createRequest('POST', ['route' => 'wizard'], ['step' => 'Cleanup']);
+ $response = $controller->step($request, null);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
}
diff --git a/tests/app/Http/Controllers/Admin/UsersControllerTest.php b/tests/app/Http/Controllers/Admin/UsersControllerTest.php
index cc1dda80c2..5e453989e8 100644
--- a/tests/app/Http/Controllers/Admin/UsersControllerTest.php
+++ b/tests/app/Http/Controllers/Admin/UsersControllerTest.php
@@ -21,16 +21,15 @@ use Fisharebest\Webtrees\Auth;
use Fisharebest\Webtrees\Services\DatatablesService;
use Fisharebest\Webtrees\Services\ModuleService;
use Fisharebest\Webtrees\Services\UserService;
+use Fisharebest\Webtrees\TestCase;
use Fisharebest\Webtrees\User;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
/**
* Test UsersController class.
*
* @covers \Fisharebest\Webtrees\Http\Controllers\Admin\UsersController
*/
-class UsersControllerTest extends \Fisharebest\Webtrees\TestCase
+class UsersControllerTest extends TestCase
{
protected static $uses_database = true;
@@ -40,9 +39,10 @@ class UsersControllerTest extends \Fisharebest\Webtrees\TestCase
public function testIndex(): void
{
$controller = new UsersController(new ModuleService(), new UserService());
- $response = $controller->index(new Request(), Auth::user());
+ $request = self::createRequest('GET', ['route' => 'admin-users']);
+ $response = $controller->index($request, Auth::user());
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -51,9 +51,10 @@ class UsersControllerTest extends \Fisharebest\Webtrees\TestCase
public function testData(): void
{
$controller = new UsersController(new ModuleService(), new UserService());
- $response = $controller->data(new DatatablesService(), new Request(), Auth::User());
+ $request = self::createRequest('GET', ['route' => 'admin-users-data']);
+ $response = $controller->data(new DatatablesService(), $request, Auth::User());
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -62,9 +63,10 @@ class UsersControllerTest extends \Fisharebest\Webtrees\TestCase
public function testCreate(): void
{
$controller = new UsersController(new ModuleService(), new UserService());
- $response = $controller->create(new Request());
+ $request = self::createRequest('GET', ['route' => 'admin-users-create']);
+ $response = $controller->create($request);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -73,9 +75,15 @@ class UsersControllerTest extends \Fisharebest\Webtrees\TestCase
public function testSave(): void
{
$controller = new UsersController(new ModuleService(), new UserService());
- $response = $controller->save(new Request());
+ $request = self::createRequest('POST', ['route' => 'admin-users-create'], [
+ 'username' => 'User name',
+ 'email' => 'email@example.com',
+ 'real_name' => 'Real Name',
+ 'password' => 'Secret1234',
+ ]);
+ $response = $controller->save($request);
- $this->assertSame(Response::HTTP_FOUND, $response->getStatusCode());
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -85,9 +93,10 @@ class UsersControllerTest extends \Fisharebest\Webtrees\TestCase
{
$user = (new UserService)->create('user', 'real', 'email', 'pass');
$controller = new UsersController(new ModuleService(), new UserService());
- $response = $controller->edit(new Request(['user_id' => $user->id()]));
+ $request = self::createRequest('GET', ['route' => 'admin-users-edit', 'user_id' => (string) $user->id()]);
+ $response = $controller->edit($request);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -98,9 +107,26 @@ class UsersControllerTest extends \Fisharebest\Webtrees\TestCase
/** @var User $user */
$user = (new UserService)->create('user', 'real', 'email', 'pass');
$controller = new UsersController(new ModuleService(), new UserService());
- $response = $controller->update(new Request(['user_id' => $user->id()]), $user);
+ $request = self::createRequest('POST', ['route' => 'admin-users-edit'], [
+ 'user_id' => $user->id(),
+ 'username' => '',
+ 'real_name' => '',
+ 'email' => '',
+ 'theme' => '',
+ 'password' => '',
+ 'language' => '',
+ 'timezone' => '',
+ 'comment' => '',
+ 'contact_method' => '',
+ 'auto_accept' => '',
+ 'canadmin' => '',
+ 'visible_online' => '',
+ 'verified' => '',
+ 'approved' => '',
+ ]);
+ $response = $controller->update($request, $user);
- $this->assertSame(Response::HTTP_FOUND, $response->getStatusCode());
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
/**
@@ -109,9 +135,10 @@ class UsersControllerTest extends \Fisharebest\Webtrees\TestCase
public function testCleanup(): void
{
$controller = new UsersController(new ModuleService(), new UserService());
- $response = $controller->cleanup(new Request());
+ $request = self::createRequest('GET', ['route' => 'admin-users-cleanup']);
+ $response = $controller->cleanup($request);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
/**
@@ -120,8 +147,9 @@ class UsersControllerTest extends \Fisharebest\Webtrees\TestCase
public function testCleanupAction(): void
{
$controller = new UsersController(new ModuleService(), new UserService());
- $response = $controller->cleanupAction(new Request());
+ $request = self::createRequest('POST', ['route' => 'admin-users-cleanup']);
+ $response = $controller->cleanupAction($request);
- $this->assertSame(Response::HTTP_FOUND, $response->getStatusCode());
+ $this->assertSame(self::STATUS_FOUND, $response->getStatusCode());
}
}
diff --git a/tests/app/Http/Controllers/CalendarControllerTest.php b/tests/app/Http/Controllers/CalendarControllerTest.php
index 676ae207f8..1a2e44293a 100644
--- a/tests/app/Http/Controllers/CalendarControllerTest.php
+++ b/tests/app/Http/Controllers/CalendarControllerTest.php
@@ -17,15 +17,12 @@ declare(strict_types=1);
namespace Fisharebest\Webtrees\Http\Controllers;
+use function app;
use Fisharebest\Localization\Locale\LocaleEnUs;
-use Fisharebest\Webtrees\Auth;
-use Fisharebest\Webtrees\Module\SiteMapModule;
use Fisharebest\Webtrees\Services\CalendarService;
use Fisharebest\Webtrees\Services\LocalizationService;
-use Fisharebest\Webtrees\Services\ModuleService;
use Fisharebest\Webtrees\Tree;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
+use Fisharebest\Webtrees\Http\Request;
/**
* Test the module controller
@@ -50,22 +47,28 @@ class CalendarControllerTest extends \Fisharebest\Webtrees\TestCase
$localization_service = new LocalizationService(new LocaleEnUs());
$controller = new CalendarController($calendar_service, $localization_service);
- $request = new Request(['view' => 'day']);
+ $request = self::createRequest('GET', ['route' => 'calendar', 'view' => 'day']);
$response = $controller->page($request, $tree);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
+
+ $request = self::createRequest('GET', ['route' => 'calendar-events', 'view' => 'day']);
$response = $controller->calendar($request, $tree);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
- $request = new Request(['view' => 'month']);
+ $request = self::createRequest('GET', ['route' => 'calendar', 'view' => 'month']);
$response = $controller->page($request, $tree);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
+
+ $request = self::createRequest('GET', ['route' => 'calendar-events', 'view' => 'month']);
$response = $controller->calendar($request, $tree);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
- $request = new Request(['view' => 'year']);
+ $request = self::createRequest('GET', ['route' => 'calendar', 'view' => 'year']);
$response = $controller->page($request, $tree);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
+
+ $request = self::createRequest('GET', ['route' => 'calendar-events', 'view' => 'year']);
$response = $controller->calendar($request, $tree);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
}
diff --git a/tests/app/Http/Controllers/ModuleControllerTest.php b/tests/app/Http/Controllers/ModuleControllerTest.php
index f85f762eac..a8b24b7aed 100644
--- a/tests/app/Http/Controllers/ModuleControllerTest.php
+++ b/tests/app/Http/Controllers/ModuleControllerTest.php
@@ -20,8 +20,7 @@ namespace Fisharebest\Webtrees\Http\Controllers;
use Fisharebest\Webtrees\Auth;
use Fisharebest\Webtrees\Module\SiteMapModule;
use Fisharebest\Webtrees\Services\ModuleService;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
+use Fisharebest\Webtrees\Http\Request;
/**
* Test the module controller
@@ -104,6 +103,6 @@ class ModuleControllerTest extends \Fisharebest\Webtrees\TestCase
$controller = new ModuleController($module_service);
$response = $controller->action($request, Auth::user());
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
}
diff --git a/tests/feature/IndividualListTest.php b/tests/feature/IndividualListTest.php
index 46af7d23b8..aa30498e31 100644
--- a/tests/feature/IndividualListTest.php
+++ b/tests/feature/IndividualListTest.php
@@ -22,8 +22,6 @@ use Fisharebest\Webtrees\Http\Controllers\ListController;
use Fisharebest\Webtrees\Module\IndividualListModule;
use Fisharebest\Webtrees\Services\IndividualListService;
use Fisharebest\Webtrees\Services\LocalizationService;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
/**
* Test the individual lists.
@@ -50,24 +48,28 @@ class IndividualListTest extends TestCase
$individual_list_service = new IndividualListService($localization_service, $tree);
$controller = new ListController($individual_list_service, $localization_service);
- $request = new Request(['route' => 'module', 'module' => 'individual_list', 'action' => 'List']);
+ $request = self::createRequest('GET', [
+ 'route' => 'module',
+ 'module' => 'individual_list',
+ 'action' => 'List',
+ ]);
$response = $controller->individualList($request, $tree, $user, $list_module);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
- $request = new Request(['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'alpha' => 'B']);
+ $request = self::createRequest('GET', ['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'alpha' => 'B']);
$response = $controller->individualList($request, $tree, $user, $list_module);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
- $request = new Request(['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'alpha' => ',']);
+ $request = self::createRequest('GET', ['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'alpha' => ',']);
$response = $controller->individualList($request, $tree, $user, $list_module);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
- $request = new Request(['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'alpha' => '@']);
+ $request = self::createRequest('GET', ['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'alpha' => '@']);
$response = $controller->individualList($request, $tree, $user, $list_module);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
- $request = new Request(['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'surname' => 'BRAUN']);
+ $request = self::createRequest('GET', ['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'surname' => 'BRAUN']);
$response = $controller->individualList($request, $tree, $user, $list_module);
- $this->assertSame(Response::HTTP_OK, $response->getStatusCode());
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
}
}
diff --git a/tests/feature/UserAdminTest.php b/tests/feature/UserAdminTest.php
index 2656504ff6..dc8a8e0838 100644
--- a/tests/feature/UserAdminTest.php
+++ b/tests/feature/UserAdminTest.php
@@ -18,8 +18,11 @@ declare(strict_types=1);
namespace Fisharebest\Webtrees;
use Fisharebest\Webtrees\Http\Controllers\Admin\UsersController;
+use Fisharebest\Webtrees\Http\Request;
+use Fisharebest\Webtrees\Services\DatatablesService;
+use Fisharebest\Webtrees\Services\ModuleService;
use Fisharebest\Webtrees\Services\UserService;
-use Symfony\Component\HttpFoundation\Request;
+use Psr\Http\Message\ServerRequestInterface;
/**
* Test the user administration pages
@@ -36,18 +39,25 @@ class UserAdminTest extends TestCase
public function testUserDetailsAreShownOnUserAdminPage(): void
{
$user_service = new UserService();
- $user_service->create('AdminName', 'Administrator', 'admin@example.com', 'secret');
+ $admin = $user_service->create('AdminName', 'Administrator', 'admin@example.com', 'secret');
$user_service->create('UserName', 'RealName', 'user@example.com', 'secret');
- $controller = app(UsersController::class);
- $response = app()->dispatch($controller, 'data');
+ $request = self::createRequest('GET', [
+ 'length' => '10',
+ ]);
- $this->assertContains('AdminName', $response->getContent());
- $this->assertContains('Administrator', $response->getContent());
- $this->assertContains('admin@example.com', $response->getContent());
- $this->assertContains('UserName', $response->getContent());
- $this->assertContains('RealName', $response->getContent());
- $this->assertContains('user@example.com', $response->getContent());
+ $controller = new UsersController(new ModuleService(), new UserService());
+ $response = $controller->data(new DatatablesService(), $request, $admin);
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
+ $this->assertSame('application/json', $response->getHeaderLine('Content-type'));
+ $html = (string) $response->getBody();
+
+ $this->assertContains('AdminName', $html);
+ $this->assertContains('Administrator', $html);
+ $this->assertContains('admin@example.com', $html);
+ $this->assertContains('UserName', $html);
+ $this->assertContains('RealName', $html);
+ $this->assertContains('user@example.com', $html);
}
/**
@@ -58,20 +68,25 @@ class UserAdminTest extends TestCase
public function testFilteringUserAdminPage(): void
{
$user_service = new UserService();
- $user_service->create('AdminName', 'Administrator', 'admin@example.com', 'secret');
+ $admin = $user_service->create('AdminName', 'Administrator', 'admin@example.com', 'secret');
$user_service->create('UserName', 'RealName', 'user@example.com', 'secret');
$request = new Request(['search' => ['value' => 'admin']]);
- app()->instance(Request::class, $request);
- $controller = app(UsersController::class);
- $response = app()->dispatch($controller, 'data');
+ app()->instance(ServerRequestInterface::class, $request);
+
+ $controller = new UsersController(new ModuleService(), new UserService());
+ $response = $controller->data(new DatatablesService(), $request, $admin);
+
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
+ $this->assertSame('application/json', $response->getHeaderLine('Content-type'));
+ $html = (string) $response->getBody();
- $this->assertContains('AdminName', $response->getContent());
- $this->assertContains('Administrator', $response->getContent());
- $this->assertContains('admin@example.com', $response->getContent());
- $this->assertNotContains('UserName', $response->getContent());
- $this->assertNotContains('RealName', $response->getContent());
- $this->assertNotContains('user@example.com', $response->getContent());
+ $this->assertContains('AdminName', $html);
+ $this->assertContains('Administrator', $html);
+ $this->assertContains('admin@example.com', $html);
+ $this->assertNotContains('UserName', $html);
+ $this->assertNotContains('RealName', $html);
+ $this->assertNotContains('user@example.com', $html);
}
/**
@@ -82,16 +97,21 @@ class UserAdminTest extends TestCase
public function testPaginatingUserAdminPage(): void
{
$user_service = new UserService();
- $user_service->create('AdminName', 'Administrator', 'admin@example.com', 'secret');
+ $admin = $user_service->create('AdminName', 'Administrator', 'admin@example.com', 'secret');
$user_service->create('UserName', 'RealName', 'user@example.com', 'secret');
$request = new Request(['length' => 1]);
- app()->instance(Request::class, $request);
- $controller = app(UsersController::class);
- $response = app()->dispatch($controller, 'data');
+ app()->instance(ServerRequestInterface::class, $request);
+
+ $controller = new UsersController(new ModuleService(), new UserService());
+ $response = $controller->data(new DatatablesService(), $request, $admin);
+
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
+ $this->assertSame('application/json', $response->getHeaderLine('Content-type'));
+ $html = (string) $response->getBody();
- $this->assertContains('AdminName', $response->getContent());
- $this->assertNotContains('UserName', $response->getContent());
+ $this->assertContains('AdminName', $html);
+ $this->assertNotContains('UserName', $html);
}
/**
@@ -102,25 +122,35 @@ class UserAdminTest extends TestCase
public function testSortingUserAdminPage(): void
{
$user_service = new UserService();
- $user_service->create('AdminName', 'Administrator', 'admin@example.com', 'secret');
+ $admin = $user_service->create('AdminName', 'Administrator', 'admin@example.com', 'secret');
$user_service->create('UserName', 'RealName', 'user@example.com', 'secret');
$request = new Request(['order' => [['column' => 2, 'dir' => 'asc']]]);
- app()->instance(Request::class, $request);
- $controller = app(UsersController::class);
- $response = app()->dispatch($controller, 'data');
+ app()->instance(ServerRequestInterface::class, $request);
- $pos1 = strpos($response->getContent(), 'AdminName');
- $pos2 = strpos($response->getContent(), 'UserName');
+ $controller = new UsersController(new ModuleService(), new UserService());
+ $response = $controller->data(new DatatablesService(), $request, $admin);
+
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
+ $this->assertSame('application/json', $response->getHeaderLine('Content-type'));
+ $html = (string) $response->getBody();
+
+ $pos1 = strpos($html, 'AdminName');
+ $pos2 = strpos($html, 'UserName');
$this->assertLessThan($pos2, $pos1);
$request = new Request(['order' => [['column' => 2, 'dir' => 'desc']]]);
- app()->instance(Request::class, $request);
- $controller = app(UsersController::class);
- $response = app()->dispatch($controller, 'data');
+ app()->instance(ServerRequestInterface::class, $request);
+
+ $controller = new UsersController(new ModuleService(), new UserService());
+ $response = $controller->data(new DatatablesService(), $request, $admin);
+
+ $this->assertSame(self::STATUS_OK, $response->getStatusCode());
+ $this->assertSame('application/json', $response->getHeaderLine('Content-type'));
+ $html = (string) $response->getBody();
- $pos1 = strpos($response->getContent(), 'AdminName');
- $pos2 = strpos($response->getContent(), 'UserName');
+ $pos1 = strpos($html, 'AdminName');
+ $pos2 = strpos($html, 'UserName');
$this->assertGreaterThan($pos2, $pos1);
}
}