justReturn(true);
Functions\when('wp_doing_ajax')->justReturn(false);
$this->renderer = new BlockRenderer();
}
protected function tearDown(): void
{
Monkey\tearDown();
parent::tearDown();
}
// ── core/table ──────────────────────────────────────────────
public function testRenderTableAddsTableClass(): void
{
$html = 'A 1 1
No table here
'; $this->assertSame($html, $this->renderer->renderTable($html, [])); } // ── core/button ───────────────────────────────────────────── public function testRenderButtonAddsBtnPrimaryByDefault(): void { $html = ''; $block = ['attrs' => []]; $result = $this->renderer->renderButton($html, $block); $classes = $this->classesOf('a', $result); $this->assertStringContainsString('btn', $classes); $this->assertStringContainsString('btn-primary', $classes); } public function testRenderButtonWithBackgroundColor(): void { $html = ''; $block = ['attrs' => ['backgroundColor' => 'danger']]; $result = $this->renderer->renderButton($html, $block); $classes = $this->classesOf('a', $result); $this->assertStringContainsString('btn', $classes); $this->assertStringContainsString('btn-danger', $classes); } public function testRenderButtonOutlineStyle(): void { $html = ''; $block = ['attrs' => ['className' => 'is-style-outline', 'textColor' => 'success']]; $result = $this->renderer->renderButton($html, $block); $classes = $this->classesOf('a', $result); $this->assertStringContainsString('btn', $classes); $this->assertStringContainsString('btn-outline-success', $classes); } public function testRenderButtonOutlineDefaultsToPrimary(): void { $html = ''; $block = ['attrs' => ['className' => 'is-style-outline']]; $result = $this->renderer->renderButton($html, $block); $this->assertStringContainsString('btn-outline-primary', $this->classesOf('a', $result)); } public function testRenderButtonWithGradientOnlyAddsBtnBase(): void { $html = ''; $block = ['attrs' => ['gradient' => 'vivid-cyan-blue']]; $result = $this->renderer->renderButton($html, $block); $classes = $this->classesOf('a', $result); $this->assertStringContainsString('btn', $classes); $this->assertStringNotContainsString('btn-primary', $classes); } public function testRenderButtonWithUnknownColorDefaultsToPrimary(): void { $html = ''; $block = ['attrs' => ['backgroundColor' => 'custom-teal']]; $result = $this->renderer->renderButton($html, $block); $this->assertStringContainsString('btn-primary', $this->classesOf('a', $result)); } public function testRenderButtonEmptyContentReturnsEmpty(): void { $this->assertSame('', $this->renderer->renderButton('', [])); } // ── core/buttons ──────────────────────────────────────────── public function testRenderButtonsAddsFlexClasses(): void { $html = ''; $block = ['attrs' => []]; $result = $this->renderer->renderButtons($html, $block); $classes = $this->classesOfFirst('.wp-block-buttons', $result); $this->assertStringContainsString('d-flex', $classes); $this->assertStringContainsString('flex-wrap', $classes); $this->assertStringContainsString('gap-2', $classes); } public function testRenderButtonsEmptyContentReturnsEmpty(): void { $this->assertSame('', $this->renderer->renderButtons('', [])); } // ── core/image ────────────────────────────────────────────── public function testRenderImageAddsImgFluid(): void { $html = '
'; $block = ['attrs' => []]; $result = $this->renderer->renderQuote($html, $block); $this->assertStringContainsString('blockquote', $this->classesOf('blockquote', $result)); } public function testRenderQuoteWithCiteAddsFooterClass(): void { $html = 'Quote text
'; $block = ['attrs' => []]; $result = $this->renderer->renderQuote($html, $block); $this->assertStringContainsString('blockquote-footer', $result); } public function testRenderQuoteWithoutCite(): void { $html = 'Quote
Author
'; $block = ['attrs' => []]; $result = $this->renderer->renderQuote($html, $block); $this->assertStringContainsString('blockquote', $this->classesOf('blockquote', $result)); $this->assertStringNotContainsString('blockquote-footer', $result); } public function testRenderQuoteEmptyContentReturnsEmpty(): void { $this->assertSame('', $this->renderer->renderQuote('', [])); } // ── core/pullquote ────────────────────────────────────────── public function testRenderPullquoteAddsBlockquoteClass(): void { $html = 'Quote only
Pull
Pull
Source