" },
+ { "path": "serialized_blocks", "assert": "contains", "value": "" },
+ { "path": "serialized_blocks", "assert": "contains", "value": "
" },
{ "path": "serialized_blocks", "assert": "contains", "value": "\"className\":\"reveal reveal-delay-1\"" },
{ "path": "serialized_blocks", "assert": "contains", "value": "" }
]
diff --git a/php-transformer/tests/fixtures/parity/html-gallery-figure-and-div-recognizer.json b/php-transformer/tests/fixtures/parity/html-gallery-figure-and-div-recognizer.json
index d11419cf..bd53d748 100644
--- a/php-transformer/tests/fixtures/parity/html-gallery-figure-and-div-recognizer.json
+++ b/php-transformer/tests/fixtures/parity/html-gallery-figure-and-div-recognizer.json
@@ -19,7 +19,7 @@
{ "path": "blocks.0", "name": "core/gallery", "attrs": { "className": "photo-strip", "caption": "Strip caption" } },
{ "path": "blocks.0.innerBlocks.0", "name": "core/image", "attrs": { "url": "https://example.com/a.jpg", "alt": "A" } },
{ "path": "blocks.0.innerBlocks.1", "name": "core/image", "attrs": { "url": "https://example.com/b.jpg", "alt": "B" } },
- { "path": "blocks.1", "name": "core/gallery", "attrs": { "className": "media-grid", "layout": { "type": "grid" } } },
+ { "path": "blocks.1", "name": "core/gallery", "attrs": { "className": "media-grid" } },
{ "path": "blocks.1.innerBlocks.0", "name": "core/image", "attrs": { "url": "https://example.com/c.jpg", "alt": "C" } },
{ "path": "blocks.1.innerBlocks.1", "name": "core/image", "attrs": { "className": "tile is-resized", "url": "https://example.com/d.jpg", "alt": "D", "width": "400", "height": "300", "caption": "D caption" } }
],
@@ -28,7 +28,7 @@
{ "path": "status", "assert": "equals", "value": "success" },
{ "path": "blocks", "assert": "count", "count": 2 },
{ "path": "serialized_blocks", "assert": "contains", "value": "" },
- { "path": "serialized_blocks", "assert": "contains", "value": "" },
+ { "path": "serialized_blocks", "assert": "contains", "value": "" },
{ "path": "serialized_blocks", "assert": "contains", "value": "Strip caption" },
{ "path": "fallbacks", "assert": "count", "count": 0 },
{ "path": "coverage.0.fallback_count", "assert": "equals", "value": 0 }
diff --git a/php-transformer/tests/fixtures/parity/html-head-meta-description-surfaced.json b/php-transformer/tests/fixtures/parity/html-head-meta-description-surfaced.json
new file mode 100644
index 00000000..abbee2cc
--- /dev/null
+++ b/php-transformer/tests/fixtures/parity/html-head-meta-description-surfaced.json
@@ -0,0 +1,28 @@
+{
+ "schema": "blocks-engine/php-transformer/parity-fixture/v1",
+ "name": "html-head-meta-description-surfaced",
+ "description": "Named head metadata (meta name=description and social property tags) must surface in the transform result instead of being silently stripped, so consumers can consciously carry it to the destination document.",
+ "source_reference": {
+ "repo": "php-transformer",
+ "path": "tests/fixtures/parity/html-head-meta-description-surfaced.json",
+ "notes": "Derived from design-preview pipelines where meta name=description vanished between authored HTML and preview output with no fallback or diagnostic, reading as a malformed design rather than a deliberate omission."
+ },
+ "legacy_comparison": {
+ "skip": true,
+ "reason": "Covers current PHP transformer head metadata reporting; no downstream legacy comparison."
+ },
+ "operation": "html_transformer.transform",
+ "input": {
+ "content": "
Mira ValeWork
"
+ },
+ "expected_blocks": [],
+ "expected_fallbacks": [],
+ "expect": [
+ { "path": "status", "assert": "equals", "value": "success" },
+ { "path": "fallbacks", "assert": "count", "count": 0 },
+ { "path": "source_reports.head_metadata", "assert": "count", "count": 2 },
+ { "path": "source_reports.head_metadata.0.name", "assert": "equals", "value": "description" },
+ { "path": "source_reports.head_metadata.0.content", "assert": "equals", "value": "Portfolio of Mira Vale, independent creative director." },
+ { "path": "source_reports.head_metadata.1.property", "assert": "equals", "value": "og:title" }
+ ]
+}
diff --git a/php-transformer/tests/fixtures/parity/html-inline-split-grid-stays-group.json b/php-transformer/tests/fixtures/parity/html-inline-split-grid-stays-group.json
index 64ad8513..d8559282 100644
--- a/php-transformer/tests/fixtures/parity/html-inline-split-grid-stays-group.json
+++ b/php-transformer/tests/fixtures/parity/html-inline-split-grid-stays-group.json
@@ -23,7 +23,7 @@
"expected_fallbacks": [],
"expect": [
{ "path": "status", "assert": "equals", "value": "success" },
- { "path": "serialized_blocks", "assert": "contains", "value": "" },
+ { "path": "serialized_blocks", "assert": "contains", "value": "blocks-engine-css-owned-layout blocks-engine-css-owned-grid\">" },
{ "path": "serialized_blocks", "assert": "contains", "value": "feature-copy blocks-engine-css-owned-layout" },
{ "path": "serialized_blocks", "assert": "not_contains", "value": "blocks-engine/author-layout" },
{ "path": "serialized_blocks", "assert": "not_contains", "value": "