1<?php
2
3require_once(__DIR__ . '/../webcomponent.php');
4
5/**
6 * Test the component plugin
7 *
8 * @group plugin_webcomponent
9 * @group plugins
10 */
11class plugin_webcomponent_blockquote_test extends DokuWikiTest
12{
13
14    protected $pluginsEnabled = [webcomponent::PLUGIN_NAME];
15
16
17    public function test_tag_name()
18    {
19
20        $elementName = syntax_plugin_webcomponent_blockquote::getTagName();
21
22        $this->assertEquals('blockquote', $elementName);
23
24    }
25
26    public function test_base()
27    {
28
29        $element = syntax_plugin_webcomponent_blockquote::getTagName();
30        $doku_text = '<' . $element . '>MyQuote</' . $element . '>';
31        $expected = '<div class="card m-3">'.DOKU_LF
32            .DOKU_TAB.'<div class="card-body">'.DOKU_LF
33            .DOKU_TAB.DOKU_TAB.'<blockquote class="blockquote m-0">'.DOKU_LF
34            .DOKU_TAB.DOKU_TAB.'MyQuote'.DOKU_LF
35            .DOKU_TAB.DOKU_TAB.'</blockquote>'.DOKU_LF
36            .DOKU_TAB.'</div>'.DOKU_LF
37            .'</div>';
38
39        $instructions = p_get_instructions($doku_text);
40        $xhtml = p_render('xhtml', $instructions, $info);
41        $this->assertEquals($expected, $xhtml);
42
43    }
44
45    public function test_with_cite_base()
46    {
47
48        $element = syntax_plugin_webcomponent_blockquote::getTagName();
49        $doku_text = '<' . $element . '>MyQuote<cite>Nico</cite></' . $element . '>';
50        $expected = '<div class="card m-3">'.DOKU_LF
51            .DOKU_TAB.'<div class="card-body">'.DOKU_LF
52            .DOKU_TAB.DOKU_TAB.'<blockquote class="blockquote m-0">'.DOKU_LF
53            .DOKU_TAB.DOKU_TAB.'MyQuote'.DOKU_LF
54            .DOKU_TAB.DOKU_TAB.'<footer class="blockquote-footer text-right"><cite>Nico</cite></footer>'.DOKU_LF
55            .DOKU_TAB.DOKU_TAB.'</blockquote>'.DOKU_LF
56            .DOKU_TAB.'</div>'.DOKU_LF
57            .'</div>';
58        $instructions = p_get_instructions($doku_text);
59        $xhtml = p_render('xhtml', $instructions, $info);
60        $this->assertEquals($expected, $xhtml);
61
62    }
63
64    public function test_base_no_class()
65    {
66
67        $element = syntax_plugin_webcomponent_blockquote::getTagName();
68        $doku_text = '<' . $element . ' class="" >MyQuote</' . $element . '>';
69        $expected = '<div class="card">'.DOKU_LF
70            .DOKU_TAB.'<div class="card-body">'.DOKU_LF
71            .DOKU_TAB.DOKU_TAB.'<blockquote class="blockquote m-0">'.DOKU_LF
72            .DOKU_TAB.DOKU_TAB.'MyQuote'.DOKU_LF
73            .DOKU_TAB.DOKU_TAB.'</blockquote>'.DOKU_LF
74            .DOKU_TAB.'</div>'.DOKU_LF
75            .'</div>';
76
77        $instructions = p_get_instructions($doku_text);
78        $xhtml = p_render('xhtml', $instructions, $info);
79        $this->assertEquals($expected, $xhtml);
80
81    }
82
83
84}
85