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

BoxTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 84
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 52
c 1
b 0
f 0
dl 0
loc 84
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 BoxTest extends CommonTestClass
12
{
13
    /**
14
     * @throws RenderException
15
     */
16
    public function testBox(): void
17
    {
18
        $input = new Controls\Checkbox();
19
        $input->set('myown', 'original', 'check me');
20
        $id = $input->getAttribute('id');
21
        $this->assertEquals('<label for="' . $id . '">check me</label>', $input->renderLabel());
22
        $this->assertEquals('<input type="checkbox" value="original" id="' . $id . '" name="myown" />', $input->renderInput());
23
        $input->setValue('jhgfd');
24
        $this->assertEquals('original', $input->getOriginalValue());
25
        $this->assertEquals('<input type="checkbox" value="original" id="' . $id . '" name="myown" checked="checked" />', $input->renderInput());
26
    }
27
28
    /**
29
     * @throws RenderException
30
     */
31
    public function testBoxes(): void
32
    {
33
        $extra = new Controls\Checkbox();
34
        $extra->set('edd', '1', 'fourth');
35
36
        $input = new Controls\Checkboxes();
37
        $input->set('myown', ['bar' => 'yep'], 'choose me', ['foo' => 'first', 'bar' => 'second', 'baz' => 'third', 'edd' => $extra]);
38
39
        $this->assertEquals(
40
  '<input type="checkbox" value="first" id="myown_foo" name="foo" /> <label for="myown_foo">first</label>' . PHP_EOL
41
. '<input type="checkbox" value="second" id="myown_bar" checked="checked" name="bar" /> <label for="myown_bar">second</label>' . PHP_EOL
42
. '<input type="checkbox" value="third" id="myown_baz" name="baz" /> <label for="myown_baz">third</label>' . PHP_EOL
43
. '<input type="checkbox" value="1" id="myown_edd" name="edd" /> <label for="myown_edd">fourth</label>' . PHP_EOL, $input->renderInput());
44
        $input->setValues(['baz' => 'yep']);
45
        $values = $input->getValues();
46
        $this->assertEmpty($values['bar']);
47
        $this->assertEquals('third', $values['baz']);
48
        $this->assertEquals(
49
  '<input type="checkbox" value="first" id="myown_foo" name="foo" /> <label for="myown_foo">first</label>' . PHP_EOL
50
. '<input type="checkbox" value="second" id="myown_bar" name="bar" /> <label for="myown_bar">second</label>' . PHP_EOL
51
. '<input type="checkbox" value="third" id="myown_baz" name="baz" checked="checked" /> <label for="myown_baz">third</label>' . PHP_EOL
52
. '<input type="checkbox" value="1" id="myown_edd" name="edd" /> <label for="myown_edd">fourth</label>' . PHP_EOL, $input->renderInput());
53
    }
54
55
    /**
56
     * @throws RenderException
57
     */
58
    public function testRadio(): void
59
    {
60
        $input = new Controls\Radio();
61
        $input->set('myown', 'original', 'choose me');
62
        $this->assertEquals('<label for="myown">choose me</label>', $input->renderLabel());
63
        $this->assertEquals('<input type="radio" value="original" id="myown" name="myown" />', $input->renderInput());
64
        $input->setValue('jhgfd');
65
        $this->assertEquals('<input type="radio" value="original" id="myown" name="myown" checked="checked" />', $input->renderInput());
66
67
        $this->assertNotEmpty($input->render());
68
    }
69
70
    /**
71
     * @throws RenderException
72
     */
73
    public function testRadioSet(): void
74
    {
75
        $extra = new Controls\Radio();
76
        $extra->set('edd', '1', 'fourth');
77
78
        $input = new Controls\RadioSet();
79
        $input->set('myown', 'bar', 'choose me', ['foo' => 'first', 'bar' => 'second', 'baz' => 'third', 'edd' => $extra]);
80
81
        $this->assertEquals(
82
  '<input type="radio" value="foo" id="myown_foo" name="myown" /> <label for="myown_foo">first</label>' . PHP_EOL
83
. '<input type="radio" value="bar" checked="checked" id="myown_bar" name="myown" /> <label for="myown_bar">second</label>' . PHP_EOL
84
. '<input type="radio" value="baz" id="myown_baz" name="myown" /> <label for="myown_baz">third</label>' . PHP_EOL
85
. '<input type="radio" value="1" id="myown_1" name="myown" /> <label for="myown_1">fourth</label>', $input->renderInput());
86
        $input->setValue('baz');
87
        $this->assertEquals('baz', $input->getValue());
88
        $this->assertEquals(
89
  '<input type="radio" value="foo" id="myown_foo" name="myown" /> <label for="myown_foo">first</label>' . PHP_EOL
90
. '<input type="radio" value="bar" id="myown_bar" name="myown" /> <label for="myown_bar">second</label>' . PHP_EOL
91
. '<input type="radio" value="baz" id="myown_baz" name="myown" checked="checked" /> <label for="myown_baz">third</label>' . PHP_EOL
92
. '<input type="radio" value="1" id="myown_1" name="myown" /> <label for="myown_1">fourth</label>', $input->renderInput());
93
        $input->setValue('eff'); // unknown
94
        $this->assertEmpty($input->getValue());
95
    }
96
}
97