summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Controllers/HomeController.php24
-rw-r--r--tests/Unit/Controllers/HomeControllerTest.php30
2 files changed, 53 insertions, 1 deletions
diff --git a/src/Controllers/HomeController.php b/src/Controllers/HomeController.php
index 809593ce..e3989f81 100644
--- a/src/Controllers/HomeController.php
+++ b/src/Controllers/HomeController.php
@@ -2,15 +2,37 @@
namespace Engelsystem\Controllers;
+use Engelsystem\Config\Config;
+use Engelsystem\Helpers\Authenticator;
use Engelsystem\Http\Exceptions\HttpTemporaryRedirect;
class HomeController extends BaseController
{
/**
+ * @var Authenticator
+ */
+ protected $auth;
+
+ /**
+ * @var Config
+ */
+ protected $config;
+
+ /**
+ * @param Authenticator $auth
+ * @param Config $config
+ */
+ public function __construct(Authenticator $auth, Config $config)
+ {
+ $this->auth = $auth;
+ $this->config = $config;
+ }
+
+ /**
* @throws HttpTemporaryRedirect
*/
public function index()
{
- throw new HttpTemporaryRedirect(auth()->user() ? config('home_site') : 'login');
+ throw new HttpTemporaryRedirect($this->auth->user() ? $this->config->get('home_site') : 'login');
}
}
diff --git a/tests/Unit/Controllers/HomeControllerTest.php b/tests/Unit/Controllers/HomeControllerTest.php
new file mode 100644
index 00000000..56bb1995
--- /dev/null
+++ b/tests/Unit/Controllers/HomeControllerTest.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Engelsystem\Test\Unit\Controllers;
+
+use Engelsystem\Config\Config;
+use Engelsystem\Controllers\HomeController;
+use Engelsystem\Helpers\Authenticator;
+use Engelsystem\Http\Exceptions\HttpTemporaryRedirect;
+use Engelsystem\Test\Unit\TestCase;
+use PHPUnit\Framework\MockObject\MockObject;
+
+class HomeControllerTest extends TestCase
+{
+ /**
+ * @covers \Engelsystem\Controllers\HomeController::__construct
+ * @covers \Engelsystem\Controllers\HomeController::index
+ */
+ public function testIndex()
+ {
+ $config = new Config(['home_site' => '/foo']);
+ /** @var Authenticator|MockObject $auth */
+ $auth = $this->createMock(Authenticator::class);
+ $this->setExpects($auth, 'user', null, true);
+
+ $controller = new HomeController($auth, $config);
+
+ $this->expectException(HttpTemporaryRedirect::class);
+ $controller->index();
+ }
+}