diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/BoldListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/BoldListener.php index 4de9008..0290ffc 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/BoldListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/BoldListener.php @@ -7,7 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ConvertsChildren; use Libero\ViewsBundle\Views\OptionalTemplateListener; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -21,7 +21,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : TemplateView { return $view->withArgument('text', $this->convertChildren($object, $view->getContext())); } diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontArticleTitleContentHeaderListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontArticleTitleContentHeaderListener.php index 5406afd..3a36b20 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontArticleTitleContentHeaderListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontArticleTitleContentHeaderListener.php @@ -6,6 +6,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\SimplifiedViewConverterListener; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -21,7 +22,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : View { $title = $object->ownerDocument->xpath() ->firstOf('jats:article-meta/jats:title-group/jats:article-title', $object); diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontArticleTypeContentMetaListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontArticleTypeContentMetaListener.php index f647bc2..e3f8676 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontArticleTypeContentMetaListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontArticleTypeContentMetaListener.php @@ -7,6 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ContextAwareTranslation; use Libero\ViewsBundle\Views\SimplifiedViewConverterListener; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Symfony\Contracts\Translation\TranslatorInterface; use function sprintf; @@ -24,7 +25,7 @@ public function __construct(TranslatorInterface $translator, array $translationK $this->translationKeys = $translationKeys; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : View { $items = $view->getArgument('items') ?? []; diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontContentHeaderMetaListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontContentHeaderMetaListener.php index 64ea934..f21378d 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontContentHeaderMetaListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontContentHeaderMetaListener.php @@ -7,6 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ContextAwareTranslation; use Libero\ViewsBundle\Views\SimplifiedViewConverterListener; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Libero\ViewsBundle\Views\ViewConverter; use Symfony\Contracts\Translation\TranslatorInterface; @@ -25,7 +26,7 @@ public function __construct(ViewConverter $converter, TranslatorInterface $trans $this->translator = $translator; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : View { $meta = $this->converter ->convert($object, '@LiberoPatterns/content-meta.html.twig', $view->getContext()) diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontDisplayChannelContentMetaListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontDisplayChannelContentMetaListener.php index 042d6cc..49ec614 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontDisplayChannelContentMetaListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontDisplayChannelContentMetaListener.php @@ -7,6 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ContextAwareTranslation; use Libero\ViewsBundle\Views\SimplifiedViewConverterListener; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Libero\ViewsBundle\Views\ViewConverter; use Symfony\Contracts\Translation\TranslatorInterface; @@ -28,7 +29,7 @@ public function __construct(ViewConverter $converter, TranslatorInterface $trans $this->translator = $translator; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : View { $items = $view->getArgument('items') ?? []; diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontItemTagsListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontItemTagsListener.php index 2842d53..b9b5e93 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontItemTagsListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontItemTagsListener.php @@ -8,6 +8,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ConvertsLists; use Libero\ViewsBundle\Views\SimplifiedViewConverterListener; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Libero\ViewsBundle\Views\ViewConverter; use function array_filter; @@ -26,7 +27,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : View { /** @var DOMNodeList $keywordGroups */ $keywordGroups = $object->ownerDocument->xpath() @@ -40,7 +41,7 @@ protected function handle(Element $object, View $view) : View array_filter( array_map( function (View $tagList) : array { - return $tagList->getArguments(); + return $tagList instanceof TemplateView ? $tagList->getArguments() : []; }, $this->convertList($keywordGroups, '@LiberoPatterns/tag-list.html.twig', $view->getContext()) ) diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontSubjectGroupContentHeaderListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontSubjectGroupContentHeaderListener.php index 20a7f8a..e1fa3d4 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontSubjectGroupContentHeaderListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontSubjectGroupContentHeaderListener.php @@ -9,6 +9,7 @@ use Libero\ViewsBundle\Views\ContextAwareTranslation; use Libero\ViewsBundle\Views\ConvertsLists; use Libero\ViewsBundle\Views\SimplifiedViewConverterListener; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Libero\ViewsBundle\Views\ViewConverter; use Symfony\Contracts\Translation\TranslatorInterface; @@ -28,7 +29,7 @@ public function __construct(ViewConverter $converter, TranslatorInterface $trans $this->translator = $translator; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : View { /** @var DOMNodeList $subjects */ $subjects = $object->ownerDocument->xpath()->evaluate( @@ -50,7 +51,7 @@ protected function handle(Element $object, View $view) : View ), ], 'items' => array_map( - function (View $link) : array { + function (TemplateView $link) : array { return ['content' => $link->getArguments()]; }, $this->convertList($subjects, '@LiberoPatterns/link.html.twig', $view->getContext()) diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/HeadingListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/HeadingListener.php index 8da6a53..545124a 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/HeadingListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/HeadingListener.php @@ -7,6 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ConvertsChildren; use Libero\ViewsBundle\Views\SimplifiedViewConverterListener; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -22,7 +23,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : View { if ($view->hasContext('level')) { $view = $view->withArgument('level', $view->getContext('level')); diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/ItalicListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/ItalicListener.php index 2112d1c..171851c 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/ItalicListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/ItalicListener.php @@ -7,7 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ConvertsChildren; use Libero\ViewsBundle\Views\OptionalTemplateListener; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -21,7 +21,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : TemplateView { return $view->withArgument('text', $this->convertChildren($object, $view->getContext())); } diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/KeywordGroupTagListListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/KeywordGroupTagListListener.php index 53f025c..4d9d005 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/KeywordGroupTagListListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/KeywordGroupTagListListener.php @@ -9,6 +9,7 @@ use Libero\ViewsBundle\Views\ContextAwareTranslation; use Libero\ViewsBundle\Views\ConvertsLists; use Libero\ViewsBundle\Views\SimplifiedViewConverterListener; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Libero\ViewsBundle\Views\ViewConverter; use Symfony\Contracts\Translation\TranslatorInterface; @@ -31,7 +32,7 @@ public function __construct(ViewConverter $converter, TranslatorInterface $trans $this->translationKeys = $translationKeys; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : View { $title = $object->ownerDocument->xpath() ->firstOf('jats:title', $object); @@ -46,8 +47,13 @@ protected function handle(Element $object, View $view) : View $type = $object->getAttribute('kwd-group-type'); if ($title instanceof Element) { - $title = $this->converter->convert($title, '@LiberoPatterns/heading.html.twig', $view->getContext()) - ->getArguments(); + $title = $this->converter->convert($title, '@LiberoPatterns/heading.html.twig', $view->getContext()); + + if (!$title instanceof TemplateView) { + return $view; + } + + $title = $title->getArguments(); } elseif (!isset($this->translationKeys[$type])) { return $view; } else { @@ -60,7 +66,7 @@ protected function handle(Element $object, View $view) : View 'list', [ 'items' => array_map( - function (View $link) : array { + function (TemplateView $link) : array { return ['content' => $link->getArguments()]; }, $this->convertList($keywords, '@LiberoPatterns/link.html.twig', $view->getContext()) diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/LinkListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/LinkListener.php index 9ff86bd..cd66a7b 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/LinkListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/LinkListener.php @@ -7,6 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ConvertsChildren; use Libero\ViewsBundle\Views\SimplifiedViewConverterListener; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -24,7 +25,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : View { return $view->withArgument('text', $this->convertChildren($object, $view->getContext())); } diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/ParagraphListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/ParagraphListener.php index 2197ead..b40c36d 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/ParagraphListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/ParagraphListener.php @@ -7,7 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ConvertsChildren; use Libero\ViewsBundle\Views\OptionalTemplateListener; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -23,7 +23,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : TemplateView { return $view->withArgument('text', $this->convertChildren($object, $view->getContext())); } diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/SectionListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/SectionListener.php index 40473f3..229e10e 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/SectionListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/SectionListener.php @@ -9,7 +9,7 @@ use FluentDOM\DOM\Node\NonDocumentTypeChildNode; use Libero\ViewsBundle\Views\ConvertsChildren; use Libero\ViewsBundle\Views\OptionalTemplateListener; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\ViewConverter; use function array_map; use function iterator_to_array; @@ -27,7 +27,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : TemplateView { if (!$view->hasContext('level')) { $view = $view->withContext(['level' => 1]); @@ -54,7 +54,7 @@ protected function handle(Element $object, View $view) : View return $view->withArgument( 'content', array_map( - function (NonDocumentTypeChildNode $child) use ($childContext) : View { + function (NonDocumentTypeChildNode $child) use ($childContext) : TemplateView { return $this->converter->convert($child, null, $childContext); }, iterator_to_array($children) diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/SubListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/SubListener.php index 2dc2b6f..82b20bf 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/SubListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/SubListener.php @@ -7,7 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ConvertsChildren; use Libero\ViewsBundle\Views\OptionalTemplateListener; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -21,7 +21,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : TemplateView { return $view->withArgument('text', $this->convertChildren($object, $view->getContext())); } diff --git a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/SupListener.php b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/SupListener.php index c2b4bed..21fc2f9 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/BuildView/SupListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/BuildView/SupListener.php @@ -7,7 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ConvertsChildren; use Libero\ViewsBundle\Views\OptionalTemplateListener; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -21,7 +21,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : TemplateView { return $view->withArgument('text', $this->convertChildren($object, $view->getContext())); } diff --git a/vendor-extra/JatsContentBundle/src/EventListener/ItemTagsListener.php b/vendor-extra/JatsContentBundle/src/EventListener/ItemTagsListener.php index 53481fd..f29e84d 100644 --- a/vendor-extra/JatsContentBundle/src/EventListener/ItemTagsListener.php +++ b/vendor-extra/JatsContentBundle/src/EventListener/ItemTagsListener.php @@ -7,6 +7,7 @@ use FluentDOM\DOM\Element; use Libero\LiberoPageBundle\Event\CreatePagePartEvent; use Libero\ViewsBundle\Views\ConvertsLists; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\ViewConverter; use function count; use const Libero\LiberoPatternsBundle\CONTENT_GRID_PRIMARY; @@ -36,7 +37,7 @@ public function onCreatePagePart(CreatePagePartEvent $event) : void $itemTags = $this->converter->convert($front, '@LiberoPatterns/item-tags.html.twig', $context); - if (0 === count($itemTags->getArguments())) { + if (!$itemTags instanceof TemplateView || 0 === count($itemTags->getArguments())) { return; } diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BodyListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BodyListenerTest.php index b40660a..722ea53 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BodyListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BodyListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BodyListener; use Libero\LiberoPageBundle\Event\CreatePagePartEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\PageTestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; @@ -101,8 +101,8 @@ public function it_adds_the_body_content(string $xml, array $context, array $exp $this->assertEquals( array_map( - function (array $block) : View { - return new View(null, $block); + function (array $block) : TemplateView { + return new TemplateView(null, $block); }, $expectedBody ), diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/BoldListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/BoldListenerTest.php index 4a5e3b8..8bd616e 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/BoldListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/BoldListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\BoldListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -26,10 +26,11 @@ public function it_does_nothing_if_it_is_not_a_jats_bold_element(string $xml) : $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View(null)); + $event = new BuildViewEvent($element, new TemplateView(null)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -50,10 +51,11 @@ public function it_does_nothing_if_is_not_the_bold_template() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -68,10 +70,11 @@ public function it_does_nothing_if_there_is_already_text_set() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View(null, ['text' => 'bar'])); + $event = new BuildViewEvent($element, new TemplateView(null, ['text' => 'bar'])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertSame(['text' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -94,23 +97,24 @@ public function it_sets_the_template_and_text_argument() : void $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View(null, [], $context)); + $event = new BuildViewEvent($element, new TemplateView(null, [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/bold.html.twig', $view->getTemplate()); $this->assertEquals( [ 'text' => [ - new View( + new TemplateView( null, ['node' => '/jats:bold/text()[1]', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/jats:bold/jats:italic', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/jats:bold/text()[2]', 'template' => null, 'context' => ['qux' => 'quux']] ), diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontArticleTitleContentHeaderListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontArticleTitleContentHeaderListenerTest.php index 8eb8136..ab93310 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontArticleTitleContentHeaderListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontArticleTitleContentHeaderListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\FrontArticleTitleContentHeaderListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -26,10 +26,11 @@ public function it_does_nothing_if_it_is_not_a_jats_front_element(string $xml) : $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-header.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/content-header.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -61,10 +62,11 @@ public function it_does_nothing_if_is_not_the_content_header_template() : void XML ); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -79,10 +81,11 @@ public function it_does_nothing_if_there_is_no_title_group() : void $element = $this->loadElement(''); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-header.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/content-header.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -110,11 +113,12 @@ public function it_does_nothing_if_there_is_already_a_content_title_set() : void $event = new BuildViewEvent( $element, - new View('@LiberoPatterns/content-header.html.twig', ['contentTitle' => 'bar']) + new TemplateView('@LiberoPatterns/content-header.html.twig', ['contentTitle' => 'bar']) ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertSame(['contentTitle' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -142,10 +146,14 @@ public function it_sets_the_text_argument() : void $context = ['bar' => 'baz']; - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-header.html.twig', [], $context)); + $event = new BuildViewEvent( + $element, + new TemplateView('@LiberoPatterns/content-header.html.twig', [], $context) + ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertEquals( [ diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontArticleTypeContentMetaListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontArticleTypeContentMetaListenerTest.php index 06f43c0..fd1ea90 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontArticleTypeContentMetaListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontArticleTypeContentMetaListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\FrontArticleTypeContentMetaListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use Symfony\Component\Translation\IdentityTranslator; use Symfony\Component\Translation\Loader\ArrayLoader; @@ -27,10 +27,11 @@ public function it_does_nothing_if_it_is_not_a_jats_front_element(string $xml) : $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-meta.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/content-meta.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-meta.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -61,10 +62,11 @@ public function it_does_nothing_if_is_not_the_content_meta_template() : void XML )->firstElementChild; - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -87,10 +89,11 @@ public function it_does_nothing_if_it_does_have_have_the_article_as_a_parent() : XML ); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-meta.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/content-meta.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-meta.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -115,10 +118,11 @@ public function it_does_nothing_if_there_is_no_article_type() : void XML )->firstElementChild; - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-meta.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/content-meta.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-meta.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -145,7 +149,7 @@ public function it_does_nothing_if_there_is_already_a_type_set() : void $event = new BuildViewEvent( $element, - new View( + new TemplateView( '@LiberoPatterns/content-meta.html.twig', ['items' => ['type' => 'foo']] ) @@ -153,6 +157,7 @@ public function it_does_nothing_if_there_is_already_a_type_set() : void $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-meta.html.twig', $view->getTemplate()); $this->assertSame(['items' => ['type' => 'foo']], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -179,10 +184,11 @@ public function it_does_nothing_if_the_type_is_unknown() : void $context = ['bar' => 'baz']; - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-meta.html.twig', [], $context)); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/content-meta.html.twig', [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-meta.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertSame(['bar' => 'baz'], $view->getContext()); @@ -220,11 +226,12 @@ public function it_sets_the_text_argument() : void $event = new BuildViewEvent( $element, - new View('@LiberoPatterns/content-meta.html.twig', ['items' => ['foo' => 'bar']], $context) + new TemplateView('@LiberoPatterns/content-meta.html.twig', ['items' => ['foo' => 'bar']], $context) ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-meta.html.twig', $view->getTemplate()); $this->assertEquals( [ diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontContentHeaderMetaListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontContentHeaderMetaListenerTest.php index 715442f..fc6715c 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontContentHeaderMetaListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontContentHeaderMetaListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\FrontContentHeaderMetaListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use Symfony\Component\Translation\IdentityTranslator; use Symfony\Component\Translation\Loader\ArrayLoader; @@ -29,10 +29,11 @@ public function it_does_nothing_if_it_is_not_a_jats_front_element(string $xml) : $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-header.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/content-header.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -58,10 +59,11 @@ public function it_does_nothing_if_is_not_the_content_header_template() : void XML ); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -83,11 +85,12 @@ public function it_does_nothing_if_there_is_already_meta_set() : void $event = new BuildViewEvent( $element, - new View('@LiberoPatterns/content-header.html.twig', ['meta' => ['foo']]) + new TemplateView('@LiberoPatterns/content-header.html.twig', ['meta' => ['foo']]) ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertSame(['meta' => ['foo']], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -118,10 +121,14 @@ public function it_sets_the_text_argument() : void $context = ['lang' => 'es']; - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-header.html.twig', [], $context)); + $event = new BuildViewEvent( + $element, + new TemplateView('@LiberoPatterns/content-header.html.twig', [], $context) + ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertEquals( [ diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontDisplayChannelContentMetaListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontDisplayChannelContentMetaListenerTest.php index 0f92aef..a152930 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontDisplayChannelContentMetaListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontDisplayChannelContentMetaListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\FrontDisplayChannelContentMetaListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use Symfony\Component\Translation\IdentityTranslator; use Symfony\Component\Translation\Loader\ArrayLoader; @@ -32,10 +32,11 @@ public function it_does_nothing_if_it_is_not_a_jats_front_element(string $xml) : $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-meta.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/content-meta.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-meta.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -72,10 +73,11 @@ public function it_does_nothing_if_is_not_the_content_meta_template() : void XML ); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -104,10 +106,11 @@ public function it_does_nothing_if_there_is_no_display_channel() : void XML ); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-meta.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/content-meta.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-meta.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -140,11 +143,12 @@ public function it_does_nothing_if_there_is_already_a_type_set() : void $event = new BuildViewEvent( $element, - new View('@LiberoPatterns/content-meta.html.twig', ['items' => ['type' => 'foo']]) + new TemplateView('@LiberoPatterns/content-meta.html.twig', ['items' => ['type' => 'foo']]) ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-meta.html.twig', $view->getTemplate()); $this->assertSame(['items' => ['type' => 'foo']], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -189,11 +193,12 @@ public function it_sets_the_text_argument() : void $event = new BuildViewEvent( $element, - new View('@LiberoPatterns/content-meta.html.twig', ['items' => ['foo' => 'bar']], $context) + new TemplateView('@LiberoPatterns/content-meta.html.twig', ['items' => ['foo' => 'bar']], $context) ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-meta.html.twig', $view->getTemplate()); $this->assertEquals( [ diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontItemTagsListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontItemTagsListenerTest.php index 282c78d..7cdb605 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontItemTagsListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontItemTagsListenerTest.php @@ -8,7 +8,7 @@ use FluentDOM\DOM\Node\NonDocumentTypeChildNode; use Libero\JatsContentBundle\EventListener\BuildView\FrontItemTagsListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -28,10 +28,11 @@ public function it_does_nothing_if_it_is_not_a_jats_front_element(string $xml) : $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/item-tags.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/item-tags.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/item-tags.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -63,10 +64,11 @@ public function it_does_nothing_if_is_not_the_item_tags_template() : void XML ); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -81,10 +83,11 @@ public function it_does_nothing_if_there_is_no_kwd_group() : void $element = $this->loadElement(''); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/item-tags.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/item-tags.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/item-tags.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -110,10 +113,14 @@ public function it_does_nothing_if_there_is_already_groups_set() : void XML ); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/item-tags.html.twig', ['groups' => 'bar'])); + $event = new BuildViewEvent( + $element, + new TemplateView('@LiberoPatterns/item-tags.html.twig', ['groups' => 'bar']) + ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/item-tags.html.twig', $view->getTemplate()); $this->assertSame(['groups' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -153,10 +160,11 @@ function (NonDocumentTypeChildNode $node, ?string $template = null, array $conte ); $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View('@LiberoPatterns/item-tags.html.twig', [], $context)); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/item-tags.html.twig', [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/item-tags.html.twig', $view->getTemplate()); $this->assertEquals( [ @@ -212,10 +220,11 @@ function (NonDocumentTypeChildNode $node, ?string $template = null, array $conte ); $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View('@LiberoPatterns/item-tags.html.twig', [], $context)); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/item-tags.html.twig', [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/item-tags.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertSame(['qux' => 'quux'], $view->getContext()); diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontSubjectGroupContentHeaderListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontSubjectGroupContentHeaderListenerTest.php index 80a2e8c..d974aa1 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontSubjectGroupContentHeaderListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/FrontSubjectGroupContentHeaderListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\FrontSubjectGroupContentHeaderListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use Symfony\Component\Translation\IdentityTranslator; use Symfony\Component\Translation\Loader\ArrayLoader; @@ -32,10 +32,11 @@ public function it_does_nothing_if_it_is_not_a_jats_front_element(string $xml) : $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-header.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/content-header.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -72,10 +73,11 @@ public function it_does_nothing_if_is_not_the_content_header_template() : void XML ); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -106,10 +108,11 @@ public function it_does_nothing_if_there_are_no_subject_groups() : void XML ); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-header.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/content-header.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -142,11 +145,12 @@ public function it_does_nothing_if_there_is_already_categories_set() : void $event = new BuildViewEvent( $element, - new View('@LiberoPatterns/content-header.html.twig', ['categories' => 'bar']) + new TemplateView('@LiberoPatterns/content-header.html.twig', ['categories' => 'bar']) ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertSame(['categories' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -188,10 +192,14 @@ public function it_sets_the_categories_argument() : void ); $context = ['lang' => 'es']; - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-header.html.twig', [], $context)); + $event = new BuildViewEvent( + $element, + new TemplateView('@LiberoPatterns/content-header.html.twig', [], $context) + ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertEquals( [ diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/HeadingListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/HeadingListenerTest.php index 29fb9e4..5bbd575 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/HeadingListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/HeadingListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\HeadingListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -25,10 +25,11 @@ public function it_does_nothing_if_is_not_the_heading_template() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -43,10 +44,11 @@ public function it_does_nothing_if_there_is_already_text_set() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/heading.html.twig', ['text' => 'bar'])); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/heading.html.twig', ['text' => 'bar'])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/heading.html.twig', $view->getTemplate()); $this->assertSame(['text' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -63,10 +65,11 @@ public function it_sets_the_text_argument(string $xml, array $expectedText) : vo $element = $this->loadElement($xml); $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View('@LiberoPatterns/heading.html.twig', [], $context)); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/heading.html.twig', [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/heading.html.twig', $view->getTemplate()); $this->assertEquals(['text' => $expectedText], $view->getArguments()); $this->assertSame(['qux' => 'quux'], $view->getContext()); @@ -82,7 +85,7 @@ public function textProvider() : iterable XML , [ - new View( + new TemplateView( null, [ 'node' => '/jats:article-title/text()[1]', @@ -90,7 +93,7 @@ public function textProvider() : iterable 'context' => ['qux' => 'quux'], ] ), - new View( + new TemplateView( null, [ 'node' => '/jats:article-title/jats:italic', @@ -98,7 +101,7 @@ public function textProvider() : iterable 'context' => ['qux' => 'quux'], ] ), - new View( + new TemplateView( null, [ 'node' => '/jats:article-title/text()[2]', @@ -117,7 +120,7 @@ public function textProvider() : iterable XML , [ - new View( + new TemplateView( null, [ 'node' => '/jats:title/text()[1]', @@ -125,7 +128,7 @@ public function textProvider() : iterable 'context' => ['qux' => 'quux'], ] ), - new View( + new TemplateView( null, [ 'node' => '/jats:title/jats:italic', @@ -133,7 +136,7 @@ public function textProvider() : iterable 'context' => ['qux' => 'quux'], ] ), - new View( + new TemplateView( null, [ 'node' => '/jats:title/text()[2]', @@ -154,10 +157,11 @@ public function it_does_nothing_if_it_is_something_else() : void $element = $this->loadElement('

foo

'); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/heading.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/heading.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/heading.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/ItalicListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/ItalicListenerTest.php index 27ac1d1..d0925ce 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/ItalicListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/ItalicListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\ItalicListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -26,10 +26,11 @@ public function it_does_nothing_if_it_is_not_a_jats_italic_element(string $xml) $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View(null)); + $event = new BuildViewEvent($element, new TemplateView(null)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -50,10 +51,11 @@ public function it_does_nothing_if_is_not_the_italic_template() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -68,10 +70,11 @@ public function it_does_nothing_if_there_is_already_text_set() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View(null, ['text' => 'bar'])); + $event = new BuildViewEvent($element, new TemplateView(null, ['text' => 'bar'])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertSame(['text' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -94,23 +97,24 @@ public function it_sets_the_template_and_text_argument() : void $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View(null, [], $context)); + $event = new BuildViewEvent($element, new TemplateView(null, [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/italic.html.twig', $view->getTemplate()); $this->assertEquals( [ 'text' => [ - new View( + new TemplateView( null, ['node' => '/jats:italic/text()[1]', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/jats:italic/jats:bold', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/jats:italic/text()[2]', 'template' => null, 'context' => ['qux' => 'quux']] ), diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/KeywordGroupTagListListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/KeywordGroupTagListListenerTest.php index 15fee25..1a9f849 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/KeywordGroupTagListListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/KeywordGroupTagListListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\KeywordGroupTagListListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use Symfony\Component\Translation\IdentityTranslator; use Symfony\Component\Translation\Loader\ArrayLoader; @@ -29,10 +29,11 @@ public function it_does_nothing_if_it_is_not_a_jats_kwd_group_element(string $xm $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/tag-list.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/tag-list.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/tag-list.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -62,10 +63,11 @@ public function it_does_nothing_if_is_not_the_tag_list_template() : void XML ); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -80,10 +82,11 @@ public function it_does_nothing_if_there_is_no_kwds() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/tag-list.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/tag-list.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/tag-list.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -107,10 +110,14 @@ public function it_does_nothing_if_there_is_already_a_list_set() : void XML ); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/tag-list.html.twig', ['list' => 'qux'])); + $event = new BuildViewEvent( + $element, + new TemplateView('@LiberoPatterns/tag-list.html.twig', ['list' => 'qux']) + ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/tag-list.html.twig', $view->getTemplate()); $this->assertSame(['list' => 'qux'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -141,10 +148,11 @@ public function it_sets_the_title_and_list_arguments_for_a_group_with_a_title_an $element = $this->loadElement($xml); $context = ['lang' => 'es']; - $event = new BuildViewEvent($element, new View('@LiberoPatterns/tag-list.html.twig', [], $context)); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/tag-list.html.twig', [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/tag-list.html.twig', $view->getTemplate()); $this->assertEquals($expectedArguments, $view->getArguments()); $this->assertSame(['lang' => 'es'], $view->getContext()); diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/LinkListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/LinkListenerTest.php index b3a2754..104cfe7 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/LinkListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/LinkListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\LinkListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -25,10 +25,11 @@ public function it_does_nothing_if_is_not_the_link_template() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -43,10 +44,11 @@ public function it_does_nothing_if_there_is_already_text_set() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View(null, ['text' => 'bar'])); + $event = new BuildViewEvent($element, new TemplateView(null, ['text' => 'bar'])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertSame(['text' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -63,10 +65,11 @@ public function it_sets_the_template_and_text_argument(string $xml, array $expec $element = $this->loadElement($xml); $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View('@LiberoPatterns/link.html.twig', [], $context)); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/link.html.twig', [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/link.html.twig', $view->getTemplate()); $this->assertEquals(['text' => $expectedText], $view->getArguments()); $this->assertSame(['qux' => 'quux'], $view->getContext()); @@ -82,7 +85,7 @@ public function textProvider() : iterable XML , [ - new View( + new TemplateView( null, [ 'node' => '/jats:kwd/text()[1]', @@ -90,7 +93,7 @@ public function textProvider() : iterable 'context' => ['qux' => 'quux'], ] ), - new View( + new TemplateView( null, [ 'node' => '/jats:kwd/jats:italic', @@ -98,7 +101,7 @@ public function textProvider() : iterable 'context' => ['qux' => 'quux'], ] ), - new View( + new TemplateView( null, [ 'node' => '/jats:kwd/text()[2]', @@ -117,7 +120,7 @@ public function textProvider() : iterable XML , [ - new View( + new TemplateView( null, [ 'node' => '/jats:subject/text()[1]', @@ -125,7 +128,7 @@ public function textProvider() : iterable 'context' => ['qux' => 'quux'], ] ), - new View( + new TemplateView( null, [ 'node' => '/jats:subject/jats:italic', @@ -133,7 +136,7 @@ public function textProvider() : iterable 'context' => ['qux' => 'quux'], ] ), - new View( + new TemplateView( null, [ 'node' => '/jats:subject/text()[2]', @@ -154,10 +157,11 @@ public function it_does_nothing_if_it_is_something_else() : void $element = $this->loadElement('

foo

'); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/link.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/link.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/link.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/ParagraphListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/ParagraphListenerTest.php index 6bc1b15..99844de 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/ParagraphListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/ParagraphListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\ParagraphListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -26,10 +26,11 @@ public function it_does_nothing_if_it_is_not_a_jats_p_element(string $xml) : voi $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View(null)); + $event = new BuildViewEvent($element, new TemplateView(null)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -50,10 +51,11 @@ public function it_does_nothing_if_is_not_the_paragraph_template() : void $element = $this->loadElement('

foo

'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -68,10 +70,11 @@ public function it_does_nothing_if_there_is_already_text_set() : void $element = $this->loadElement('

foo

'); - $event = new BuildViewEvent($element, new View(null, ['text' => 'bar'])); + $event = new BuildViewEvent($element, new TemplateView(null, ['text' => 'bar'])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertSame(['text' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -94,23 +97,24 @@ public function it_sets_the_template_and_text_argument() : void $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View(null, [], $context)); + $event = new BuildViewEvent($element, new TemplateView(null, [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/paragraph.html.twig', $view->getTemplate()); $this->assertEquals( [ 'text' => [ - new View( + new TemplateView( null, ['node' => '/jats:p/text()[1]', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/jats:p/jats:bold', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/jats:p/text()[2]', 'template' => null, 'context' => ['qux' => 'quux']] ), diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/SectionListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/SectionListenerTest.php index c4ef4bc..8f2aae0 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/SectionListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/SectionListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\SectionListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -26,10 +26,11 @@ public function it_does_nothing_if_it_is_not_a_jats_sec_element(string $xml) : v $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View(null)); + $event = new BuildViewEvent($element, new TemplateView(null)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -50,10 +51,11 @@ public function it_does_nothing_if_is_not_the_section_template() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -68,10 +70,11 @@ public function it_does_nothing_if_there_is_already_content_set() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View(null, ['content' => 'bar'])); + $event = new BuildViewEvent($element, new TemplateView(null, ['content' => 'bar'])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertSame(['content' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -87,10 +90,11 @@ public function it_sets_the_heading_and_content_arguments(string $xml, array $ex $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View(null)); + $event = new BuildViewEvent($element, new TemplateView(null)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/section.html.twig', $view->getTemplate()); $this->assertEquals($expectedArguments, $view->getArguments()); $this->assertSame(['level' => 1], $view->getContext()); @@ -108,7 +112,7 @@ public function contentProvider() : iterable , [ 'content' => [ - new View( + new TemplateView( null, [ 'node' => '/jats:sec/jats:p[1]', @@ -116,7 +120,7 @@ public function contentProvider() : iterable 'context' => ['level' => 2], ] ), - new View( + new TemplateView( null, [ 'node' => '/jats:sec/jats:p[2]', @@ -144,7 +148,7 @@ public function contentProvider() : iterable 'context' => ['level' => 1], ], 'content' => [ - new View( + new TemplateView( null, [ 'node' => '/jats:sec/jats:p[1]', @@ -152,7 +156,7 @@ public function contentProvider() : iterable 'context' => ['level' => 2], ] ), - new View( + new TemplateView( null, [ 'node' => '/jats:sec/jats:p[2]', @@ -183,15 +187,16 @@ public function it_uses_the_current_level() : void $context = ['level' => 3]; - $event = new BuildViewEvent($element, new View(null, [], $context)); + $event = new BuildViewEvent($element, new TemplateView(null, [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/section.html.twig', $view->getTemplate()); $this->assertEquals( [ 'content' => [ - new View( + new TemplateView( null, [ 'node' => '/jats:sec/jats:p[1]', @@ -199,7 +204,7 @@ public function it_uses_the_current_level() : void 'context' => ['level' => 4], ] ), - new View( + new TemplateView( null, [ 'node' => '/jats:sec/jats:p[2]', diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/SubListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/SubListenerTest.php index f29e264..f9bec3e 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/SubListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/SubListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\SubListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -26,10 +26,11 @@ public function it_does_nothing_if_it_is_not_a_jats_sub_element(string $xml) : v $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View(null)); + $event = new BuildViewEvent($element, new TemplateView(null)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -50,10 +51,11 @@ public function it_does_nothing_if_is_not_the_sub_template() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -68,10 +70,11 @@ public function it_does_nothing_if_there_is_already_text_set() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View(null, ['text' => 'bar'])); + $event = new BuildViewEvent($element, new TemplateView(null, ['text' => 'bar'])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertSame(['text' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -94,23 +97,24 @@ public function it_sets_the_template_and_text_argument() : void $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View(null, [], $context)); + $event = new BuildViewEvent($element, new TemplateView(null, [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/sub.html.twig', $view->getTemplate()); $this->assertEquals( [ 'text' => [ - new View( + new TemplateView( null, ['node' => '/jats:sub/text()[1]', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/jats:sub/jats:bold', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/jats:sub/text()[2]', 'template' => null, 'context' => ['qux' => 'quux']] ), diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/SupListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/SupListenerTest.php index e403633..a4a8723 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/SupListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/BuildView/SupListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\BuildView\SupListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -26,10 +26,11 @@ public function it_does_nothing_if_it_is_not_a_jats_sup_element(string $xml) : v $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View(null)); + $event = new BuildViewEvent($element, new TemplateView(null)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -50,10 +51,11 @@ public function it_does_nothing_if_is_not_the_sup_template() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -68,10 +70,11 @@ public function it_does_nothing_if_there_is_already_text_set() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View(null, ['text' => 'bar'])); + $event = new BuildViewEvent($element, new TemplateView(null, ['text' => 'bar'])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertSame(['text' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -94,23 +97,24 @@ public function it_sets_the_template_and_text_argument() : void $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View(null, [], $context)); + $event = new BuildViewEvent($element, new TemplateView(null, [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/sup.html.twig', $view->getTemplate()); $this->assertEquals( [ 'text' => [ - new View( + new TemplateView( null, ['node' => '/jats:sup/text()[1]', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/jats:sup/jats:bold', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/jats:sup/text()[2]', 'template' => null, 'context' => ['qux' => 'quux']] ), diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/ContentHeaderListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/ContentHeaderListenerTest.php index d9cbff6..fa799b0 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/ContentHeaderListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/ContentHeaderListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\ContentHeaderListener; use Libero\LiberoPageBundle\Event\CreatePagePartEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\PageTestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; @@ -96,7 +96,7 @@ public function it_adds_a_content_header(string $xml, array $context, array $exp ); $listener->onCreatePagePart($event); - $this->assertEquals([new View(null, $expectedContentHeader)], $event->getContent()); + $this->assertEquals([new TemplateView(null, $expectedContentHeader)], $event->getContent()); } public function pageProvider() : iterable diff --git a/vendor-extra/JatsContentBundle/tests/EventListener/ItemTagsListenerTest.php b/vendor-extra/JatsContentBundle/tests/EventListener/ItemTagsListenerTest.php index e222088..088318f 100644 --- a/vendor-extra/JatsContentBundle/tests/EventListener/ItemTagsListenerTest.php +++ b/vendor-extra/JatsContentBundle/tests/EventListener/ItemTagsListenerTest.php @@ -6,7 +6,7 @@ use Libero\JatsContentBundle\EventListener\ItemTagsListener; use Libero\LiberoPageBundle\Event\CreatePagePartEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\PageTestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; @@ -107,7 +107,7 @@ public function it_adds_item_tags( ); $listener->onCreatePagePart($event); - $this->assertEquals([new View(null, $expectedItemTags)], $event->getContent()); + $this->assertEquals([new TemplateView(null, $expectedItemTags)], $event->getContent()); } public function pageProvider() : iterable diff --git a/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/BoldListener.php b/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/BoldListener.php index 5be72a7..370e482 100644 --- a/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/BoldListener.php +++ b/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/BoldListener.php @@ -7,7 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ConvertsChildren; use Libero\ViewsBundle\Views\OptionalTemplateListener; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -23,7 +23,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : TemplateView { return $view->withArgument('text', $this->convertChildren($object, $view->getContext())); } diff --git a/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/FrontContentHeaderListener.php b/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/FrontContentHeaderListener.php index 21d1aa2..bb8eafc 100644 --- a/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/FrontContentHeaderListener.php +++ b/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/FrontContentHeaderListener.php @@ -6,6 +6,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\SimplifiedViewConverterListener; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -21,7 +22,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : View { $title = $object->ownerDocument->xpath() ->firstOf('libero:title[1]', $object); diff --git a/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/ItalicListener.php b/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/ItalicListener.php index 762cebb..b170eb3 100644 --- a/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/ItalicListener.php +++ b/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/ItalicListener.php @@ -7,7 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ConvertsChildren; use Libero\ViewsBundle\Views\OptionalTemplateListener; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -23,7 +23,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : TemplateView { return $view->withArgument('text', $this->convertChildren($object, $view->getContext())); } diff --git a/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/SubListener.php b/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/SubListener.php index 11f18a0..f88616a 100644 --- a/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/SubListener.php +++ b/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/SubListener.php @@ -7,7 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ConvertsChildren; use Libero\ViewsBundle\Views\OptionalTemplateListener; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -23,7 +23,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : TemplateView { return $view->withArgument('text', $this->convertChildren($object, $view->getContext())); } diff --git a/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/SupListener.php b/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/SupListener.php index c329947..43ad0e9 100644 --- a/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/SupListener.php +++ b/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/SupListener.php @@ -7,7 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ConvertsChildren; use Libero\ViewsBundle\Views\OptionalTemplateListener; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -23,7 +23,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : TemplateView { return $view->withArgument('text', $this->convertChildren($object, $view->getContext())); } diff --git a/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/TitleHeadingListener.php b/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/TitleHeadingListener.php index 0f7d482..81afc2d 100644 --- a/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/TitleHeadingListener.php +++ b/vendor-extra/LiberoContentBundle/src/EventListener/BuildView/TitleHeadingListener.php @@ -7,6 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\ConvertsChildren; use Libero\ViewsBundle\Views\SimplifiedViewConverterListener; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Libero\ViewsBundle\Views\ViewConverter; use function Libero\ViewsBundle\array_has_key; @@ -21,7 +22,7 @@ public function __construct(ViewConverter $converter) $this->converter = $converter; } - protected function handle(Element $object, View $view) : View + protected function handle(Element $object, TemplateView $view) : View { return $view->withArgument('text', $this->convertChildren($object, $view->getContext())); } diff --git a/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/BoldListenerTest.php b/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/BoldListenerTest.php index 4f37e73..882a230 100644 --- a/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/BoldListenerTest.php +++ b/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/BoldListenerTest.php @@ -6,7 +6,7 @@ use Libero\LiberoContentBundle\EventListener\BuildView\BoldListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -26,10 +26,11 @@ public function it_does_nothing_if_it_is_not_a_libero_bold_element(string $xml) $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View(null)); + $event = new BuildViewEvent($element, new TemplateView(null)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -50,10 +51,11 @@ public function it_does_nothing_if_is_not_the_bold_template() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -68,10 +70,11 @@ public function it_does_nothing_if_there_is_already_text_set() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View(null, ['text' => 'bar'])); + $event = new BuildViewEvent($element, new TemplateView(null, ['text' => 'bar'])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertSame(['text' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -94,23 +97,24 @@ public function it_sets_the_template_and_text_argument() : void $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View(null, [], $context)); + $event = new BuildViewEvent($element, new TemplateView(null, [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/bold.html.twig', $view->getTemplate()); $this->assertEquals( [ 'text' => [ - new View( + new TemplateView( null, ['node' => '/libero:bold/text()[1]', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/libero:bold/libero:italic', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/libero:bold/text()[2]', 'template' => null, 'context' => ['qux' => 'quux']] ), diff --git a/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/FrontContentHeaderListenerTest.php b/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/FrontContentHeaderListenerTest.php index 84e28f4..5ff44f5 100644 --- a/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/FrontContentHeaderListenerTest.php +++ b/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/FrontContentHeaderListenerTest.php @@ -6,7 +6,7 @@ use Libero\LiberoContentBundle\EventListener\BuildView\FrontContentHeaderListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -26,10 +26,11 @@ public function it_does_nothing_if_it_is_not_a_libero_front_element(string $xml) $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-header.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/content-header.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -50,10 +51,11 @@ public function it_does_nothing_if_is_not_the_content_header_template() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -68,10 +70,11 @@ public function it_does_nothing_if_there_is_no_title() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-header.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/content-header.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -88,11 +91,12 @@ public function it_does_nothing_if_there_is_already_a_content_title_set() : void $event = new BuildViewEvent( $element, - new View('@LiberoPatterns/content-header.html.twig', ['contentTitle' => 'bar']) + new TemplateView('@LiberoPatterns/content-header.html.twig', ['contentTitle' => 'bar']) ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertSame(['contentTitle' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -115,10 +119,14 @@ public function it_sets_the_text_argument() : void $context = ['bar' => 'baz']; - $event = new BuildViewEvent($element, new View('@LiberoPatterns/content-header.html.twig', [], $context)); + $event = new BuildViewEvent( + $element, + new TemplateView('@LiberoPatterns/content-header.html.twig', [], $context) + ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/content-header.html.twig', $view->getTemplate()); $this->assertEquals( [ diff --git a/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/ItalicListenerTest.php b/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/ItalicListenerTest.php index 551ab8b..10a4574 100644 --- a/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/ItalicListenerTest.php +++ b/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/ItalicListenerTest.php @@ -6,7 +6,7 @@ use Libero\LiberoContentBundle\EventListener\BuildView\ItalicListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -26,10 +26,11 @@ public function it_does_nothing_if_it_is_not_a_libero_italic_element(string $xml $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View(null)); + $event = new BuildViewEvent($element, new TemplateView(null)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -50,10 +51,11 @@ public function it_does_nothing_if_is_not_the_italic_template() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -68,10 +70,11 @@ public function it_does_nothing_if_there_is_already_text_set() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View(null, ['text' => 'bar'])); + $event = new BuildViewEvent($element, new TemplateView(null, ['text' => 'bar'])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertSame(['text' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -94,23 +97,24 @@ public function it_sets_the_template_and_text_argument() : void $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View(null, [], $context)); + $event = new BuildViewEvent($element, new TemplateView(null, [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/italic.html.twig', $view->getTemplate()); $this->assertEquals( [ 'text' => [ - new View( + new TemplateView( null, ['node' => '/libero:italic/text()[1]', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/libero:italic/libero:bold', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/libero:italic/text()[2]', 'template' => null, 'context' => ['qux' => 'quux']] ), diff --git a/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/SubListenerTest.php b/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/SubListenerTest.php index 1e4f23b..60be1e3 100644 --- a/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/SubListenerTest.php +++ b/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/SubListenerTest.php @@ -6,7 +6,7 @@ use Libero\LiberoContentBundle\EventListener\BuildView\SubListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -26,10 +26,11 @@ public function it_does_nothing_if_it_is_not_a_libero_sub_element(string $xml) : $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View(null)); + $event = new BuildViewEvent($element, new TemplateView(null)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -50,10 +51,11 @@ public function it_does_nothing_if_is_not_the_sub_template() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -68,10 +70,11 @@ public function it_does_nothing_if_there_is_already_text_set() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View(null, ['text' => 'bar'])); + $event = new BuildViewEvent($element, new TemplateView(null, ['text' => 'bar'])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertSame(['text' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -94,23 +97,24 @@ public function it_sets_the_template_and_text_argument() : void $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View(null, [], $context)); + $event = new BuildViewEvent($element, new TemplateView(null, [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/sub.html.twig', $view->getTemplate()); $this->assertEquals( [ 'text' => [ - new View( + new TemplateView( null, ['node' => '/libero:sub/text()[1]', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/libero:sub/libero:bold', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/libero:sub/text()[2]', 'template' => null, 'context' => ['qux' => 'quux']] ), diff --git a/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/SupListenerTest.php b/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/SupListenerTest.php index d8a6bd0..f32d0c2 100644 --- a/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/SupListenerTest.php +++ b/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/SupListenerTest.php @@ -6,7 +6,7 @@ use Libero\LiberoContentBundle\EventListener\BuildView\SupListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -26,10 +26,11 @@ public function it_does_nothing_if_it_is_not_a_libero_sup_element(string $xml) : $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View(null)); + $event = new BuildViewEvent($element, new TemplateView(null)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -50,10 +51,11 @@ public function it_does_nothing_if_is_not_the_sup_template() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -68,10 +70,11 @@ public function it_does_nothing_if_there_is_already_text_set() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View(null, ['text' => 'bar'])); + $event = new BuildViewEvent($element, new TemplateView(null, ['text' => 'bar'])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertNull($view->getTemplate()); $this->assertSame(['text' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -94,23 +97,24 @@ public function it_sets_the_template_and_text_argument() : void $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View(null, [], $context)); + $event = new BuildViewEvent($element, new TemplateView(null, [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/sup.html.twig', $view->getTemplate()); $this->assertEquals( [ 'text' => [ - new View( + new TemplateView( null, ['node' => '/libero:sup/text()[1]', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/libero:sup/libero:bold', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/libero:sup/text()[2]', 'template' => null, 'context' => ['qux' => 'quux']] ), diff --git a/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/TitleHeadingListenerTest.php b/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/TitleHeadingListenerTest.php index c8bbacc..9c80d79 100644 --- a/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/TitleHeadingListenerTest.php +++ b/vendor-extra/LiberoContentBundle/tests/EventListener/BuildView/TitleHeadingListenerTest.php @@ -6,7 +6,7 @@ use Libero\LiberoContentBundle\EventListener\BuildView\TitleHeadingListener; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -26,10 +26,11 @@ public function it_does_nothing_if_it_is_not_a_libero_title_element(string $xml) $element = $this->loadElement($xml); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/heading.html.twig')); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/heading.html.twig')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/heading.html.twig', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -50,10 +51,11 @@ public function it_does_nothing_if_is_not_the_heading_template() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('template', $view->getTemplate()); $this->assertEmpty($view->getArguments()); $this->assertEmpty($view->getContext()); @@ -68,10 +70,11 @@ public function it_does_nothing_if_there_is_already_text_set() : void $element = $this->loadElement('foo'); - $event = new BuildViewEvent($element, new View('@LiberoPatterns/heading.html.twig', ['text' => 'bar'])); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/heading.html.twig', ['text' => 'bar'])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/heading.html.twig', $view->getTemplate()); $this->assertSame(['text' => 'bar'], $view->getArguments()); $this->assertEmpty($view->getContext()); @@ -94,23 +97,24 @@ public function it_sets_the_text_argument() : void $context = ['qux' => 'quux']; - $event = new BuildViewEvent($element, new View('@LiberoPatterns/heading.html.twig', [], $context)); + $event = new BuildViewEvent($element, new TemplateView('@LiberoPatterns/heading.html.twig', [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame('@LiberoPatterns/heading.html.twig', $view->getTemplate()); $this->assertEquals( [ 'text' => [ - new View( + new TemplateView( null, ['node' => '/libero:title/text()[1]', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/libero:title/libero:italic', 'template' => null, 'context' => ['qux' => 'quux']] ), - new View( + new TemplateView( null, ['node' => '/libero:title/text()[2]', 'template' => null, 'context' => ['qux' => 'quux']] ), diff --git a/vendor-extra/LiberoContentBundle/tests/EventListener/ContentHeaderListenerTest.php b/vendor-extra/LiberoContentBundle/tests/EventListener/ContentHeaderListenerTest.php index 51fa50a..3c9052d 100644 --- a/vendor-extra/LiberoContentBundle/tests/EventListener/ContentHeaderListenerTest.php +++ b/vendor-extra/LiberoContentBundle/tests/EventListener/ContentHeaderListenerTest.php @@ -6,7 +6,7 @@ use Libero\LiberoContentBundle\EventListener\ContentHeaderListener; use Libero\LiberoPageBundle\Event\CreatePagePartEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\PageTestCase; use tests\Libero\LiberoPageBundle\ViewConvertingTestCase; @@ -89,7 +89,7 @@ public function it_adds_a_content_header(string $xml, array $context, array $exp ); $listener->onCreatePagePart($event); - $this->assertEquals([new View(null, $expectedContentHeader)], $event->getContent()); + $this->assertEquals([new TemplateView(null, $expectedContentHeader)], $event->getContent()); } public function pageProvider() : iterable diff --git a/vendor-extra/LiberoPageBundle/src/Event/CreatePageEvent.php b/vendor-extra/LiberoPageBundle/src/Event/CreatePageEvent.php index 05a2a45..7291caf 100644 --- a/vendor-extra/LiberoPageBundle/src/Event/CreatePageEvent.php +++ b/vendor-extra/LiberoPageBundle/src/Event/CreatePageEvent.php @@ -6,7 +6,7 @@ use FluentDOM\DOM\Document; use InvalidArgumentException; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Symfony\Component\EventDispatcher\Event; use Symfony\Component\HttpFoundation\Request; @@ -35,7 +35,7 @@ public function getContent() : array return $this->content; } - public function setContent(string $area, View $view) : void + public function setContent(string $area, TemplateView $view) : void { $this->content[$area] = $view; } diff --git a/vendor-extra/LiberoPageBundle/src/EventListener/HomepageContentHeaderListener.php b/vendor-extra/LiberoPageBundle/src/EventListener/HomepageContentHeaderListener.php index e10a046..48ccb2a 100644 --- a/vendor-extra/LiberoPageBundle/src/EventListener/HomepageContentHeaderListener.php +++ b/vendor-extra/LiberoPageBundle/src/EventListener/HomepageContentHeaderListener.php @@ -6,7 +6,7 @@ use Libero\LiberoPageBundle\Event\CreatePagePartEvent; use Libero\ViewsBundle\Views\ContextAwareTranslation; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Symfony\Contracts\Translation\TranslatorInterface; final class HomepageContentHeaderListener @@ -27,7 +27,7 @@ public function onCreatePagePart(CreatePagePartEvent $event) : void $context = ['area' => null] + $event->getContext(); $event->addContent( - new View( + new TemplateView( '@LiberoPatterns/content-header.html.twig', ['contentTitle' => ['text' => $this->translate('libero.page.site_name', $context)]], $context diff --git a/vendor-extra/LiberoPageBundle/src/EventListener/MainListener.php b/vendor-extra/LiberoPageBundle/src/EventListener/MainListener.php index c79b55d..5820c82 100644 --- a/vendor-extra/LiberoPageBundle/src/EventListener/MainListener.php +++ b/vendor-extra/LiberoPageBundle/src/EventListener/MainListener.php @@ -6,7 +6,7 @@ use Libero\LiberoPageBundle\Event\CreatePageEvent; use Libero\LiberoPageBundle\Event\CreatePagePartEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use function array_merge; use function count; @@ -39,7 +39,7 @@ public function onCreatePage(CreatePageEvent $event) : void $event->setContent( PAGE_GRID_MAIN, - new View($part->getTemplate(), ['content' => $part->getContent()], $part->getContext()) + new TemplateView($part->getTemplate(), ['content' => $part->getContent()], $part->getContext()) ); } } diff --git a/vendor-extra/LiberoPageBundle/tests/Controller/PageControllerTest.php b/vendor-extra/LiberoPageBundle/tests/Controller/PageControllerTest.php index 1a02e92..c91d0bd 100644 --- a/vendor-extra/LiberoPageBundle/tests/Controller/PageControllerTest.php +++ b/vendor-extra/LiberoPageBundle/tests/Controller/PageControllerTest.php @@ -8,7 +8,7 @@ use Libero\LiberoPageBundle\Event\CreatePageEvent; use Libero\LiberoPageBundle\Event\LoadPageDataEvent; use Libero\LiberoPageBundle\Exception\NoContentSet; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Component\HttpFoundation\Request; @@ -39,7 +39,7 @@ public function it_returns_the_title(Request $request, array $twigContext) : voi $event->setTitle('title'); $event->setContent( 'area', - new View( + new TemplateView( 'template', [ 'content' => $event->getDocument('foo') diff --git a/vendor-extra/LiberoPageBundle/tests/Event/CreatePageEventTest.php b/vendor-extra/LiberoPageBundle/tests/Event/CreatePageEventTest.php index e613360..0db03c9 100644 --- a/vendor-extra/LiberoPageBundle/tests/Event/CreatePageEventTest.php +++ b/vendor-extra/LiberoPageBundle/tests/Event/CreatePageEventTest.php @@ -6,7 +6,7 @@ use InvalidArgumentException; use Libero\LiberoPageBundle\Event\CreatePageEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\Event; use tests\Libero\LiberoPageBundle\PageTestCase; @@ -67,13 +67,13 @@ public function it_has_content() : void $this->assertEmpty($event->getContent()); - $view1 = new View('template', ['foo']); + $view1 = new TemplateView('template', ['foo']); $event->setContent('foo', $view1); - $view2 = new View('template', ['bar']); + $view2 = new TemplateView('template', ['bar']); $event->setContent('bar', $view2); - $view3 = new View('template', ['baz']); + $view3 = new TemplateView('template', ['baz']); $event->setContent('foo', $view3); $this->assertEquals( diff --git a/vendor-extra/LiberoPageBundle/tests/Event/CreatePagePartEventTest.php b/vendor-extra/LiberoPageBundle/tests/Event/CreatePagePartEventTest.php index 1d8e0fc..0ff35ca 100644 --- a/vendor-extra/LiberoPageBundle/tests/Event/CreatePagePartEventTest.php +++ b/vendor-extra/LiberoPageBundle/tests/Event/CreatePagePartEventTest.php @@ -6,7 +6,8 @@ use InvalidArgumentException; use Libero\LiberoPageBundle\Event\CreatePagePartEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\StringView; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\Event; use tests\Libero\LiberoPageBundle\PageTestCase; @@ -55,13 +56,13 @@ public function it_has_content() : void $this->assertEmpty($event->getContent()); - $view1 = new View('template', ['foo']); - $view2 = new View('template', [], ['area' => 'one']); - $view3 = new View('template', [], ['area' => 'one']); - $view4 = new View('template', [], ['area' => 'two']); - $view5 = new View('template', ['bar']); - $view6 = new View('template', [], ['area' => 'one']); - $view7 = new View('template', [], ['area' => 'one']); + $view1 = new TemplateView('template', ['foo']); + $view2 = new TemplateView('template', [], ['area' => 'one']); + $view3 = new TemplateView('template', [], ['area' => 'one']); + $view4 = new TemplateView('template', [], ['area' => 'two']); + $view5 = new StringView('bar'); + $view6 = new TemplateView('template', [], ['area' => 'one']); + $view7 = new TemplateView('template', [], ['area' => 'one']); $event->addContent($view1, $view2); $event->addContent($view3, $view4); $event->addContent($view5, $view6); diff --git a/vendor-extra/LiberoPageBundle/tests/EventListener/MainListenerTest.php b/vendor-extra/LiberoPageBundle/tests/EventListener/MainListenerTest.php index 0f50f41..895fb3a 100644 --- a/vendor-extra/LiberoPageBundle/tests/EventListener/MainListenerTest.php +++ b/vendor-extra/LiberoPageBundle/tests/EventListener/MainListenerTest.php @@ -7,7 +7,7 @@ use Libero\LiberoPageBundle\Event\CreatePageEvent; use Libero\LiberoPageBundle\Event\CreatePagePartEvent; use Libero\LiberoPageBundle\EventListener\MainListener; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\EventDispatcher; use tests\Libero\LiberoPageBundle\PageTestCase; @@ -27,7 +27,7 @@ public function it_does_nothing_if_there_are_no_listeners() : void $dispatcher->addListener( CreatePagePartEvent::name('not-main'), function (CreatePagePartEvent $event) : void { - $event->addContent(new View('template')); + $event->addContent(new TemplateView('template')); } ); @@ -52,7 +52,7 @@ public function it_adds_content_to_the_main_area() : void function (CreatePagePartEvent $event) : void { $this->assertSame(['con' => 'text', 'area' => 'main'], $event->getContext()); - $event->addContent(new View('template')); + $event->addContent(new TemplateView('template')); $event->setContext('foo', 'bar'); } ); @@ -65,11 +65,11 @@ function (CreatePagePartEvent $event) : void { $this->assertEquals( [ - 'main' => new View( + 'main' => new TemplateView( '@LiberoPatterns/content-grid.html.twig', [ 'content' => [ - new View('template'), + new TemplateView('template'), ], ], [ diff --git a/vendor-extra/LiberoPageBundle/tests/ViewConvertingTestCase.php b/vendor-extra/LiberoPageBundle/tests/ViewConvertingTestCase.php index de3dc4a..011115d 100644 --- a/vendor-extra/LiberoPageBundle/tests/ViewConvertingTestCase.php +++ b/vendor-extra/LiberoPageBundle/tests/ViewConvertingTestCase.php @@ -6,6 +6,8 @@ use FluentDOM\DOM\Node\NonDocumentTypeChildNode; use Libero\ViewsBundle\Views\CallbackViewConverter; +use Libero\ViewsBundle\Views\EmptyView; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Libero\ViewsBundle\Views\ViewConverter; use LogicException; @@ -16,7 +18,7 @@ final protected function createDumpingConverter() : ViewConverter { return new CallbackViewConverter( function (NonDocumentTypeChildNode $node, ?string $template = null, array $context = []) : View { - return new View( + return new TemplateView( null, ['node' => $node->getNodePath(), 'template' => $template, 'context' => $context] ); @@ -45,7 +47,7 @@ function ( $filter ) : View { if (false === $filter($node, $template, $context)) { - return new View(null); + return new EmptyView($context); } return $converter->convert($node, $template, $context); diff --git a/vendor-extra/ViewsBundle/src/Event/BuildViewEvent.php b/vendor-extra/ViewsBundle/src/Event/BuildViewEvent.php index 125477a..c7939fd 100644 --- a/vendor-extra/ViewsBundle/src/Event/BuildViewEvent.php +++ b/vendor-extra/ViewsBundle/src/Event/BuildViewEvent.php @@ -5,6 +5,7 @@ namespace Libero\ViewsBundle\Event; use FluentDOM\DOM\Element; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Symfony\Component\EventDispatcher\Event; @@ -15,7 +16,7 @@ final class BuildViewEvent extends Event private $object; private $view; - public function __construct(Element $object, View $view) + public function __construct(Element $object, TemplateView $view) { $this->object = $object; $this->view = $view; diff --git a/vendor-extra/ViewsBundle/src/EventListener/BuildView/LangListener.php b/vendor-extra/ViewsBundle/src/EventListener/BuildView/LangListener.php index 44cb8a3..ed9d770 100644 --- a/vendor-extra/ViewsBundle/src/EventListener/BuildView/LangListener.php +++ b/vendor-extra/ViewsBundle/src/EventListener/BuildView/LangListener.php @@ -6,6 +6,7 @@ use FluentDOM\DOM\Attribute; use Libero\ViewsBundle\Event\BuildViewEvent; +use Libero\ViewsBundle\Views\TemplateView; use Punic\Misc; final class LangListener @@ -14,6 +15,10 @@ public function onBuildView(BuildViewEvent $event) : void { $view = $event->getView(); + if (!$view instanceof TemplateView) { + return; + } + if ($view->hasArgument('attributes') && !empty($view->getArgument('attributes')['lang'])) { return; } diff --git a/vendor-extra/ViewsBundle/src/Views/EmptyView.php b/vendor-extra/ViewsBundle/src/Views/EmptyView.php new file mode 100644 index 0000000..81df8c9 --- /dev/null +++ b/vendor-extra/ViewsBundle/src/Views/EmptyView.php @@ -0,0 +1,20 @@ +context = $context; + } + + public function __toString() : string + { + return ''; + } +} diff --git a/vendor-extra/ViewsBundle/src/Views/EventDispatchingViewConverter.php b/vendor-extra/ViewsBundle/src/Views/EventDispatchingViewConverter.php index 354997b..a0a1539 100644 --- a/vendor-extra/ViewsBundle/src/Views/EventDispatchingViewConverter.php +++ b/vendor-extra/ViewsBundle/src/Views/EventDispatchingViewConverter.php @@ -25,27 +25,29 @@ public function __construct(EventDispatcherInterface $dispatcher) public function convert(NonDocumentTypeChildNode $node, ?string $template = null, array $context = []) : View { if (!$node instanceof Element) { - if (is_string($template) && '@LiberoPatterns/text.html.twig' !== $template) { - throw new LogicException( - "Expected the template '@LiberoPatterns/text.html.twig' for a non-element node" - ); + if (is_string($template)) { + throw new LogicException('Expected no template for a non-element node'); } if (!$node instanceof Text && !$node instanceof CdataSection) { - return new View('@LiberoPatterns/text.html.twig', ['nodes' => ''], $context); + return new EmptyView($context); } - return new View('@LiberoPatterns/text.html.twig', ['nodes' => (string) $node], $context); + return new StringView((string) $node, $context); } - $event = new BuildViewEvent($node, new View($template, [], $context)); + $event = new BuildViewEvent($node, new TemplateView($template, [], $context)); $this->dispatcher->dispatch($event::NAME, $event); $view = $event->getView(); + if (!$view instanceof TemplateView) { + return $view; + } + if (!$view->getTemplate()) { - return new View('@LiberoPatterns/text.html.twig', ['nodes' => (string) $node], $context); + return new StringView((string) $node, $context); } return $view; diff --git a/vendor-extra/ViewsBundle/src/Views/HasContext.php b/vendor-extra/ViewsBundle/src/Views/HasContext.php new file mode 100644 index 0000000..3af1e7c --- /dev/null +++ b/vendor-extra/ViewsBundle/src/Views/HasContext.php @@ -0,0 +1,26 @@ +context[$key]); + } + + final public function getContext(?string $key = null) + { + if (is_string($key)) { + return $this->context[$key] ?? null; + } + + return $this->context; + } +} diff --git a/vendor-extra/ViewsBundle/src/Views/IteratorArrayAccess.php b/vendor-extra/ViewsBundle/src/Views/IteratorArrayAccess.php new file mode 100644 index 0000000..ce6ff51 --- /dev/null +++ b/vendor-extra/ViewsBundle/src/Views/IteratorArrayAccess.php @@ -0,0 +1,22 @@ +template() === $template; } - final protected function beforeHandle(View $view) : View + final protected function beforeHandle(TemplateView $view) : TemplateView { return $view->withTemplate($this->template()); } diff --git a/vendor-extra/ViewsBundle/src/Views/ReadOnlyArrayAccess.php b/vendor-extra/ViewsBundle/src/Views/ReadOnlyArrayAccess.php new file mode 100644 index 0000000..247339f --- /dev/null +++ b/vendor-extra/ViewsBundle/src/Views/ReadOnlyArrayAccess.php @@ -0,0 +1,20 @@ +getObject(); $view = $event->getView(); - if (!$this->canHandleTemplate($view->getTemplate())) { + if (!$view instanceof TemplateView || !$this->canHandleTemplate($view->getTemplate())) { return; } @@ -32,7 +32,7 @@ final public function onBuildView(BuildViewEvent $event) : void $event->setView($this->handle($object, $view)); } - abstract protected function handle(Element $object, View $view) : View; + abstract protected function handle(Element $object, TemplateView $view) : View; abstract protected function canHandleTemplate(?string $template) : bool; @@ -43,7 +43,7 @@ protected function canHandleArguments(array $arguments) : bool return true; } - protected function beforeHandle(View $view) : View + protected function beforeHandle(TemplateView $view) : TemplateView { return $view; } diff --git a/vendor-extra/ViewsBundle/src/Views/StringView.php b/vendor-extra/ViewsBundle/src/Views/StringView.php new file mode 100644 index 0000000..c8c7a19 --- /dev/null +++ b/vendor-extra/ViewsBundle/src/Views/StringView.php @@ -0,0 +1,23 @@ +string = $string; + $this->context = $context; + } + + public function __toString() : string + { + return $this->string; + } +} diff --git a/vendor-extra/ViewsBundle/src/Views/TemplateView.php b/vendor-extra/ViewsBundle/src/Views/TemplateView.php new file mode 100644 index 0000000..3e42347 --- /dev/null +++ b/vendor-extra/ViewsBundle/src/Views/TemplateView.php @@ -0,0 +1,91 @@ +template = $template; + $this->arguments = $arguments; + $this->context = $context; + } + + public function hasArgument(string $key) : bool + { + return isset($this->arguments[$key]); + } + + public function getArgument(string $key) + { + return $this->arguments[$key] ?? null; + } + + public function getArguments() : array + { + return $this->arguments; + } + + public function getTemplate() : ?string + { + return $this->template; + } + + public function withArgument(string $key, $value) : TemplateView + { + return $this->withArguments([$key => $value]); + } + + public function withArguments(array $arguments) : TemplateView + { + if ($arguments === $this->arguments || !$arguments) { + return $this; + } + + $view = clone $this; + + $view->arguments = array_replace_recursive($view->arguments, $arguments); + + return $view; + } + + public function withTemplate(string $template) : TemplateView + { + if ($template === $this->template) { + return $this; + } + + $view = clone $this; + + $view->template = $template; + + return $view; + } + + public function withContext(array $context) : TemplateView + { + $view = clone $this; + + $view->context = array_replace_recursive($view->context, $context); + + return $view; + } + + public function getIterator() + { + yield 'template' => $this->template; + yield 'arguments' => $this->arguments; + } +} diff --git a/vendor-extra/ViewsBundle/src/Views/View.php b/vendor-extra/ViewsBundle/src/Views/View.php index 231c6fa..8cbff08 100644 --- a/vendor-extra/ViewsBundle/src/Views/View.php +++ b/vendor-extra/ViewsBundle/src/Views/View.php @@ -4,110 +4,9 @@ namespace Libero\ViewsBundle\Views; -use ArrayIterator; -use IteratorAggregate; -use JsonSerializable; -use Traversable; -use function array_replace_recursive; -use function is_string; - -final class View implements JsonSerializable, IteratorAggregate +interface View { - private $arguments; - private $context; - private $template; - - public function __construct(?string $template, array $arguments = [], array $context = []) - { - $this->template = $template; - $this->arguments = $arguments; - $this->context = $context; - } - - public function hasArgument(string $key) : bool - { - return isset($this->arguments[$key]); - } - - public function getArgument(string $key) - { - return $this->arguments[$key] ?? null; - } - - public function getArguments() : array - { - return $this->arguments; - } - - public function getTemplate() : ?string - { - return $this->template; - } - - public function hasContext(string $key) : bool - { - return isset($this->context[$key]); - } - - public function getContext(?string $key = null) - { - if (is_string($key)) { - return $this->context[$key] ?? null; - } - - return $this->context; - } - - public function withArgument(string $key, $value) : View - { - return $this->withArguments([$key => $value]); - } - - public function withArguments(array $arguments) : View - { - if ($arguments === $this->arguments || !$arguments) { - return $this; - } - - $view = clone $this; - - $view->arguments = array_replace_recursive($view->arguments, $arguments); - - return $view; - } - - public function withTemplate(string $template) : View - { - if ($template === $this->template) { - return $this; - } - - $view = clone $this; - - $view->template = $template; - - return $view; - } - - public function withContext(array $context) : View - { - $view = clone $this; - - $view->context = array_replace_recursive($view->context, $context); - - return $view; - } - - public function jsonSerialize() : array - { - return [ - 'template' => $this->template, - 'arguments' => $this->arguments, - ]; - } + public function hasContext(string $key) : bool; - public function getIterator() : Traversable - { - return new ArrayIterator($this->jsonSerialize()); - } + public function getContext(?string $key = null); } diff --git a/vendor-extra/ViewsBundle/tests/Event/BuildViewEventTest.php b/vendor-extra/ViewsBundle/tests/Event/BuildViewEventTest.php index c40ce17..735ee52 100644 --- a/vendor-extra/ViewsBundle/tests/Event/BuildViewEventTest.php +++ b/vendor-extra/ViewsBundle/tests/Event/BuildViewEventTest.php @@ -6,7 +6,8 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Event\BuildViewEvent; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\EmptyView; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\Event; @@ -17,7 +18,7 @@ final class BuildViewEventTest extends TestCase */ public function it_is_an_event() : void { - $event = new BuildViewEvent(new Element('name'), new View(null)); + $event = new BuildViewEvent(new Element('name'), new TemplateView(null)); $this->assertInstanceOf(Event::class, $event); } @@ -29,7 +30,7 @@ public function it_has_an_object() : void { $object = new Element('name'); - $event = new BuildViewEvent($object, new View(null)); + $event = new BuildViewEvent($object, new TemplateView(null)); $this->assertEquals($object, $event->getObject()); } @@ -39,13 +40,19 @@ public function it_has_an_object() : void */ public function it_has_a_view() : void { - $view = new View('template', ['arg' => 'ument'], ['con' => 'text']); + $view = new TemplateView('template', ['arg' => 'ument'], ['con' => 'text']); $event = new BuildViewEvent(new Element('name'), $view); $this->assertEquals($view, $event->getView()); - $view = new View('foo', ['bar' => 'baz'], ['qux' => 'quux']); + $view = new TemplateView('foo', ['bar' => 'baz'], ['qux' => 'quux']); + + $event->setView($view); + + $this->assertEquals($view, $event->getView()); + + $view = new EmptyView(); $event->setView($view); diff --git a/vendor-extra/ViewsBundle/tests/EventListener/BuildView/LangListenerTest.php b/vendor-extra/ViewsBundle/tests/EventListener/BuildView/LangListenerTest.php index bbfb775..acb12eb 100644 --- a/vendor-extra/ViewsBundle/tests/EventListener/BuildView/LangListenerTest.php +++ b/vendor-extra/ViewsBundle/tests/EventListener/BuildView/LangListenerTest.php @@ -7,7 +7,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Event\BuildViewEvent; use Libero\ViewsBundle\EventListener\BuildView\LangListener; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use PHPUnit\Framework\TestCase; use tests\Libero\LiberoPageBundle\XmlTestCase; @@ -24,10 +24,11 @@ public function it_does_nothing_if_there_is_no_lang() : void $element = $this->loadElement('baz'); - $event = new BuildViewEvent($element, new View('template')); + $event = new BuildViewEvent($element, new TemplateView('template')); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertFalse($view->hasArgument('attributes')); $this->assertEmpty($view->getContext()); } @@ -41,10 +42,11 @@ public function it_does_nothing_if_there_is_already_a_lang_attribute() : void $element = $this->loadElement('bar'); - $event = new BuildViewEvent($element, new View('template', ['attributes' => ['lang' => 'en']])); + $event = new BuildViewEvent($element, new TemplateView('template', ['attributes' => ['lang' => 'en']])); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame(['lang' => 'en'], $view->getArgument('attributes')); $this->assertEmpty($view->getContext()); } @@ -66,10 +68,11 @@ public function it_sets_the_language_and_direction( /** @var Element $element */ $element = $document->xpath()->firstOf($selector); - $event = new BuildViewEvent($element, new View('template', [], $context)); + $event = new BuildViewEvent($element, new TemplateView('template', [], $context)); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame($expectedAttributes, $view->getArgument('attributes'), 'Attributes do not match'); $this->assertSame($expectedContext, $view->getContext(), 'Context does not match'); } @@ -258,11 +261,12 @@ public function it_leaves_other_arguments_and_context() : void $event = new BuildViewEvent( $element, - new View('template', ['attributes' => ['foo' => 'bar'], 'baz' => 'qux'], $context) + new TemplateView('template', ['attributes' => ['foo' => 'bar'], 'baz' => 'qux'], $context) ); $listener->onBuildView($event); $view = $event->getView(); + $this->assertInstanceOf(TemplateView::class, $view); $this->assertSame( ['attributes' => ['foo' => 'bar', 'lang' => 'en', 'dir' => 'ltr'], 'baz' => 'qux'], $view->getArguments() diff --git a/vendor-extra/ViewsBundle/tests/Views/CallbackViewConverterTest.php b/vendor-extra/ViewsBundle/tests/Views/CallbackViewConverterTest.php index 190fbe5..8bb71d6 100644 --- a/vendor-extra/ViewsBundle/tests/Views/CallbackViewConverterTest.php +++ b/vendor-extra/ViewsBundle/tests/Views/CallbackViewConverterTest.php @@ -6,7 +6,7 @@ use FluentDOM\DOM\Element; use Libero\ViewsBundle\Views\CallbackViewConverter; -use Libero\ViewsBundle\Views\View; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\ViewConverter; use PHPUnit\Framework\TestCase; @@ -18,8 +18,8 @@ final class CallbackViewConverterTest extends TestCase public function it_is_a_view_converter() : void { $handler = new CallbackViewConverter( - function () : View { - return new View(null); + function () : TemplateView { + return new TemplateView(null); } ); @@ -32,13 +32,13 @@ function () : View { public function it_returns_the_results_of_a_callback() : void { $handler = new CallbackViewConverter( - function (Element $object, ?string $template, array $context = []) : View { - return new View($template, $context + ['element' => $object]); + function (Element $object, ?string $template, array $context = []) : TemplateView { + return new TemplateView($template, $context + ['element' => $object]); } ); $element = new Element('foo'); - $expected = new View('template', ['bar' => 'baz', 'element' => $element]); + $expected = new TemplateView('template', ['bar' => 'baz', 'element' => $element]); $this->assertEquals($expected, $handler->convert($element, 'template', ['bar' => 'baz'])); } diff --git a/vendor-extra/ViewsBundle/tests/Views/EmptyViewTest.php b/vendor-extra/ViewsBundle/tests/Views/EmptyViewTest.php new file mode 100644 index 0000000..472fbae --- /dev/null +++ b/vendor-extra/ViewsBundle/tests/Views/EmptyViewTest.php @@ -0,0 +1,47 @@ +assertInstanceOf(View::class, $view); + } + + /** + * @test + */ + public function it_casts_to_a_string() : void + { + $view = new EmptyView(); + + $this->assertSame('', (string) $view); + } + + /** + * @test + */ + public function it_has_context() : void + { + $view = new EmptyView(['foo' => 'bar']); + + $this->assertTrue($view->hasContext('foo')); + $this->assertFalse($view->hasContext('bar')); + + $this->assertSame('bar', $view->getContext('foo')); + $this->assertNull($view->getContext('bar')); + $this->assertEquals(['foo' => 'bar'], $view->getContext()); + } +} diff --git a/vendor-extra/ViewsBundle/tests/Views/EventDispatchingViewConverterTest.php b/vendor-extra/ViewsBundle/tests/Views/EventDispatchingViewConverterTest.php index 8e99642..f522a62 100644 --- a/vendor-extra/ViewsBundle/tests/Views/EventDispatchingViewConverterTest.php +++ b/vendor-extra/ViewsBundle/tests/Views/EventDispatchingViewConverterTest.php @@ -7,7 +7,10 @@ use FluentDOM\DOM\Element; use FluentDOM\DOM\Text; use Libero\ViewsBundle\Event\BuildViewEvent; +use Libero\ViewsBundle\Views\EmptyView; use Libero\ViewsBundle\Views\EventDispatchingViewConverter; +use Libero\ViewsBundle\Views\StringView; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use Libero\ViewsBundle\Views\ViewConverter; use LogicException; @@ -38,35 +41,30 @@ public function it_returns_text_by_default() : void $node = $this->loadElement('bar qux quux'); - $expected = new View( - '@LiberoPatterns/text.html.twig', - ['nodes' => 'bar qux quux'] - ); + $expected = new StringView('bar qux quux', ['con' => 'text']); - $this->assertEquals($expected, $handler->convert($node)); + $this->assertEquals($expected, $handler->convert($node, null, ['con' => 'text'])); } /** * @test * @dataProvider nonElementProvider */ - public function it_handles_non_elements(string $node, $expected = '') : void + public function it_handles_non_elements(string $node, View $expected) : void { $handler = new EventDispatchingViewConverter(new EventDispatcher()); $node = $this->loadNode($node); - $expected = new View('@LiberoPatterns/text.html.twig', ['nodes' => $expected]); - - $this->assertEquals($expected, $handler->convert($node)); + $this->assertEquals($expected, $handler->convert($node, null, ['con' => 'text'])); } public function nonElementProvider() : iterable { - yield 'cdata' => [']]>', '']; - yield 'comment' => ['']; - yield 'processing instruction' => ['']; - yield 'text' => ['text', 'text']; + yield 'cdata' => [']]>', new StringView('', ['con' => 'text'])]; + yield 'comment' => ['', new EmptyView(['con' => 'text'])]; + yield 'processing instruction' => ['', new EmptyView(['con' => 'text'])]; + yield 'text' => ['text', new StringView('text', ['con' => 'text'])]; } /** @@ -77,9 +75,9 @@ public function it_fails_if_non_elements_try_to_use_a_pattern() : void $handler = new EventDispatchingViewConverter(new EventDispatcher()); $this->expectException(LogicException::class); - $this->expectExceptionMessage("Expected the template '@LiberoPatterns/text.html.twig' for a non-element node"); + $this->expectExceptionMessage('Expected no template for a non-element node'); - $handler->convert(new Text('foo'), '@LiberoPatterns/not-text.html.twig'); + $handler->convert(new Text('foo'), '@LiberoPatterns/template.html.twig'); } /** @@ -92,13 +90,13 @@ public function it_dispatches_an_event() : void $node = new Element('element'); - $expected = new View('changed', ['one' => 'two'], ['three' => 'four']); + $expected = new TemplateView('changed', ['one' => 'two'], ['three' => 'four']); $dispatcher->addListener( BuildViewEvent::NAME, function (BuildViewEvent $event) use ($expected, $node) : void { $this->assertEquals($node, $event->getObject()); - $this->assertEquals(new View('template', [], ['con' => 'text']), $event->getView()); + $this->assertEquals(new TemplateView('template', [], ['con' => 'text']), $event->getView()); $event->setView($expected); } diff --git a/vendor-extra/ViewsBundle/tests/Views/StringViewTest.php b/vendor-extra/ViewsBundle/tests/Views/StringViewTest.php new file mode 100644 index 0000000..de3e222 --- /dev/null +++ b/vendor-extra/ViewsBundle/tests/Views/StringViewTest.php @@ -0,0 +1,47 @@ +assertInstanceOf(View::class, $view); + } + + /** + * @test + */ + public function it_is_a_string() : void + { + $view = new StringView('text'); + + $this->assertSame('text', (string) $view); + } + + /** + * @test + */ + public function it_has_context() : void + { + $view = new StringView('text', ['foo' => 'bar']); + + $this->assertTrue($view->hasContext('foo')); + $this->assertFalse($view->hasContext('bar')); + + $this->assertSame('bar', $view->getContext('foo')); + $this->assertNull($view->getContext('bar')); + $this->assertEquals(['foo' => 'bar'], $view->getContext()); + } +} diff --git a/vendor-extra/ViewsBundle/tests/Views/ViewTest.php b/vendor-extra/ViewsBundle/tests/Views/TemplateViewTest.php similarity index 60% rename from vendor-extra/ViewsBundle/tests/Views/ViewTest.php rename to vendor-extra/ViewsBundle/tests/Views/TemplateViewTest.php index ff7d8a7..1f8e31a 100644 --- a/vendor-extra/ViewsBundle/tests/Views/ViewTest.php +++ b/vendor-extra/ViewsBundle/tests/Views/TemplateViewTest.php @@ -4,21 +4,33 @@ namespace tests\Libero\ViewsBundle\Views; +use ArrayAccess; +use BadMethodCallException; +use Libero\ViewsBundle\Views\TemplateView; use Libero\ViewsBundle\Views\View; use PHPUnit\Framework\TestCase; use Traversable; -use function GuzzleHttp\json_encode; use function iterator_to_array; -final class ViewTest extends TestCase +final class TemplateViewTest extends TestCase { + /** + * @test + */ + public function it_is_a_view() : void + { + $view = new TemplateView(null); + + $this->assertInstanceOf(View::class, $view); + } + /** * @test */ public function it_may_have_a_template() : void { - $with = new View('foo'); - $withOut = new View(null); + $with = new TemplateView('foo'); + $withOut = new TemplateView(null); $this->assertSame('foo', $with->getTemplate()); $this->assertNull($withOut->getTemplate()); @@ -33,7 +45,7 @@ public function it_may_have_a_template() : void */ public function it_has_arguments() : void { - $view = new View(null, ['foo' => 'bar']); + $view = new TemplateView(null, ['foo' => 'bar']); $this->assertTrue($view->hasArgument('foo')); $this->assertFalse($view->hasArgument('bar')); @@ -56,7 +68,7 @@ public function it_has_arguments() : void */ public function it_has_context() : void { - $view = new View(null, [], ['foo' => 'bar']); + $view = new TemplateView(null, [], ['foo' => 'bar']); $this->assertTrue($view->hasContext('foo')); $this->assertFalse($view->hasContext('bar')); @@ -77,21 +89,45 @@ public function it_has_context() : void /** * @test */ - public function it_is_json_serializable() : void + public function it_is_array_accessible() : void + { + $view = new TemplateView('template', ['foo' => 'bar', 'baz' => ['qux']]); + + $this->assertInstanceOf(ArrayAccess::class, $view); + + $this->assertArrayHasKey('template', $view); + $this->assertSame('template', $view['template']); + $this->assertArrayHasKey('arguments', $view); + $this->assertSame(['foo' => 'bar', 'baz' => ['qux']], $view['arguments']); + $this->assertArrayNotHasKey('quux', $view); + $this->assertNull($view['quux']); + } + + /** + * @test + * @dataProvider immutableProvider + */ + public function it_is_immutable(callable $action) : void { - $view = new View('template', ['foo' => 'bar', 'baz' => ['qux']]); - - $expected = json_encode( - [ - 'template' => 'template', - 'arguments' => [ - 'foo' => 'bar', - 'baz' => ['qux'], - ], - ] - ); - - $this->assertJsonStringEqualsJsonString($expected, json_encode($view)); + $view = new TemplateView(null); + + $this->expectException(BadMethodCallException::class); + + $action($view); + } + + public function immutableProvider() : iterable + { + yield 'set' => [ + function (TemplateView $view) : void { + $view['foo'] = 'bar'; + }, + ]; + yield 'unset' => [ + function (TemplateView $view) : void { + unset($view['foo']); + }, + ]; } /** @@ -99,7 +135,7 @@ public function it_is_json_serializable() : void */ public function it_is_traversable() : void { - $view = new View('template', ['foo' => 'bar', 'baz' => ['qux']]); + $view = new TemplateView('template', ['foo' => 'bar', 'baz' => ['qux']]); $this->assertInstanceOf(Traversable::class, $view);