public function __construct(App $app, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, ApiResponse $response, array $server, array $parameters = [])
{
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
+
+ $this->app = $app;
}
protected function delete()
--- /dev/null
+<?php
+
+namespace Friendica\Test\Util;
+
+use Friendica\App;
+
+/**
+ * Making the App class overridable for specific situations
+ *
+ * @see App
+ */
+class AppDouble extends App
+{
+ /** @var bool Marks/Overwrites if the user is currently logged in */
+ protected $isLoggedIn = false;
+
+ /**
+ * Manually overwrite the "isLoggedIn" behavior
+ *
+ * @param bool $isLoggedIn
+ */
+ public function setIsLoggedIn(bool $isLoggedIn)
+ {
+ $this->isLoggedIn = $isLoggedIn;
+ }
+
+ public function isLoggedIn()
+ {
+ return $this->isLoggedIn;
+ }
+}
namespace Friendica\Test\src\Module\Api;
+use Friendica\App;
use Friendica\Core\Addon;
use Friendica\Core\Hook;
use Friendica\Database\Database;
use Friendica\DI;
use Friendica\Security\Authentication;
use Friendica\Test\FixtureTest;
+use Friendica\Test\Util\AppDouble;
use Friendica\Test\Util\AuthenticationDouble;
abstract class ApiTest extends FixtureTest
parent::setUp(); // TODO: Change the autogenerated stub
$this->dice = $this->dice
- ->addRule(Authentication::class, ['instanceOf' => AuthenticationDouble::class, 'shared' => true]);
+ ->addRule(Authentication::class, ['instanceOf' => AuthenticationDouble::class, 'shared' => true])
+ ->addRule(App::class, ['instanceOf' => AppDouble::class, 'shared' => true]);
DI::init($this->dice);
+ // Manual overwrite for API testrs :-)
+ DI::app()->setIsLoggedIn(true);
+
$this->installAuthTest();
}