push(Request::createFromGlobals()); $loader = new ArrayLoader(['weather.twig' => '[Hello, weather!]']); $twig = new Environment($loader); $widgets = new Widgets($requestStack, $queueprocessor, $twig); $response = new Response('foo'); $snippet = (new SnippetWidget()) ->setTemplate('*foo*') ->setTarget(Target::END_OF_BODY); $widgets->registerWidget($snippet); $widgets->processQueue($response); $this->assertSame("foo*foo*\n", $response->getContent()); } public function testRenderWidget(): void { $queueprocessor = new QueueProcessor(new HtmlInjector()); $requestStack = new RequestStack(); $requestStack->push(Request::createFromGlobals()); $loader = new ArrayLoader(['weather.twig' => '[Hello, weather!]']); $twig = new Environment($loader); $widgets = new Widgets($requestStack, $queueprocessor, $twig); $weatherWidget = new WeatherWidget(); $weatherWidget->setTemplate('weather.twig'); $widgets->registerWidget($weatherWidget); $this->assertSame( '
[Hello, weather!]
', $widgets->renderWidgetByName('Weather Widget') ); } public function testRenderWidgetWithExtraParameters(): void { $queueprocessor = new QueueProcessor(new HtmlInjector()); $requestStack = new RequestStack(); $requestStack->push(Request::createFromGlobals()); $loader = new ArrayLoader(['weather.twig' => '[Hello, {{ foo }}!]']); $twig = new Environment($loader); $widgets = new Widgets($requestStack, $queueprocessor, $twig); $weatherWidget = new WeatherWidget(); $weatherWidget->setTemplate('weather.twig'); $widgets->registerWidget($weatherWidget); $this->assertSame( '
[Hello, Bar!]
', $widgets->renderWidgetByName('Weather Widget', ['foo' => 'Bar']) ); } public function testProcessHeaderWidget(): void { $queueprocessor = new QueueProcessor(new HtmlInjector()); $requestStack = new RequestStack(); $requestStack->push(Request::createFromGlobals()); $loader = new ArrayLoader(['weather.twig' => '[Hello, weather!]']); $twig = new Environment($loader); $widgets = new Widgets($requestStack, $queueprocessor, $twig); $response = new Response('foo'); $headerWidget = new BoltHeaderWidget(); $headerWidget->setZone(RequestZone::NOWHERE); $widgets->registerWidget($headerWidget); $widgets->processQueue($response); $this->assertSame('Bolt', $response->headers->get('X-Powered-By')); } }