From 81efac4a53f0f76da914b17406368d72c5b0f633 Mon Sep 17 00:00:00 2001 From: Yutaka Kurosaki <> Date: Sat, 9 May 2026 11:08:06 +0900 Subject: [PATCH] Add integration tests for mixed media in Markdown rendering Covers image+video coexistence, multiple videos in one paragraph, videos inside list items, wiki link non-interference, YouTube timestamps end-to-end, and audio rendering through renderMarkdown. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../Unit/Markdown/MediaEmbedExtensionTest.php | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/tests/Unit/Markdown/MediaEmbedExtensionTest.php b/src/tests/Unit/Markdown/MediaEmbedExtensionTest.php index 51b2c03..d7456ed 100644 --- a/src/tests/Unit/Markdown/MediaEmbedExtensionTest.php +++ b/src/tests/Unit/Markdown/MediaEmbedExtensionTest.php @@ -35,4 +35,45 @@ public function test_vimeo_url_renders_as_iframe(): void $this->assertStringContainsString('assertStringContainsString('player.vimeo.com', $html); } + + public function test_image_and_video_coexist_in_same_document(): void + { + $md = "![photo](/photo.png)\n\n![](/demo.mp4)"; + $html = Document::renderMarkdown($md); + $this->assertStringContainsString('assertStringContainsString('assertSame(2, substr_count($html, 'assertStringContainsString('
  • ', $html); + $this->assertStringContainsString('assertStringContainsString('assertStringContainsString('[[Other Doc]]', $html); + } + + public function test_youtube_with_timestamp_in_document(): void + { + $html = Document::renderMarkdown('![](https://www.youtube.com/watch?v=dQw4w9WgXcQ&t=30s)'); + $this->assertStringContainsString('?start=30', $html); + } + + public function test_audio_url_renders_as_audio_tag(): void + { + $html = Document::renderMarkdown('![](/clip.mp3)'); + $this->assertStringContainsString('assertStringContainsString('src="/clip.mp3"', $html); + } }