Passed
Push — master ( 9503f0...488e4f )
by Petr
02:34
created

SpecialTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 4
eloc 26
c 2
b 0
f 0
dl 0
loc 58
rs 10
1
<?php
2
3
namespace ControlTests;
4
5
6
use CommonTestClass;
7
use kalanis\kw_forms\Controls;
8
use kalanis\kw_forms\Exceptions\RenderException;
9
10
11
class SpecialTest extends CommonTestClass
12
{
13
    /**
14
     * @throws RenderException
15
     */
16
    public function testControlEscape(): void
17
    {
18
        Controls\Hidden::escapeOutput(false); // it affects both outputs
19
20
        $input1 = new Controls\Hidden();
21
        $input1->set('myown', '__$°#&@{}^<>*~đĐ[]`\'łŁ$|€¶ŧ←↓→øþ[]\\``!@#$%^&*{}\\');
22
23
        $input2 = new Controls\Text();
24
        $input2->set('myown', '<?php =eval("echo evil code")');
25
26
        $this->assertEquals(' <input type="hidden" value="__$°#&@{}^<>*~đĐ[]`\'łŁ$|€¶ŧ←↓→øþ[]\``!@#$%^&*{}\" name="myown" /> ', $input1->render());
27
        $this->assertEquals(' <input type="text" value="<?php =eval("echo evil code")" id="myown" name="myown" /> ', $input2->render());
28
29
        Controls\Text::escapeOutput(true); // it affects both outputs
30
31
        $this->assertEquals(' <input type="hidden" value="__$°#&amp;@{}^&lt;&gt;*~đĐ[]`&apos;łŁ$|€¶ŧ←↓→øþ[]\``!@#$%^&amp;*{}\" name="myown" /> ', $input1->render());
32
        $this->assertEquals(' <input type="text" value="&lt;?php =eval(&quot;echo evil code&quot;)" id="myown" name="myown" /> ', $input2->render());
33
    }
34
35
    /**
36
     * @throws RenderException
37
     */
38
    public function testHidden(): void
39
    {
40
        $input = new Controls\Hidden();
41
        $input->set('myown', 'original');
42
        $this->assertEquals('<input type="hidden" value="original" name="myown" />', $input->renderInput());
43
        $input->setValue('jhgfd');
44
        $this->assertEquals('<input type="hidden" value="jhgfd" name="myown" />', $input->renderInput());
45
    }
46
47
    /**
48
     * @throws RenderException
49
     */
50
    public function testDescription(): void
51
    {
52
        $input = new Controls\Description();
53
        $input->setEntry('myown', 'original', 'not to look');
54
        $this->assertEquals('original ', $input->renderInput());
55
        $input->setValue('jhgfd');
56
        $this->assertEquals('jhgfd ', $input->renderInput());
57
    }
58
59
    /**
60
     * @throws RenderException
61
     */
62
    public function testHtml(): void
63
    {
64
        $input = new Controls\Html();
65
        $input->setEntry('myown', 'original', 'not to look');
66
        $this->assertEquals('<span  name="myown">original</span>', $input->renderInput());
67
        $input->setValue('jhgfd');
68
        $this->assertEquals('<span  name="myown">jhgfd</span>', $input->renderInput());
69
    }
70
}
71