6$assert =
static function(
bool $condition,
string $message) use (&
$failures):
void {
10require_once
$base .
'/modules/dbxContent/include/dbxContentRenderer.class.php';
17 ' class="dbx-cms-inline-video-block" data-cms-video-width="1024" data-cms-video-height="800" data-cms-video-align="center"',
22 str_contains((
string)(
$options[
'style'] ??
''),
'width: 1024px')
23 && str_contains((
string)(
$options[
'style'] ??
''),
'height: 800px'),
24 'The frontend renderer does not preserve a CMS video size of 1024 x 800.'
27 (
$options[
'align'] ??
'') ===
'center'
28 && str_contains((
string)(
$options[
'style'] ??
''),
'margin-left: auto')
29 && str_contains((
string)(
$options[
'style'] ??
''),
'margin-right: auto'),
30 'The frontend renderer does not preserve horizontal video centering.'
36 array(
'id' => 999,
'mime' =>
'video/mp4',
'file_name' =>
'test.mp4',
'title' =>
'Testvideo'),
37 ' data-cms-video-width="640px" data-cms-video-align="center"',
41 str_contains(
$playerHtml,
'data-video-align="center"')
44 'The rendered frontend player does not receive the centered video alignment.'
47foreach (array(
'dbxapp',
'dbxdocs',
'steal') as
$design) {
48 $baseCss = (string)file_get_contents(
$base .
'/design/' .
$design .
'/css/base.css');
52 str_contains(
$contentCss,
'.ratio:has(> .dbx-content-inline-video[style*="width"])')
53 && str_contains(
$contentCss,
'--bs-aspect-ratio: 0;')
54 && str_contains(
$contentCss,
'width: fit-content;'),
55 'Custom frontend video sizes remain constrained by a ratio container in design ' .
$design .
'.'
58 str_contains(
$cmsCss,
'.ratio:has(> .dbx-cms-inline-video-block[style*="width"])')
59 && str_contains(
$cmsCss,
'resize: both;'),
60 'Custom CMS video sizes remain constrained by a ratio container in design ' .
$design .
'.'
63 str_contains(
$contentCss,
'.dbx-content-inline-video[data-video-align="center"]')
64 && str_contains(
$contentCss,
'.ratio:has(> .dbx-content-inline-video[data-video-align="center"])')
65 && str_contains(
$cmsCss,
'.dbx-cms-inline-video-block[data-cms-video-align="center"]')
66 && str_contains(
$cmsCss,
'.ratio:has(> .dbx-cms-inline-video-block[data-cms-video-align="center"])'),
67 'Centered videos are not aligned in the editor and frontend for design ' .
$design .
'.'
70 str_contains($baseCss,
'.ratio:has(> .dbx-content-inline-video[style*="width"])')
71 && str_contains($baseCss,
'.dbx-content-inline-video[data-video-align="center"]')
72 && str_contains($baseCss,
'.ratio:has(> .dbx-content-inline-video[data-video-align="center"])'),
73 'Critical centered-video layout is missing before async content CSS loads in design ' .
$design .
'.'
76 !preg_match(
'/\.dbx-content-inline-video\s*\{[^}]*container-type:\s*size\s*;/s',
$contentCss)
77 && !preg_match(
'/\.dbx-cms-inline-video-block\s*\{[^}]*container-type:\s*size\s*;/s',
$cmsCss),
78 'Auto-height videos collapse because of two-axis size containment in design ' .
$design .
'.'
81 str_contains(
$contentCss,
'#dbxContent .dbx-content-inline-video[style*="height"] .dbx-content-video-player')
82 && str_contains(
$cmsCss,
'#dbxContent .dbx-cms-inline-video-block[style*="height"] .dbx-cms-inline-video-thumb'),
83 'Explicit video heights do not override the generic responsive media height in design ' .
$design .
'.'
89 str_contains(
$cmsJs,
'let width = wrapperWidth || size.width;')
90 && str_contains(
$cmsJs,
'let height = wrapperHeight || size.height;'),
91 'The CMS size synchronizer does not treat the saved video wrapper size as authoritative.'
94 str_contains(
$cmsJs,
'data-cms-video-options-align')
95 && str_contains(
$cmsJs,
'applyInlineVideoAlignment(media, align);'),
96 'The CMS video dialog does not expose and apply horizontal alignment.'
100 fwrite(STDERR,
"FAIL\n- " . implode(
"\n- ",
$failures) .
"\n");
104echo
'OK CMS video sizes are preserved in the editor and frontend.' . PHP_EOL;
if(trim($second) !=='second') $design
DBX schema administration.