7e3dc0ba98
If a PHP is raised while executing plugin hook, Shaarli will display an error instead of rendering the error page (or just ending in fatal error for default hooks). Also added phpErrorHandler which is handled differently that regular errorHandler by Slim.:
86 lines
3.2 KiB
PHP
86 lines
3.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Shaarli\Container;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
use Shaarli\Bookmark\BookmarkServiceInterface;
|
|
use Shaarli\Config\ConfigManager;
|
|
use Shaarli\Feed\FeedBuilder;
|
|
use Shaarli\Formatter\FormatterFactory;
|
|
use Shaarli\Front\Controller\Visitor\ErrorController;
|
|
use Shaarli\History;
|
|
use Shaarli\Http\HttpAccess;
|
|
use Shaarli\Netscape\NetscapeBookmarkUtils;
|
|
use Shaarli\Plugin\PluginManager;
|
|
use Shaarli\Render\PageBuilder;
|
|
use Shaarli\Render\PageCacheManager;
|
|
use Shaarli\Security\CookieManager;
|
|
use Shaarli\Security\LoginManager;
|
|
use Shaarli\Security\SessionManager;
|
|
use Shaarli\Thumbnailer;
|
|
use Shaarli\Updater\Updater;
|
|
use Slim\Http\Environment;
|
|
|
|
class ContainerBuilderTest extends TestCase
|
|
{
|
|
/** @var ConfigManager */
|
|
protected $conf;
|
|
|
|
/** @var SessionManager */
|
|
protected $sessionManager;
|
|
|
|
/** @var LoginManager */
|
|
protected $loginManager;
|
|
|
|
/** @var ContainerBuilder */
|
|
protected $containerBuilder;
|
|
|
|
/** @var CookieManager */
|
|
protected $cookieManager;
|
|
|
|
public function setUp(): void
|
|
{
|
|
$this->conf = new ConfigManager('tests/utils/config/configJson');
|
|
$this->sessionManager = $this->createMock(SessionManager::class);
|
|
$this->cookieManager = $this->createMock(CookieManager::class);
|
|
|
|
$this->loginManager = $this->createMock(LoginManager::class);
|
|
$this->loginManager->method('isLoggedIn')->willReturn(true);
|
|
|
|
$this->containerBuilder = new ContainerBuilder(
|
|
$this->conf,
|
|
$this->sessionManager,
|
|
$this->cookieManager,
|
|
$this->loginManager
|
|
);
|
|
}
|
|
|
|
public function testBuildContainer(): void
|
|
{
|
|
$container = $this->containerBuilder->build();
|
|
|
|
static::assertInstanceOf(BookmarkServiceInterface::class, $container->bookmarkService);
|
|
static::assertInstanceOf(CookieManager::class, $container->cookieManager);
|
|
static::assertInstanceOf(ConfigManager::class, $container->conf);
|
|
static::assertInstanceOf(ErrorController::class, $container->errorHandler);
|
|
static::assertInstanceOf(Environment::class, $container->environment);
|
|
static::assertInstanceOf(FeedBuilder::class, $container->feedBuilder);
|
|
static::assertInstanceOf(FormatterFactory::class, $container->formatterFactory);
|
|
static::assertInstanceOf(History::class, $container->history);
|
|
static::assertInstanceOf(HttpAccess::class, $container->httpAccess);
|
|
static::assertInstanceOf(LoginManager::class, $container->loginManager);
|
|
static::assertInstanceOf(NetscapeBookmarkUtils::class, $container->netscapeBookmarkUtils);
|
|
static::assertInstanceOf(PageBuilder::class, $container->pageBuilder);
|
|
static::assertInstanceOf(PageCacheManager::class, $container->pageCacheManager);
|
|
static::assertInstanceOf(ErrorController::class, $container->phpErrorHandler);
|
|
static::assertInstanceOf(PluginManager::class, $container->pluginManager);
|
|
static::assertInstanceOf(SessionManager::class, $container->sessionManager);
|
|
static::assertInstanceOf(Thumbnailer::class, $container->thumbnailer);
|
|
static::assertInstanceOf(Updater::class, $container->updater);
|
|
|
|
// Set by the middleware
|
|
static::assertNull($container->basePath);
|
|
}
|
|
}
|