1<?php
2
3namespace dokuwiki\plugin\bureaucracy\test;
4
5use \Doku_Form;
6
7/**
8 * @group plugin_bureaucracyau
9 * @group plugins
10 */
11class bureaucracyau_field_hidden_test extends BureaucracyTest
12{
13
14    public function dataProvider()
15    {
16        return [
17            [
18                'hidden:@@hiddenLabel@@',
19                'default value of the hidden field',
20                'default value of the hidden field',
21                'hidden:default value of the hidden field',
22                [],
23                'valid hidden',
24            ],
25        ];
26    }
27
28    /**
29     * @dataProvider dataProvider
30     *
31     * @param string $templateSyntax
32     * @param        $postedValue
33     * @param string $expectedWikiText
34     * @param string $expectedValidationErrors
35     * @param string $msg
36     *
37     */
38    public function test_field_hidden_submit(
39        $templateSyntax,
40        $defaultValue,
41        $postedValue,
42        $expectedWikiText,
43        $expectedValidationErrors,
44        $msg
45    ) {
46        $actualValidationErrors = [];
47
48        $label = 'hiddenLabel';
49        $actualWikiText = parent::send_form_action_template(
50            "hidden \"$label\" \"=$defaultValue\"",
51            $templateSyntax,
52            $actualValidationErrors,
53            $postedValue
54        );
55
56        if (empty($expectedValidationErrors)) {
57            $this->assertEquals($expectedWikiText, $actualWikiText, $msg);
58        }
59        $this->assertEquals($expectedValidationErrors, $actualValidationErrors, $msg);
60    }
61
62    public function test_field_time_render()
63    {
64        $formSyntax = 'hidden hiddenLabel "=default value of the hidden field"';
65        $instr = p_get_instructions("<form>\n$formSyntax\n</form>");
66
67        $actualHTML = p_render('xhtml', $instr, $info);
68
69        $hiddenFormPrefix = '<form class="bureaucracyau__plugin" id="bureaucracyau__plugin1" enctype="multipart/form-data" method="post" action="" accept-charset="utf-8"><div class="no">
70<input type="hidden" name="sectok" value="" /><input type="hidden" name="bureaucracy[$$id]" value="1" />';
71        $expectedFieldHTML = '<input type="hidden" name="bureaucracy[0]" value="default value of the hidden field" />';
72        $hiddenFormSuffix = '</div></form>';
73        $expectedHTML = "$hiddenFormPrefix$expectedFieldHTML$hiddenFormSuffix";
74
75        $this->assertEquals(trim($expectedHTML), trim($actualHTML));
76    }
77}
78