diff --git a/modules/oe_theme_content_event/src/Plugin/ExtraField/Display/DescriptionExtraField.php b/modules/oe_theme_content_event/src/Plugin/ExtraField/Display/DescriptionExtraField.php
index d0a9eaf85c..ddbb65e8a2 100755
--- a/modules/oe_theme_content_event/src/Plugin/ExtraField/Display/DescriptionExtraField.php
+++ b/modules/oe_theme_content_event/src/Plugin/ExtraField/Display/DescriptionExtraField.php
@@ -15,6 +15,7 @@
use Drupal\media\MediaInterface;
use Drupal\oe_content_event\EventNodeWrapper;
use Drupal\oe_theme\ValueObject\ImageValueObject;
+use Drupal\oe_theme\ValueObject\MediaValueObject;
use Drupal\oe_time_caching\Cache\TimeBasedCacheTagGeneratorInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
diff --git a/modules/oe_theme_helper/src/TwigExtension/TwigExtension.php b/modules/oe_theme_helper/src/TwigExtension/TwigExtension.php
index 3d9d839e5d..60c63d0db2 100644
--- a/modules/oe_theme_helper/src/TwigExtension/TwigExtension.php
+++ b/modules/oe_theme_helper/src/TwigExtension/TwigExtension.php
@@ -18,6 +18,7 @@
use Drupal\oe_theme_helper\EuropeanUnionLanguages;
use Drupal\smart_trim\Truncate\TruncateHTML;
use Drupal\Core\Template\TwigExtension as CoreTwigExtension;
+use Drupal\oe_theme\ValueObject\MediaValueObject;
/**
* Collection of extra Twig extensions as filters and functions.
@@ -69,6 +70,7 @@ public function getFilters(): array {
new \Twig_SimpleFilter('smart_trim', [$this, 'smartTrim'], ['needs_environment' => TRUE]),
new \Twig_SimpleFilter('is_external_url', [UrlHelper::class, 'isExternal']),
new \Twig_SimpleFilter('filter_empty', [$this, 'filterEmpty']),
+ new \Twig_SimpleFilter('validate_ratio', [MediaValueObject::class, 'validateRatio']),
];
}
diff --git a/templates/patterns/media_container/pattern-media-container.html.twig b/templates/patterns/media_container/pattern-media-container.html.twig
index e68b32315f..dc380d3f58 100644
--- a/templates/patterns/media_container/pattern-media-container.html.twig
+++ b/templates/patterns/media_container/pattern-media-container.html.twig
@@ -4,11 +4,13 @@
* Media container pattern.
*/
#}
+{% set _ratio = media.ratio|default('16-9') %}
+
{% include '@ecl-twig/media-container' with {
'image': media.image.src,
'alt': media.image.alt,
'embedded_media': media.video,
- 'ratio': media.ratio,
+ 'ratio': _ratio|validate_ratio,
'description': description,
'sources': media.sources,
'tracks': media.tracks
diff --git a/templates/patterns/text_featured_media/pattern-text-featured-media.html.twig b/templates/patterns/text_featured_media/pattern-text-featured-media.html.twig
index 117c14325a..8191ee1356 100644
--- a/templates/patterns/text_featured_media/pattern-text-featured-media.html.twig
+++ b/templates/patterns/text_featured_media/pattern-text-featured-media.html.twig
@@ -12,7 +12,6 @@
{% if media.image or media.video %}
{{ pattern('media_container', {
- 'compliance': compliance,
'description': caption,
'media': media
}) }}
diff --git a/tests/Kernel/Patterns/MediaContainerPatternRenderingTest.php b/tests/Kernel/Patterns/MediaContainerPatternRenderingTest.php
deleted file mode 100644
index 0787f668d6..0000000000
--- a/tests/Kernel/Patterns/MediaContainerPatternRenderingTest.php
+++ /dev/null
@@ -1,65 +0,0 @@
- 'pattern',
- '#id' => 'media_container',
- '#fields' => $fields,
- ];
-
- $html = $this->renderRoot($pattern);
- $this->assertRendering($html, $assertions);
- }
-
- /**
- * Data provider for testMediaContainerPattern.
- *
- * @return array
- * Test data and assertions.
- */
- public function dataProvider(): array {
- $data = $this->getFixtureContent('patterns/media_container_pattern.yml');
-
- foreach ($data as $key => $value) {
- if (!isset($value['fields']['media'])) {
- continue;
- }
-
- $media = $value['fields']['media'];
-
- if (isset($media['image'])) {
- $media['image'] = ImageValueObject::fromArray($media['image']);
- }
-
- $data[$key]['fields']['media'] = MediaValueObject::fromArray($media);
- }
-
- return $data;
- }
-
-}
diff --git a/tests/Kernel/Patterns/TextFeaturedMediaPatternTest.php b/tests/Kernel/Patterns/TextFeaturedMediaPatternTest.php
deleted file mode 100644
index da4363f860..0000000000
--- a/tests/Kernel/Patterns/TextFeaturedMediaPatternTest.php
+++ /dev/null
@@ -1,65 +0,0 @@
- 'pattern',
- '#id' => 'text_featured_media',
- '#fields' => $fields,
- ];
-
- $html = $this->renderRoot($pattern);
- $this->assertRendering($html, $assertions);
- }
-
- /**
- * Data provider for testMediaPattern.
- *
- * @return array
- * Test data and assertions.
- */
- public function dataProvider(): array {
- $data = $this->getFixtureContent('patterns/text_featured_media.yml');
-
- foreach ($data as $key => $value) {
- if (!isset($value['fields']['media'])) {
- continue;
- }
-
- $media = $value['fields']['media'];
-
- if (isset($media['image'])) {
- $media['image'] = ImageValueObject::fromArray($media['image']);
- }
-
- $data[$key]['fields']['media'] = MediaValueObject::fromArray($media);
- }
-
- return $data;
- }
-
-}
diff --git a/tests/Kernel/fixtures/patterns/media_container_pattern.yml b/tests/Kernel/fixtures/patterns/media_container_pattern.yml
deleted file mode 100644
index a2eaf367f1..0000000000
--- a/tests/Kernel/fixtures/patterns/media_container_pattern.yml
+++ /dev/null
@@ -1,94 +0,0 @@
-- fields:
- description: "Caption"
- media:
- image:
- src: "http://via.placeholder.com/150x150"
- alt: "Alt text"
- assertions:
- count:
- 'figure.ecl-media-container img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 1
- 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
- 'figure.ecl-media-container .ecl-media-container__media[alt="Alt text"]': 1
- equals:
- 'figure.ecl-media-container figcaption.ecl-media-container__caption': Caption
-- fields:
- media:
- image:
- src: "http://via.placeholder.com/150x150"
- alt: "Image with no caption"
- assertions:
- count:
- 'figure.ecl-media-container img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 1
- 'figure.ecl-media-container figcaption.ecl-media-container__caption': 0
- 'figure.ecl-media-container .ecl-media-container__media[alt="Image with no caption"]': 1
-- fields:
- description: "Caption"
- media:
- video: ""
- ratio: "16:9"
- assertions:
- count:
- 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
- 'figure.ecl-media-container .ecl-media-container__media--ratio-16-9 iframe': 1
- 'figure.ecl-media-container .ecl-media-container__media--ratio-16-9 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
- equals:
- '.ecl-media-container figcaption.ecl-media-container__caption': Caption
-- fields:
- description: "Caption"
- media:
- video: ""
- ratio: "4-3"
- assertions:
- count:
- 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
- 'figure.ecl-media-container .ecl-media-container__media--ratio-4-3 iframe': 1
- 'figure.ecl-media-container .ecl-media-container__media--ratio-4-3 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
- equals:
- 'figure.ecl-media-container figcaption.ecl-media-container__caption': Caption
-- fields:
- description: "Caption"
- media:
- video: ""
- ratio: "3_2"
- assertions:
- count:
- 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
- 'figure.ecl-media-container .ecl-media-container__media--ratio-3-2 iframe': 1
- 'figure.ecl-media-container .ecl-media-container__media--ratio-3-2 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
- equals:
- 'figure.ecl-media-container figcaption.ecl-media-container__caption': Caption
-- fields:
- description: "Caption"
- media:
- video: ""
- ratio: "1:1"
- assertions:
- count:
- 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
- 'figure.ecl-media-container .ecl-media-container__media--ratio-1-1 iframe': 1
- 'figure.ecl-media-container .ecl-media-container__media--ratio-1-1 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
- equals:
- 'figure.ecl-media-container figcaption.ecl-media-container__caption': Caption
-- fields:
- description: "Caption"
- media:
- video: ""
- ratio: "20:15"
- assertions:
- count:
- 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
- 'figure.ecl-media-container .ecl-media-container__media--ratio-16-9 iframe': 1
- 'figure.ecl-media-container .ecl-media-container__media--ratio-16-9 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
- equals:
- '.ecl-media-container figcaption.ecl-media-container__caption': Caption
-- fields:
- description: "Caption"
- media:
- video: ""
- assertions:
- count:
- 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
- 'figure.ecl-media-container .ecl-media-container__media iframe': 1
- 'figure.ecl-media-container .ecl-media-container__media--ratio-16-9 iframe[src="https://www.youtube.com/embed/UmFFTkjs-O0"]': 1
- equals:
- 'figure.ecl-media-container figcaption.ecl-media-container__caption': Caption
diff --git a/tests/Kernel/fixtures/patterns/text_featured_media.yml b/tests/Kernel/fixtures/patterns/text_featured_media.yml
deleted file mode 100644
index f1141d1ba7..0000000000
--- a/tests/Kernel/fixtures/patterns/text_featured_media.yml
+++ /dev/null
@@ -1,107 +0,0 @@
-- fields:
- media:
- video: ""
- ratio: "1:1"
- assertions:
- count:
- 'div.ecl-media-container__media--ratio-1-1 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
-- fields:
- title: "Heading"
- media:
- image:
- src: "http://via.placeholder.com/150x150"
- caption: "Some caption text for the image"
- text: "Some more text"
- assertions:
- count:
- 'div.ecl-row': 1
- 'figure.ecl-media-container': 1
- 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 1
- 'div.ecl-media-container__media--ratio-16-9 iframe': 0
- 'figcaption.ecl-media-container__caption': 1
- equals:
- 'h2.ecl-u-type-heading-2': "Heading"
- 'figcaption.ecl-media-container__caption': "Some caption text for the image"
- 'div.ecl-col-md-6.ecl-editor': "Some more text"
-- fields:
- media:
- image:
- src: "http://via.placeholder.com/150x150"
- caption: "Some caption text for the image"
- text: "Some more text"
- assertions:
- count:
- 'h2.ecl-u-type-heading-2': 0
- 'div.ecl-row': 1
- 'figure.ecl-media-container': 1
- 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 1
- 'div.ecl-media-container__media--ratio-16-9 iframe': 0
- 'figcaption.ecl-media-container__caption': 1
- equals:
- 'figcaption.ecl-media-container__caption': "Some caption text for the image"
- 'div.ecl-col-md-6.ecl-editor': "Some more text"
-- fields:
- title: "Heading"
- caption: "Some caption text for the image"
- text: "Some more text"
- assertions:
- count:
- 'div.ecl-row': 1
- 'figure.ecl-media-container': 0
- 'div.ecl-col-md-6.ecl-editor': 0
- 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 0
- 'div.ecl-media-container__media--ratio-16-9 iframe': 0
- 'figcaption.ecl-media-container__caption': 0
- equals:
- 'h2.ecl-u-type-heading-2': "Heading"
- 'div.ecl-col-12.ecl-editor': "Some more text"
-- fields:
- title: "Heading"
- media:
- image:
- src: "http://via.placeholder.com/150x150"
- text: "Some more text"
- assertions:
- count:
- 'div.ecl-row': 1
- 'figure.ecl-media-container': 1
- 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 1
- 'div.ecl-media-container__media--ratio-16-9 iframe': 0
- 'figcaption.ecl-media-container__caption': 0
- equals:
- 'h2.ecl-u-type-heading-2': "Heading"
- 'div.ecl-col-md-6.ecl-editor': "Some more text"
-- fields:
- title: "Heading"
- caption: "Some caption"
- assertions:
- count:
- 'div.ecl-row': 0
- 'figure.ecl-media-container': 0
- 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 0
- 'div.ecl-media-container__media--ratio-16-9 iframe': 0
- 'figcaption.ecl-media-container__caption': 0
- equals:
- 'h2.ecl-u-type-heading-2': "Heading"
-- fields:
- title: "Heading"
- media:
- video: ""
- text: "Some more text"
- assertions:
- count:
- 'div.ecl-row': 1
- 'figure.ecl-media-container': 1
- 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 0
- 'div.ecl-media-container__media--ratio-16-9 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
- 'figcaption.ecl-media-container__caption': 0
- equals:
- 'h2.ecl-u-type-heading-2': "Heading"
- 'div.ecl-col-md-6.ecl-editor': "Some more text"
-- fields:
- media:
- video: ""
- video_ratio: "invalid"
- assertions:
- count:
- 'div.ecl-media-container__media--ratio-16-9 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
diff --git a/tests/Kernel/fixtures/rendering.yml b/tests/Kernel/fixtures/rendering.yml
index a0a820440d..f11fc1c1bb 100644
--- a/tests/Kernel/fixtures/rendering.yml
+++ b/tests/Kernel/fixtures/rendering.yml
@@ -2236,45 +2236,6 @@
'.ecl-timeline2__item:nth-child(4) .ecl-timeline2__content': 'Lorem Ipsum 4'
'.ecl-timeline2__item:nth-child(5) .ecl-timeline2__content': 'Lorem Ipsum 5'
'.ecl-timeline2__item:nth-child(6) .ecl-timeline2__content': 'Lorem Ipsum 6'
-- array:
- '#type': pattern
- '#id': text_featured_media
- '#fields':
- title: "Heading"
- image:
- src: "http://via.placeholder.com/150x150"
- caption: "Some caption text for the image"
- text: "Some more text"
- assertions:
- count:
- 'div.ecl-row': 1
- 'figure.ecl-media-container': 1
- 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 1
- 'div.ecl-media-container__media--ratio-16-9 iframe': 0
- 'figcaption.ecl-media-container__caption': 1
- equals:
- 'h2.ecl-u-type-heading-2': "Heading"
- 'figcaption.ecl-media-container__caption': "Some caption text for the image"
- 'div.ecl-col-md-6.ecl-editor': "Some more text"
-- array:
- '#type': pattern
- '#id': text_featured_media
- '#fields':
- image:
- src: "http://via.placeholder.com/150x150"
- caption: "Some caption text for the image"
- text: "Some more text"
- assertions:
- count:
- 'h2.ecl-u-type-heading-2': 0
- 'div.ecl-row': 1
- 'figure.ecl-media-container': 1
- 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 1
- 'div.ecl-media-container__media--ratio-16-9 iframe': 0
- 'figcaption.ecl-media-container__caption': 1
- equals:
- 'figcaption.ecl-media-container__caption': "Some caption text for the image"
- 'div.ecl-col-md-6.ecl-editor': "Some more text"
- array:
'#type': pattern
'#id': icons_with_text
@@ -2540,3 +2501,263 @@
'div.ecl-u-mr-xs.ecl-u-mt-s.ecl-tag.ecl-tag--removable': 'No link'
equals:
'div.active-search-filters__name span': 'Source'
+- array:
+ '#type': pattern
+ '#id': text_featured_media
+ '#fields':
+ media:
+ video: ""
+ ratio: "1:1"
+ assertions:
+ count:
+ 'div.ecl-media-container__media--ratio-1-1 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
+- array:
+ '#type': pattern
+ '#id': text_featured_media
+ '#fields':
+ media:
+ video: ""
+ ratio: "4:3"
+ assertions:
+ count:
+ 'div.ecl-media-container__media--ratio-4-3 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
+- array:
+ '#type': pattern
+ '#id': text_featured_media
+ '#fields':
+ title: "Heading"
+ media:
+ image:
+ src: "http://via.placeholder.com/150x150"
+ caption: "Some caption text for the image"
+ text: "Some more text"
+ assertions:
+ count:
+ 'div.ecl-row': 1
+ 'figure.ecl-media-container': 1
+ 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 1
+ 'div.ecl-media-container__media--ratio-16-9 iframe': 0
+ 'figcaption.ecl-media-container__caption': 1
+ equals:
+ 'h2.ecl-u-type-heading-2': "Heading"
+ 'figcaption.ecl-media-container__caption': "Some caption text for the image"
+ 'div.ecl-col-md-6.ecl-editor': "Some more text"
+- array:
+ '#type': pattern
+ '#id': text_featured_media
+ '#fields':
+ media:
+ image:
+ src: "http://via.placeholder.com/150x150"
+ caption: "Some caption text for the image"
+ text: "Some more text"
+ assertions:
+ count:
+ 'h2.ecl-u-type-heading-2': 0
+ 'div.ecl-row': 1
+ 'figure.ecl-media-container': 1
+ 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 1
+ 'div.ecl-media-container__media--ratio-16-9 iframe': 0
+ 'figcaption.ecl-media-container__caption': 1
+ equals:
+ 'figcaption.ecl-media-container__caption': "Some caption text for the image"
+ 'div.ecl-col-md-6.ecl-editor': "Some more text"
+- array:
+ '#type': pattern
+ '#id': text_featured_media
+ '#fields':
+ title: "Heading"
+ caption: "Some caption text for the image"
+ text: "Some more text"
+ assertions:
+ count:
+ 'div.ecl-row': 1
+ 'figure.ecl-media-container': 0
+ 'div.ecl-col-md-6.ecl-editor': 0
+ 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 0
+ 'div.ecl-media-container__media--ratio-16-9 iframe': 0
+ 'figcaption.ecl-media-container__caption': 0
+ equals:
+ 'h2.ecl-u-type-heading-2': "Heading"
+ 'div.ecl-col-12.ecl-editor': "Some more text"
+- array:
+ '#type': pattern
+ '#id': text_featured_media
+ '#fields':
+ title: "Heading"
+ media:
+ image:
+ src: "http://via.placeholder.com/150x150"
+ text: "Some more text"
+ assertions:
+ count:
+ 'div.ecl-row': 1
+ 'figure.ecl-media-container': 1
+ 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 1
+ 'div.ecl-media-container__media--ratio-16-9 iframe': 0
+ 'figcaption.ecl-media-container__caption': 0
+ equals:
+ 'h2.ecl-u-type-heading-2': "Heading"
+ 'div.ecl-col-md-6.ecl-editor': "Some more text"
+- array:
+ '#type': pattern
+ '#id': text_featured_media
+ '#fields':
+ title: "Heading"
+ caption: "Some caption"
+ assertions:
+ count:
+ 'div.ecl-row': 0
+ 'figure.ecl-media-container': 0
+ 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 0
+ 'div.ecl-media-container__media--ratio-16-9 iframe': 0
+ 'figcaption.ecl-media-container__caption': 0
+ equals:
+ 'h2.ecl-u-type-heading-2': "Heading"
+- array:
+ '#type': pattern
+ '#id': text_featured_media
+ '#fields':
+ title: "Heading"
+ media:
+ video: ""
+ text: "Some more text"
+ assertions:
+ count:
+ 'div.ecl-row': 1
+ 'figure.ecl-media-container': 1
+ 'img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 0
+ 'div.ecl-media-container__media--ratio-16-9 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
+ 'figcaption.ecl-media-container__caption': 0
+ equals:
+ 'h2.ecl-u-type-heading-2': "Heading"
+ 'div.ecl-col-md-6.ecl-editor': "Some more text"
+- array:
+ '#type': pattern
+ '#id': text_featured_media
+ '#fields':
+ media:
+ video: ""
+ ratio: "invalid"
+ assertions:
+ count:
+ 'div.ecl-media-container__media--ratio-16-9 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
+- array:
+ '#type': pattern
+ '#id': media_container
+ '#fields':
+ description: "Caption"
+ media:
+ image:
+ src: "http://via.placeholder.com/150x150"
+ alt: "Alt text"
+ assertions:
+ count:
+ 'figure.ecl-media-container img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 1
+ 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
+ 'figure.ecl-media-container .ecl-media-container__media[alt="Alt text"]': 1
+ equals:
+ 'figure.ecl-media-container figcaption.ecl-media-container__caption': Caption
+- array:
+ '#type': pattern
+ '#id': media_container
+ '#fields':
+ media:
+ image:
+ src: "http://via.placeholder.com/150x150"
+ alt: "Image with no caption"
+ assertions:
+ count:
+ 'figure.ecl-media-container img.ecl-media-container__media[src="http://via.placeholder.com/150x150"]': 1
+ 'figure.ecl-media-container figcaption.ecl-media-container__caption': 0
+ 'figure.ecl-media-container .ecl-media-container__media[alt="Image with no caption"]': 1
+- array:
+ '#type': pattern
+ '#id': media_container
+ '#fields':
+ description: "Caption"
+ media:
+ video: ""
+ ratio: "16:9"
+ assertions:
+ count:
+ 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
+ 'figure.ecl-media-container .ecl-media-container__media--ratio-16-9 iframe': 1
+ 'figure.ecl-media-container .ecl-media-container__media--ratio-16-9 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
+ equals:
+ '.ecl-media-container figcaption.ecl-media-container__caption': Caption
+- array:
+ '#type': pattern
+ '#id': media_container
+ '#fields':
+ description: "Caption"
+ media:
+ video: ""
+ ratio: "4-3"
+ assertions:
+ count:
+ 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
+ 'figure.ecl-media-container .ecl-media-container__media--ratio-4-3 iframe': 1
+ 'figure.ecl-media-container .ecl-media-container__media--ratio-4-3 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
+ equals:
+ 'figure.ecl-media-container figcaption.ecl-media-container__caption': Caption
+- array:
+ '#type': pattern
+ '#id': media_container
+ '#fields':
+ description: "Caption"
+ media:
+ video: ""
+ ratio: "3_2"
+ assertions:
+ count:
+ 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
+ 'figure.ecl-media-container .ecl-media-container__media--ratio-3-2 iframe': 1
+ 'figure.ecl-media-container .ecl-media-container__media--ratio-3-2 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
+ equals:
+ 'figure.ecl-media-container figcaption.ecl-media-container__caption': Caption
+- array:
+ '#type': pattern
+ '#id': media_container
+ '#fields':
+ description: "Caption"
+ media:
+ video: ""
+ ratio: "1:1"
+ assertions:
+ count:
+ 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
+ 'figure.ecl-media-container .ecl-media-container__media--ratio-1-1 iframe': 1
+ 'figure.ecl-media-container .ecl-media-container__media--ratio-1-1 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
+ equals:
+ 'figure.ecl-media-container figcaption.ecl-media-container__caption': Caption
+- array:
+ '#type': pattern
+ '#id': media_container
+ '#fields':
+ description: "Caption"
+ media:
+ video: ""
+ ratio: "20:15"
+ assertions:
+ count:
+ 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
+ 'figure.ecl-media-container .ecl-media-container__media--ratio-16-9 iframe': 1
+ 'figure.ecl-media-container .ecl-media-container__media--ratio-16-9 iframe[src="//ec.europa.eu/avservices/play.cfm?ref=I-181645"]': 1
+ equals:
+ '.ecl-media-container figcaption.ecl-media-container__caption': Caption
+- array:
+ '#type': pattern
+ '#id': media_container
+ '#fields':
+ description: "Caption"
+ media:
+ video: ""
+ assertions:
+ count:
+ 'figure.ecl-media-container figcaption.ecl-media-container__caption': 1
+ 'figure.ecl-media-container .ecl-media-container__media iframe': 1
+ 'figure.ecl-media-container .ecl-media-container__media--ratio-16-9 iframe[src="https://www.youtube.com/embed/UmFFTkjs-O0"]': 1
+ equals:
+ 'figure.ecl-media-container figcaption.ecl-media-container__caption': Caption
+