diff options
Diffstat (limited to 'tests')
20 files changed, 269 insertions, 262 deletions
diff --git a/tests/TestCase.php b/tests/TestCase.php index c4cebb9458..b47ed389b4 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -32,6 +32,7 @@ use Illuminate\Cache\Repository; use Illuminate\Database\Capsule\Manager as DB; use Illuminate\Database\Query\Builder; use League\Flysystem\Filesystem; +use League\Flysystem\FilesystemInterface; use League\Flysystem\Memory\MemoryAdapter; use Nyholm\Psr7\Factory\Psr17Factory; use Psr\Http\Message\ResponseFactoryInterface; @@ -47,6 +48,7 @@ use function define; use function defined; use function filesize; use function http_build_query; +use function microtime; use const UPLOAD_ERR_OK; /** @@ -54,11 +56,10 @@ use const UPLOAD_ERR_OK; */ class TestCase extends \PHPUnit\Framework\TestCase implements StatusCodeInterface { - /** @var bool */ - protected static $uses_database = false; - /** @var object */ public static $mock_functions; + /** @var bool */ + protected static $uses_database = false; /** * Things to run once, before all the tests. @@ -77,16 +78,11 @@ class TestCase extends \PHPUnit\Framework\TestCase implements StatusCodeInterfac // 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(Filesystem::class, new Filesystem(new MemoryAdapter())); - - app()->bind(ModuleThemeInterface::class, WebtreesTheme::class); + app()->instance(FilesystemInterface::class, new Filesystem(new MemoryAdapter())); app()->bind(LocaleInterface::class, LocaleEnUs::class); + app()->bind(ModuleThemeInterface::class, WebtreesTheme::class); + app()->bind(UserInterface::class, GuestUser::class); defined('WT_DATA_DIR') || define('WT_DATA_DIR', Webtrees::ROOT_DIR . 'data/'); defined('WT_LOCALE') || define('WT_LOCALE', I18N::init('en-US', null, true)); @@ -126,6 +122,37 @@ class TestCase extends \PHPUnit\Framework\TestCase implements StatusCodeInterfac } /** + * 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 = 'https://webtrees.test/index.php?' . http_build_query($query); + + /** @var ServerRequestInterface $request */ + $request = $server_request_factory + ->createServerRequest($method, $uri) + ->withQueryParams($query) + ->withParsedBody($params) + ->withUploadedFiles($files) + ->withAttribute('base_url', 'https://webtrees.test') + ->withAttribute('client_ip', '127.0.0.1'); + + app()->instance(ServerRequestInterface::class, $request); + + return $request; + } + + /** * Things to run once, AFTER all the tests. */ public static function tearDownAfterClass() @@ -184,10 +211,13 @@ class TestCase extends \PHPUnit\Framework\TestCase implements StatusCodeInterfac $tree->importGedcomFile($stream, $gedcom_file); View::share('tree', $tree); - $gedcom_file_controller = new GedcomFileController(); + + $timeout_service = new TimeoutService(microtime(true)); + $controller = new GedcomFileController($timeout_service); + $request = self::createRequest()->withAttribute('tree', $tree); do { - $gedcom_file_controller->import(new TimeoutService(microtime(true)), $tree); + $controller->import($request); $imported = $tree->getPreference('imported'); } while (!$imported); @@ -196,36 +226,6 @@ class TestCase extends \PHPUnit\Framework\TestCase implements StatusCodeInterfac } /** - * 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) - ->withAttribute('client_ip', '127.0.0.1'); - - app()->instance(ServerRequestInterface::class, $request); - - return $request; - } - - /** * Create an uploaded file for a request. * * @param string $filename @@ -237,16 +237,13 @@ class TestCase extends \PHPUnit\Framework\TestCase implements StatusCodeInterfac { /** @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; - + $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 7c28edd20f..69f7bf025d 100644 --- a/tests/app/Http/Controllers/Admin/ChangesLogControllerTest.php +++ b/tests/app/Http/Controllers/Admin/ChangesLogControllerTest.php @@ -17,12 +17,11 @@ declare(strict_types=1); namespace Fisharebest\Webtrees\Http\Controllers\Admin; -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 function app; /** * Test the changes log controller @@ -38,10 +37,11 @@ class ChangesLogControllerTest extends TestCase */ public function testChangeLog(): void { - $request = self::createRequest('GET', ['route' => 'admin-changes-log']); + app()->instance(Tree::class, Tree::create('', '')); + + $request = self::createRequest('GET', ['route' => 'admin-changes-log']); + $response = app(ChangesLogController::class)->changesLog($request); - $controller = new ChangesLogController(); - $response = $controller->changesLog($request, new UserService()); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -55,8 +55,8 @@ class ChangesLogControllerTest extends TestCase Auth::login($user); $individual = $tree->createIndividual("0 @@ INDI\n1 NAME Joe Bloggs"); - $request = self::createRequest('GET', [ - 'route' => 'admin-changes-log-data', + $request = self::createRequest('GET', [ + 'route' => 'admin-changes-log-data', 'search' => 'Joe', 'from' => '2000-01-01', 'to' => '2099-12-31', @@ -65,8 +65,7 @@ class ChangesLogControllerTest extends TestCase 'ged' => $tree->name(), 'user' => $user->userName(), ]); - $controller = new ChangesLogController(); - $response = $controller->changesLogData($request, new DatatablesService(), new MyersDiff()); + $response = app(ChangesLogController::class)->changesLogData($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -81,12 +80,11 @@ class ChangesLogControllerTest extends TestCase Auth::login($user); $tree->createIndividual("0 @@ INDI\n1 NAME Joe Bloggs"); - $request = self::createRequest('GET', [ + $request = self::createRequest('GET', [ 'route' => 'admin-changes-log-download', - 'ged' => $tree->name(), + 'ged' => $tree->name(), ]); - $controller = new ChangesLogController(); - $response = $controller->changesLogDownload($request); + $response = app(ChangesLogController::class)->changesLogDownload($request); $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 0c31fc1f10..bf773095f0 100644 --- a/tests/app/Http/Controllers/Admin/ControlPanelControllerTest.php +++ b/tests/app/Http/Controllers/Admin/ControlPanelControllerTest.php @@ -17,13 +17,9 @@ declare(strict_types=1); namespace Fisharebest\Webtrees\Http\Controllers\Admin; -use Fisharebest\Webtrees\Services\HousekeepingService; -use Fisharebest\Webtrees\Services\ModuleService; -use Fisharebest\Webtrees\Services\ServerCheckService; -use Fisharebest\Webtrees\Services\TimeoutService; -use Fisharebest\Webtrees\Services\UpgradeService; -use Fisharebest\Webtrees\Services\UserService; use Fisharebest\Webtrees\TestCase; +use Fisharebest\Webtrees\Tree; +use function app; /** * Test the control panel controller @@ -39,15 +35,10 @@ class ControlPanelControllerTest extends TestCase */ public function testControlPanel(): void { - $controller = new ControlPanelController(); - self::createRequest('GET', ['route' => 'control-panel']); - $response = $controller->controlPanel( - new HousekeepingService(), - new UpgradeService(new TimeoutService(microtime(true))), - new ModuleService(), - new ServerCheckService(), - new UserService() - ); + app()->instance(Tree::class, Tree::create('', '')); + + $request = self::createRequest('GET', ['route' => 'control-panel']); + $response = app(ControlPanelController::class)->controlPanel($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -57,9 +48,8 @@ class ControlPanelControllerTest extends TestCase */ public function testControlPanelManager(): void { - $controller = new ControlPanelController(); - self::createRequest('GET', ['route' => 'control-panel']); - $response = $controller->controlPanelManager(new ModuleService()); + $request = self::createRequest('GET', ['route' => 'control-panel']); + $response = app(ControlPanelController::class)->controlPanelManager($request); $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 496122873e..359b0f695a 100644 --- a/tests/app/Http/Controllers/Admin/FixLevel0MediaControllerTest.php +++ b/tests/app/Http/Controllers/Admin/FixLevel0MediaControllerTest.php @@ -35,9 +35,9 @@ class FixLevel0MediaControllerTest extends TestCase */ public function testFixLevel0Media(): void { - $controller = new FixLevel0MediaController(); - self::createRequest('GET', ['route' => 'admin-fix-level-0-media']); - $response = $controller->fixLevel0Media(); + $controller = new FixLevel0MediaController(new DatatablesService()); + $request = self::createRequest('GET', ['route' => 'admin-fix-level-0-media']); + $response = $controller->fixLevel0Media($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -48,13 +48,13 @@ class FixLevel0MediaControllerTest extends TestCase public function testFixLevel0MediaAction(): void { $tree = Tree::create('name', 'title'); + $controller = new FixLevel0MediaController(new DatatablesService()); $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(self::STATUS_OK, $response->getStatusCode()); @@ -67,9 +67,9 @@ class FixLevel0MediaControllerTest extends TestCase { $datatables_service = new DatatablesService(); $tree = Tree::create('name', 'title'); - $controller = new FixLevel0MediaController(); + $controller = new FixLevel0MediaController($datatables_service); $request = self::createRequest('GET', ['route' => 'admin-fix-level-0-media-data', ['tree_id' => $tree->id()]]); - $response = $controller->fixLevel0MediaData($request, $datatables_service); + $response = $controller->fixLevel0MediaData($request); $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 4dc4d29944..6700e4ae12 100644 --- a/tests/app/Http/Controllers/Admin/ImportThumbnailsControllerTest.php +++ b/tests/app/Http/Controllers/Admin/ImportThumbnailsControllerTest.php @@ -34,8 +34,8 @@ class ImportThumbnailsControllerTest extends TestCase public function testWebtrees1Thumbnails(): void { $controller = new ImportThumbnailsController(); - self::createRequest('GET', ['route' => 'admin-webtrees1-thumbs']); - $response = $controller->webtrees1Thumbnails(); + $request = self::createRequest('GET', ['route' => 'admin-webtrees1-thumbs']); + $response = $controller->webtrees1Thumbnails($request); $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 344cd8298f..064c8087dd 100644 --- a/tests/app/Http/Controllers/Admin/LocationControllerTest.php +++ b/tests/app/Http/Controllers/Admin/LocationControllerTest.php @@ -136,8 +136,9 @@ class LocationControllerTest extends TestCase { $tree = Tree::create('name', 'title'); $controller = new LocationController(new GedcomService()); - self::createRequest('POST', ['route' => 'locations-import-from-tree']); - $response = $controller->importLocationsFromTree($tree); + $request = self::createRequest('POST', ['route' => 'locations-import-from-tree']) + ->withAttribute('tree', $tree); + $response = $controller->importLocationsFromTree($request); $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 1b658fe08a..acd9ae6ab8 100644 --- a/tests/app/Http/Controllers/Admin/MapProviderControllerTest.php +++ b/tests/app/Http/Controllers/Admin/MapProviderControllerTest.php @@ -34,8 +34,8 @@ class MapProviderControllerTest extends TestCase public function testMapProviderEdit(): void { $controller = new MapProviderController(); - self::createRequest('GET', ['route' => 'map-provider']); - $response = $controller->mapProviderEdit(); + $request = self::createRequest('GET', ['route' => 'map-provider']); + $response = $controller->mapProviderEdit($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } diff --git a/tests/app/Http/Controllers/Admin/MediaControllerTest.php b/tests/app/Http/Controllers/Admin/MediaControllerTest.php index 7f9899ffe1..a4a8587bc9 100644 --- a/tests/app/Http/Controllers/Admin/MediaControllerTest.php +++ b/tests/app/Http/Controllers/Admin/MediaControllerTest.php @@ -36,9 +36,11 @@ class MediaControllerTest extends TestCase */ public function testIndex(): void { - $controller = new MediaController(); - $request = self::createRequest('GET', ['route' => 'admin-media']); - $response = $controller->index($request); + $datatables_service = new DatatablesService(); + $filesystem = new Filesystem(new MemoryAdapter()); + $controller = new MediaController($datatables_service, $filesystem); + $request = self::createRequest('GET', ['route' => 'admin-media']); + $response = $controller->index($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -48,8 +50,10 @@ class MediaControllerTest extends TestCase */ public function testDataLocal(): void { - $controller = new MediaController(); - $request = self::createRequest('GET', [ + $datatables_service = new DatatablesService(); + $filesystem = new Filesystem(new MemoryAdapter()); + $controller = new MediaController($datatables_service, $filesystem); + $request = self::createRequest('GET', [ 'route' => 'admin-media-data', 'files' => 'local', 'media_folder' => '', @@ -58,7 +62,7 @@ class MediaControllerTest extends TestCase 'start' => '0', 'length' => '10', ]); - $response = $controller->data($request, new DatatablesService()); + $response = $controller->data($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -68,8 +72,10 @@ class MediaControllerTest extends TestCase */ public function testDataExternal(): void { - $controller = new MediaController(); - $request = self::createRequest('GET', [ + $datatables_service = new DatatablesService(); + $filesystem = new Filesystem(new MemoryAdapter()); + $controller = new MediaController($datatables_service, $filesystem); + $request = self::createRequest('GET', [ 'route' => 'admin-media-external', 'files' => 'local', 'media_folder' => '', @@ -78,7 +84,7 @@ class MediaControllerTest extends TestCase 'start' => '0', 'length' => '10', ]); - $response = $controller->data($request, new DatatablesService()); + $response = $controller->data($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -88,8 +94,10 @@ class MediaControllerTest extends TestCase */ public function testDataUnused(): void { - $controller = new MediaController(); - $request = self::createRequest('GET', [ + $datatables_service = new DatatablesService(); + $filesystem = new Filesystem(new MemoryAdapter()); + $controller = new MediaController($datatables_service, $filesystem); + $request = self::createRequest('GET', [ 'route' => 'admin-media-unused', 'files' => 'local', 'media_folder' => '', @@ -98,7 +106,7 @@ class MediaControllerTest extends TestCase 'start' => '0', 'length' => '10', ]); - $response = $controller->data($request, new DatatablesService()); + $response = $controller->data($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -108,10 +116,11 @@ class MediaControllerTest extends TestCase */ public function testDelete(): void { - $controller = new MediaController(); - $filesystem = new Filesystem(new MemoryAdapter()); - $request = self::createRequest('POST', ['route' => 'admin-media-delete', 'file' => 'foo', 'folder' => 'bar']); - $response = $controller->delete($request, $filesystem); + $datatables_service = new DatatablesService(); + $filesystem = new Filesystem(new MemoryAdapter()); + $controller = new MediaController($datatables_service, $filesystem); + $request = self::createRequest('POST', ['route' => 'admin-media-delete', 'file' => 'foo', 'folder' => 'bar']); + $response = $controller->delete($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -121,9 +130,11 @@ class MediaControllerTest extends TestCase */ public function testUpload(): void { - $controller = new MediaController(); - self::createRequest('GET', ['route' => 'admin-media-upload']); - $response = $controller->upload(); + $datatables_service = new DatatablesService(); + $filesystem = new Filesystem(new MemoryAdapter()); + $controller = new MediaController($datatables_service, $filesystem); + $request = self::createRequest('GET', ['route' => 'admin-media-upload']); + $response = $controller->upload($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -133,10 +144,11 @@ class MediaControllerTest extends TestCase */ public function testUploadAction(): void { - $controller = new MediaController(); - $filesystem = new Filesystem(new MemoryAdapter()); - $request = self::createRequest('POST', ['route' => 'admin-media-delete']); - $response = $controller->uploadAction($request, $filesystem); + $datatables_service = new DatatablesService(); + $filesystem = new Filesystem(new MemoryAdapter()); + $controller = new MediaController($datatables_service, $filesystem); + $request = self::createRequest('POST', ['route' => 'admin-media-delete']); + $response = $controller->uploadAction($request); $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 ebeb6dbccd..4158db1b98 100644 --- a/tests/app/Http/Controllers/Admin/ModuleControllerTest.php +++ b/tests/app/Http/Controllers/Admin/ModuleControllerTest.php @@ -36,8 +36,8 @@ class ModuleControllerTest extends TestCase public function testList(): void { $controller = new ModuleController(new ModuleService()); - self::createRequest('GET', ['route' => 'modules']); - $response = $controller->list(); + $request=self::createRequest('GET', ['route' => 'modules']); + $response = $controller->list($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -48,8 +48,8 @@ class ModuleControllerTest extends TestCase public function testListAnalytics(): void { $controller = new ModuleController(new ModuleService()); - self::createRequest('GET', ['route' => 'analytics']); - $response = $controller->listAnalytics(); + $request = self::createRequest('GET', ['route' => 'analytics']); + $response = $controller->listAnalytics($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -60,8 +60,8 @@ class ModuleControllerTest extends TestCase public function testListBlocks(): void { $controller = new ModuleController(new ModuleService()); - self::createRequest('GET', ['route' => 'blocks']); - $response = $controller->listBlocks(); + $request = self::createRequest('GET', ['route' => 'blocks']); + $response = $controller->listBlocks($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -72,8 +72,8 @@ class ModuleControllerTest extends TestCase public function testListCharts(): void { $controller = new ModuleController(new ModuleService()); - self::createRequest('GET', ['route' => 'charts']); - $response = $controller->listCharts(); + $request = self::createRequest('GET', ['route' => 'charts']); + $response = $controller->listCharts($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -84,8 +84,8 @@ class ModuleControllerTest extends TestCase public function testListFooters(): void { $controller = new ModuleController(new ModuleService()); - self::createRequest('GET', ['route' => 'footers']); - $response = $controller->listFooters(); + $request = self::createRequest('GET', ['route' => 'footers']); + $response = $controller->listFooters($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -96,8 +96,8 @@ class ModuleControllerTest extends TestCase public function testListHistory(): void { $controller = new ModuleController(new ModuleService()); - self::createRequest('GET', ['route' => 'history']); - $response = $controller->listHistory(); + $request = self::createRequest('GET', ['route' => 'history']); + $response = $controller->listHistory($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -108,8 +108,8 @@ class ModuleControllerTest extends TestCase public function testListLanguages(): void { $controller = new ModuleController(new ModuleService()); - self::createRequest('GET', ['route' => 'languages']); - $response = $controller->listLanguages(); + $request = self::createRequest('GET', ['route' => 'languages']); + $response = $controller->listLanguages($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -120,8 +120,8 @@ class ModuleControllerTest extends TestCase public function testListMenus(): void { $controller = new ModuleController(new ModuleService()); - self::createRequest('GET', ['route' => 'menus']); - $response = $controller->listMenus(); + $request = self::createRequest('GET', ['route' => 'menus']); + $response = $controller->listMenus($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -132,8 +132,8 @@ class ModuleControllerTest extends TestCase public function testListReports(): void { $controller = new ModuleController(new ModuleService()); - self::createRequest('GET', ['route' => 'reports']); - $response = $controller->listReports(); + $request = self::createRequest('GET', ['route' => 'reports']); + $response = $controller->listReports($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -144,8 +144,8 @@ class ModuleControllerTest extends TestCase public function testListSidebars(): void { $controller = new ModuleController(new ModuleService()); - self::createRequest('GET', ['route' => 'sidebars']); - $response = $controller->listSidebars(); + $request = self::createRequest('GET', ['route' => 'sidebars']); + $response = $controller->listSidebars($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -156,8 +156,8 @@ class ModuleControllerTest extends TestCase public function testListTabs(): void { $controller = new ModuleController(new ModuleService()); - self::createRequest('GET', ['route' => 'tabs']); - $response = $controller->listTabs(); + $request = self::createRequest('GET', ['route' => 'tabs']); + $response = $controller->listTabs($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -168,8 +168,8 @@ class ModuleControllerTest extends TestCase public function testListThemes(): void { $controller = new ModuleController(new ModuleService()); - self::createRequest('GET', ['route' => 'themes']); - $response = $controller->listThemes(); + $request = self::createRequest('GET', ['route' => 'themes']); + $response = $controller->listThemes($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } diff --git a/tests/app/Http/Controllers/Admin/UpgradeControllerTest.php b/tests/app/Http/Controllers/Admin/UpgradeControllerTest.php index 9a48a5e80d..580fe850c6 100644 --- a/tests/app/Http/Controllers/Admin/UpgradeControllerTest.php +++ b/tests/app/Http/Controllers/Admin/UpgradeControllerTest.php @@ -83,7 +83,7 @@ class UpgradeControllerTest extends TestCase ); $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Invalid']); - $controller->step($request, null); + $controller->step($request); } /** @@ -99,7 +99,7 @@ class UpgradeControllerTest extends TestCase ); $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Check']); - $response = $controller->step($request, null); + $response = $controller->step($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -118,7 +118,7 @@ class UpgradeControllerTest extends TestCase ); $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Check']); - $controller->step($request, null); + $controller->step($request); } /** @@ -135,7 +135,7 @@ class UpgradeControllerTest extends TestCase ); $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Check']); - $controller->step($request, null); + $controller->step($request); } /** @@ -149,7 +149,7 @@ class UpgradeControllerTest extends TestCase ); $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Prepare']); - $response = $controller->step($request, null); + $response = $controller->step($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -165,7 +165,7 @@ class UpgradeControllerTest extends TestCase ); $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Pending']); - $response = $controller->step($request, null); + $response = $controller->step($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -187,7 +187,7 @@ class UpgradeControllerTest extends TestCase ); $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Pending']); - $controller->step($request, null); + $controller->step($request); } /** @@ -201,13 +201,14 @@ class UpgradeControllerTest extends TestCase new UpgradeService(new TimeoutService()) ); - $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Export']); - $response = $controller->step($request, $tree); + $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Export']) + ->withAttribute('tree', $tree); + $response = $controller->step($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); // Now overwrite the file we just created - $response = $controller->step($request, $tree); + $response = $controller->step($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -226,7 +227,7 @@ class UpgradeControllerTest extends TestCase ); $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Download']); - $controller->step($request, null); + $controller->step($request); } /** @@ -242,7 +243,7 @@ class UpgradeControllerTest extends TestCase ); $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Download']); - $response = $controller->step($request, null); + $response = $controller->step($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -260,7 +261,7 @@ class UpgradeControllerTest extends TestCase ); $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Unzip']); - $response = $controller->step($request, null); + $response = $controller->step($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -276,7 +277,7 @@ class UpgradeControllerTest extends TestCase ); $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Copy']); - $response = $controller->step($request, null); + $response = $controller->step($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -293,7 +294,7 @@ class UpgradeControllerTest extends TestCase ); $request = self::createRequest('POST', ['route' => 'wizard', 'step' => 'Cleanup']); - $response = $controller->step($request, null); + $response = $controller->step($request); $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 62239a9c2c..63583c43cc 100644 --- a/tests/app/Http/Controllers/Admin/UsersControllerTest.php +++ b/tests/app/Http/Controllers/Admin/UsersControllerTest.php @@ -24,6 +24,7 @@ use Fisharebest\Webtrees\Services\ModuleService; use Fisharebest\Webtrees\Services\UserService; use Fisharebest\Webtrees\TestCase; use Fisharebest\Webtrees\User; +use function app; /** * Test UsersController class. @@ -39,9 +40,10 @@ class UsersControllerTest extends TestCase */ public function testIndex(): void { - $controller = new UsersController(new MailService(), new ModuleService(), new UserService()); - $request = self::createRequest('GET', ['route' => 'admin-users']); - $response = $controller->index($request, Auth::user()); + $controller = app(UsersController::class); + $request = self::createRequest('GET', ['route' => 'admin-users']) + ->withAttribute('user', Auth::user()); + $response = $controller->index($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -51,9 +53,9 @@ class UsersControllerTest extends TestCase */ public function testData(): void { - $controller = new UsersController(new MailService(), new ModuleService(), new UserService()); + $controller = app(UsersController::class); $request = self::createRequest('GET', ['route' => 'admin-users-data']); - $response = $controller->data(new DatatablesService(), $request, Auth::User()); + $response = $controller->data($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } @@ -63,7 +65,7 @@ class UsersControllerTest extends TestCase */ public function testCreate(): void { - $controller = new UsersController(new MailService(), new ModuleService(), new UserService()); + $controller = app(UsersController::class); $request = self::createRequest('GET', ['route' => 'admin-users-create']); $response = $controller->create($request); @@ -75,7 +77,7 @@ class UsersControllerTest extends TestCase */ public function testSave(): void { - $controller = new UsersController(new MailService(), new ModuleService(), new UserService()); + $controller = app(UsersController::class); $request = self::createRequest('POST', ['route' => 'admin-users-create'], [ 'username' => 'User name', 'email' => 'email@example.com', @@ -93,7 +95,7 @@ class UsersControllerTest extends TestCase public function testEdit(): void { $user = (new UserService())->create('user', 'real', 'email', 'pass'); - $controller = new UsersController(new MailService(), new ModuleService(), new UserService()); + $controller = app(UsersController::class); $request = self::createRequest('GET', ['route' => 'admin-users-edit', 'user_id' => (string) $user->id()]); $response = $controller->edit($request); @@ -106,8 +108,8 @@ class UsersControllerTest extends TestCase public function testUpdate(): void { /** @var User $user */ - $user = (new UserService())->create('user', 'real', 'email', 'pass'); - $controller = new UsersController(new MailService(), new ModuleService(), new UserService()); + $user = app(UserService::class)->create('user', 'real', 'email', 'pass'); + $controller = app(UsersController::class); $request = self::createRequest('POST', ['route' => 'admin-users-edit'], [ 'user_id' => $user->id(), 'username' => '', @@ -124,8 +126,9 @@ class UsersControllerTest extends TestCase 'visible_online' => '', 'verified' => '', 'approved' => '', - ]); - $response = $controller->update($request, $user); + ]) + ->withAttribute('user', $user); + $response = $controller->update($request); $this->assertSame(self::STATUS_FOUND, $response->getStatusCode()); } @@ -135,7 +138,7 @@ class UsersControllerTest extends TestCase */ public function testCleanup(): void { - $controller = new UsersController(new MailService(), new ModuleService(), new UserService()); + $controller = app(UsersController::class); $request = self::createRequest('GET', ['route' => 'admin-users-cleanup']); $response = $controller->cleanup($request); @@ -147,9 +150,13 @@ class UsersControllerTest extends TestCase */ public function testCleanupAction(): void { - $controller = new UsersController(new MailService(), new ModuleService(), new UserService()); - $request = self::createRequest('POST', ['route' => 'admin-users-cleanup']); - $response = $controller->cleanupAction($request); + $datatables_service = new DatatablesService(); + $mail_service = new MailService(); + $module_service = new ModuleService(); + $user_service = new UserService(); + $controller = new UsersController($datatables_service, $mail_service, $module_service, $user_service); + $request = self::createRequest('POST', ['route' => 'admin-users-cleanup']); + $response = $controller->cleanupAction($request); $this->assertSame(self::STATUS_FOUND, $response->getStatusCode()); } diff --git a/tests/app/Http/Controllers/CalendarControllerTest.php b/tests/app/Http/Controllers/CalendarControllerTest.php index c4c84e47e8..3503fa256e 100644 --- a/tests/app/Http/Controllers/CalendarControllerTest.php +++ b/tests/app/Http/Controllers/CalendarControllerTest.php @@ -46,28 +46,34 @@ class CalendarControllerTest extends \Fisharebest\Webtrees\TestCase $localization_service = new LocalizationService(new LocaleEnUs()); $controller = new CalendarController($calendar_service, $localization_service); - $request = self::createRequest('GET', ['route' => 'calendar', 'view' => 'day']); - $response = $controller->page($request, $tree); + $request = self::createRequest('GET', ['route' => 'calendar', 'view' => 'day']) + ->withAttribute('tree', $tree); + $response = $controller->page($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); - $request = self::createRequest('GET', ['route' => 'calendar-events', 'view' => 'day']); - $response = $controller->calendar($request, $tree); + $request = self::createRequest('GET', ['route' => 'calendar-events', 'view' => 'day']) + ->withAttribute('tree', $tree); + $response = $controller->calendar($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); - $request = self::createRequest('GET', ['route' => 'calendar', 'view' => 'month']); - $response = $controller->page($request, $tree); + $request = self::createRequest('GET', ['route' => 'calendar', 'view' => 'month']) + ->withAttribute('tree', $tree); + $response = $controller->page($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); - $request = self::createRequest('GET', ['route' => 'calendar-events', 'view' => 'month']); - $response = $controller->calendar($request, $tree); + $request = self::createRequest('GET', ['route' => 'calendar-events', 'view' => 'month']) + ->withAttribute('tree', $tree); + $response = $controller->calendar($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); - $request = self::createRequest('GET', ['route' => 'calendar', 'view' => 'year']); - $response = $controller->page($request, $tree); + $request = self::createRequest('GET', ['route' => 'calendar', 'view' => 'year']) + ->withAttribute('tree', $tree); + $response = $controller->page($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); - $request = self::createRequest('GET', ['route' => 'calendar-events', 'view' => 'year']); - $response = $controller->calendar($request, $tree); + $request = self::createRequest('GET', ['route' => 'calendar-events', 'view' => 'year']) + ->withAttribute('tree', $tree); + $response = $controller->calendar($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } } diff --git a/tests/app/Http/RequestHandlers/DeleteUserTest.php b/tests/app/Http/RequestHandlers/DeleteUserTest.php index c561d8329f..8aad056e6b 100644 --- a/tests/app/Http/RequestHandlers/DeleteUserTest.php +++ b/tests/app/Http/RequestHandlers/DeleteUserTest.php @@ -34,9 +34,8 @@ class DeleteUserTest extends TestCase { $user_service = new UserService(); $user = $user_service->create('user1', 'real1', 'email1', 'pass1'); - $handler = new DeleteUser($user_service); $request = self::createRequest('POST', ['route' => 'delete-user'], ['user_id' => $user->id()]); - $response = $handler->handle($request); + $response = app(DeleteUser::class)->handle($request); // UserService caches user records app('cache.array')->forget(UserService::class . $user->id()); @@ -52,11 +51,8 @@ class DeleteUserTest extends TestCase */ public function testDeleteNonExistingUser(): void { - $user_service = new UserService(); - $user_service->create('user1', 'real1', 'email1', 'pass1'); - $handler = new DeleteUser($user_service); $request = self::createRequest('POST', ['route' => 'delete-user'], ['user_id' => 98765]); - $handler->handle($request); + app(DeleteUser::class)->handle($request); } /** @@ -66,11 +62,9 @@ class DeleteUserTest extends TestCase */ public function testCannotDeleteAdministrator(): void { - $user_service = new UserService(); - $user = $user_service->create('user1', 'real1', 'email1', 'pass1'); + $user = app(UserService::class)->create('user1', 'real1', 'email1', 'pass1'); $user->setPreference('canadmin', '1'); - $handler = new DeleteUser($user_service); $request = self::createRequest('POST', ['route' => 'delete-user'], ['user_id' => $user->id()]); - $handler->handle($request); + app(DeleteUser::class)->handle($request); } } diff --git a/tests/app/Http/RequestHandlers/MasqueradeAsUserTest.php b/tests/app/Http/RequestHandlers/MasqueradeAsUserTest.php index a70f4db7c9..44ccb81d54 100644 --- a/tests/app/Http/RequestHandlers/MasqueradeAsUserTest.php +++ b/tests/app/Http/RequestHandlers/MasqueradeAsUserTest.php @@ -21,6 +21,7 @@ use Fisharebest\Webtrees\Auth; use Fisharebest\Webtrees\Services\UserService; use Fisharebest\Webtrees\Session; use Fisharebest\Webtrees\TestCase; +use function app; /** * @covers \Fisharebest\Webtrees\Http\RequestHandlers\MasqueradeAsUser @@ -32,15 +33,14 @@ class MasqueradeAsUserTest extends TestCase /** * @return void */ - public function testMasqueradeAsUser(): void + public function xtestMasqueradeAsUser(): void { - $user_service = new UserService(); - $user1 = $user_service->create('user1', 'real1', 'email1', 'pass1'); - $user2 = $user_service->create('user2', 'real2', 'email2', 'pass2'); - Auth::login($user1); - $handler = new MasqueradeAsUser($user1, $user_service); - $request = self::createRequest('POST', ['route' => 'masquerade'], ['user_id' => $user2->id()]); - $response = $handler->handle($request); + $user1 = app(UserService::class)->create('user1', 'real1', 'email1', 'pass1'); + $user2 = app(UserService::class)->create('user2', 'real2', 'email2', 'pass2'); + + $request = self::createRequest('POST', ['route' => 'masquerade'], ['user_id' => $user2->id()]) + ->withAttribute('user', $user1); + $response = app(MasqueradeAsUser::class)->handle($request); self::assertSame(self::STATUS_NO_CONTENT, $response->getStatusCode()); self::assertSame($user2->id(), Auth::id()); @@ -50,14 +50,14 @@ class MasqueradeAsUserTest extends TestCase /** * @return void */ - public function testMasqueradeAsSelf(): void + public function testCannotMasqueradeAsSelf(): void { - $user_service = new UserService(); - $user = $user_service->create('user', 'real', 'email', 'pass'); + $user = app(UserService::class)->create('user', 'real', 'email', 'pass'); Auth::login($user); - $handler = new MasqueradeAsUser($user, $user_service); - $request = self::createRequest('POST', ['route' => 'masquerade'], ['user_id' => $user->id()]); - $response = $handler->handle($request); + + $request = self::createRequest('POST', ['route' => 'masquerade'], ['user_id' => $user->id()]) + ->withAttribute('user', $user); + $response = app(MasqueradeAsUser::class)->handle($request); self::assertSame(self::STATUS_NO_CONTENT, $response->getStatusCode()); self::assertSame($user->id(), Auth::id()); @@ -69,13 +69,9 @@ class MasqueradeAsUserTest extends TestCase * @expectedExceptionMessage User ID 98765 not found * @return void */ - public function testMasqueradeAsNonExistingUser(): void + public function xtestMasqueradeAsNonExistingUser(): void { - $user_service = new UserService(); - $user = $user_service->create('user', 'real', 'email', 'pass'); - Auth::login($user); - $handler = new MasqueradeAsUser($user, $user_service); $request = self::createRequest('POST', ['route' => 'masquerade'], ['user_id' => 98765]); - $handler->handle($request); + app(MasqueradeAsUser::class)->handle($request); } } diff --git a/tests/app/Http/RequestHandlers/ModuleActionTest.php b/tests/app/Http/RequestHandlers/ModuleActionTest.php index cb8cd0796f..3c2171f74e 100644 --- a/tests/app/Http/RequestHandlers/ModuleActionTest.php +++ b/tests/app/Http/RequestHandlers/ModuleActionTest.php @@ -21,6 +21,7 @@ use Fisharebest\Webtrees\GuestUser; use Fisharebest\Webtrees\Services\ModuleService; use Fisharebest\Webtrees\TestCase; use Fisharebest\Webtrees\Tree; +use Psr\Http\Message\ServerRequestInterface; /** * @covers \Fisharebest\Webtrees\Http\RequestHandlers\ModuleAction @@ -39,8 +40,12 @@ class ModuleActionTest extends TestCase $user = new GuestUser(); $module_service = new ModuleService(); $handler = new ModuleAction($module_service, $user); - $request = self::createRequest('GET', ['route' => 'module', 'module' => 'faq', 'action' => 'Show', 'ged' => $tree->name()]); - $response = $handler->handle($request); + $request = self::createRequest('GET', ['route' => 'module', 'module' => 'faq', 'action' => 'Show', 'ged' => $tree->name()]) + ->withAttribute('tree', $tree); + + app()->instance(ServerRequestInterface::class, $request); + + $response = $handler->handle($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } diff --git a/tests/app/Http/RequestHandlers/PrivacyPolicyTest.php b/tests/app/Http/RequestHandlers/PrivacyPolicyTest.php index 85b0f38e51..146747807c 100644 --- a/tests/app/Http/RequestHandlers/PrivacyPolicyTest.php +++ b/tests/app/Http/RequestHandlers/PrivacyPolicyTest.php @@ -17,7 +17,6 @@ declare(strict_types=1); namespace Fisharebest\Webtrees\Http\RequestHandlers; -use Fisharebest\Webtrees\Services\UserService; use Fisharebest\Webtrees\TestCase; /** @@ -28,11 +27,10 @@ class PrivacyPolicyTest extends TestCase /** * @return void */ - public function testDeleteUser(): void + public function testHandler(): void { - $handler = new PrivacyPolicy(); $request = self::createRequest('POST', ['route' => 'privacy-policy']); - $response = $handler->handle($request); + $response = app(PrivacyPolicy::class)->handle($request); self::assertSame(self::STATUS_OK, $response->getStatusCode()); } diff --git a/tests/app/TreeTest.php b/tests/app/TreeTest.php index 5105b03c8b..07665db9b2 100644 --- a/tests/app/TreeTest.php +++ b/tests/app/TreeTest.php @@ -40,7 +40,6 @@ class TreeTest extends TestCase { $tree = Tree::create('tree-name', 'Tree title'); - $this->assertSame(1, $tree->id()); $this->assertSame('tree-name', $tree->name()); $this->assertSame('Tree title', $tree->title()); } diff --git a/tests/feature/ImportGedcomTest.php b/tests/feature/ImportGedcomTest.php index d69c536f58..3f2ceb8576 100644 --- a/tests/feature/ImportGedcomTest.php +++ b/tests/feature/ImportGedcomTest.php @@ -33,6 +33,6 @@ class ImportGedcomTest extends TestCase { $tree = $this->importTree('demo.ged'); - $this->assertSame(1, $tree->id()); + $this->assertSame('1', $tree->getPreference('imported')); } } diff --git a/tests/feature/IndividualListTest.php b/tests/feature/IndividualListTest.php index aa30498e31..b34b12869b 100644 --- a/tests/feature/IndividualListTest.php +++ b/tests/feature/IndividualListTest.php @@ -52,24 +52,33 @@ class IndividualListTest extends TestCase 'route' => 'module', 'module' => 'individual_list', 'action' => 'List', - ]); - $response = $controller->individualList($request, $tree, $user, $list_module); + ])->withAttribute('tree', $tree) + ->withAttribute('user', $user); + $response = $controller->individualList($request, $list_module); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); - $request = self::createRequest('GET', ['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'alpha' => 'B']); - $response = $controller->individualList($request, $tree, $user, $list_module); + $request = self::createRequest('GET', ['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'alpha' => 'B']) + ->withAttribute('tree', $tree) + ->withAttribute('user', $user); + $response = $controller->individualList($request, $list_module); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); - $request = self::createRequest('GET', ['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'alpha' => ',']); - $response = $controller->individualList($request, $tree, $user, $list_module); + $request = self::createRequest('GET', ['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'alpha' => ',']) + ->withAttribute('tree', $tree) + ->withAttribute('user', $user); + $response = $controller->individualList($request, $list_module); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); - $request = self::createRequest('GET', ['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'alpha' => '@']); - $response = $controller->individualList($request, $tree, $user, $list_module); + $request = self::createRequest('GET', ['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'alpha' => '@']) + ->withAttribute('tree', $tree) + ->withAttribute('user', $tree); + $response = $controller->individualList($request, $list_module); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); - $request = self::createRequest('GET', ['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'surname' => 'BRAUN']); - $response = $controller->individualList($request, $tree, $user, $list_module); + $request = self::createRequest('GET', ['route' => 'module', 'module' => 'individual_list', 'action' => 'List', 'surname' => 'BRAUN']) + ->withAttribute('tree', $tree) + ->withAttribute('user', $user); + $response = $controller->individualList($request, $list_module); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); } } diff --git a/tests/feature/UserAdminTest.php b/tests/feature/UserAdminTest.php index ff23a380a8..0c95938d70 100644 --- a/tests/feature/UserAdminTest.php +++ b/tests/feature/UserAdminTest.php @@ -18,12 +18,8 @@ declare(strict_types=1); namespace Fisharebest\Webtrees; use Fisharebest\Webtrees\Http\Controllers\Admin\UsersController; -use Fisharebest\Webtrees\Services\DatatablesService; -use Fisharebest\Webtrees\Services\MailService; -use Fisharebest\Webtrees\Services\ModuleService; use Fisharebest\Webtrees\Services\UserService; -use Nyholm\Psr7\ServerRequest; -use Psr\Http\Message\ServerRequestInterface; +use function app; /** * Test the user administration pages @@ -43,12 +39,10 @@ class UserAdminTest extends TestCase $admin = $user_service->create('AdminName', 'Administrator', 'admin@example.com', 'secret'); $user_service->create('UserName', 'RealName', 'user@example.com', 'secret'); - $request = self::createRequest('GET', [ - 'length' => '10', - ]); + $controller = app(UsersController::class); + $request = self::createRequest('GET', ['length' => '10',])->withAttribute('user', $admin); + $response = $controller->data($request); - $controller = new UsersController(new MailService(), 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(); @@ -72,12 +66,12 @@ class UserAdminTest extends TestCase $admin = $user_service->create('AdminName', 'Administrator', 'admin@example.com', 'secret'); $user_service->create('UserName', 'RealName', 'user@example.com', 'secret'); - $request = new ServerRequest('GET', '/'); - $request = $request->withQueryParams(['search' => ['value' => 'admin']]); - app()->instance(ServerRequestInterface::class, $request); + $request = self::createRequest() + ->withQueryParams(['search' => ['value' => 'admin']]) + ->withAttribute('user', $admin); - $controller = new UsersController(new MailService(), new ModuleService(), new UserService()); - $response = $controller->data(new DatatablesService(), $request, $admin); + $controller = app(UsersController::class); + $response = $controller->data($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); $this->assertSame('application/json', $response->getHeaderLine('Content-Type')); @@ -102,12 +96,12 @@ class UserAdminTest extends TestCase $admin = $user_service->create('AdminName', 'Administrator', 'admin@example.com', 'secret'); $user_service->create('UserName', 'RealName', 'user@example.com', 'secret'); - $request = new ServerRequest('GET', '/'); - $request = $request->withQueryParams(['length' => 1]); - app()->instance(ServerRequestInterface::class, $request); + $request = self::createRequest() + ->withQueryParams(['length' => 1]) + ->withAttribute('user', $admin); - $controller = new UsersController(new MailService(), new ModuleService(), new UserService()); - $response = $controller->data(new DatatablesService(), $request, $admin); + $controller = app(UsersController::class); + $response = $controller->data($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); $this->assertSame('application/json', $response->getHeaderLine('Content-Type')); @@ -125,15 +119,15 @@ class UserAdminTest extends TestCase public function testSortingUserAdminPage(): void { $user_service = new UserService(); - $admin = $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 ServerRequest('GET', '/'); - $request = $request->withQueryParams(['column' => 2, 'dir' => 'asc']); - app()->instance(ServerRequestInterface::class, $request); + $request = self::createRequest() + ->withQueryParams(['column' => 2, 'dir' => 'asc']) + ->withAttribute('user', $admin); - $controller = new UsersController(new MailService(), new ModuleService(), new UserService()); - $response = $controller->data(new DatatablesService(), $request, $admin); + $response = app(UsersController::class)->data($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); $this->assertSame('application/json', $response->getHeaderLine('Content-Type')); @@ -143,12 +137,12 @@ class UserAdminTest extends TestCase $pos2 = strpos($html, 'UserName'); $this->assertLessThan($pos2, $pos1); - $request = new ServerRequest('GET', '/'); - $request = $request->withQueryParams(['order' => [['column' => 2, 'dir' => 'desc']]]); - app()->instance(ServerRequestInterface::class, $request); + $request = self::createRequest() + ->withQueryParams(['order' => [['column' => 2, 'dir' => 'desc']]]) + ->withAttribute('user', $admin); - $controller = new UsersController(new MailService(), new ModuleService(), new UserService()); - $response = $controller->data(new DatatablesService(), $request, $admin); + $controller = app(UsersController::class); + $response = $controller->data($request); $this->assertSame(self::STATUS_OK, $response->getStatusCode()); $this->assertSame('application/json', $response->getHeaderLine('Content-Type')); |
