Completed
Pull Request — master (#28)
by Vitaliy
02:38 queued 19s
created

CheckboxTest::testCheckedState()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 24
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 24
rs 8.9713
nc 1
cc 1
eloc 16
nop 0
1
<?php
2
3
  namespace Tests\Fiv\Form\Element;
4
5
  use Fiv\Form\Element\Checkbox;
6
  use Fiv\Form\Form;
7
  use Fiv\Form\FormData;
8
9
  /**
10
   *
11
   */
12
  class CheckboxTest extends \PHPUnit_Framework_TestCase {
13
14
15
    public function testUncheckedSubmit() {
16
      $form = new Form();
17
      $form->setName('test_form');
18
      $checkbox = $form->checkbox('send_emails')->check();
19
      $this->assertEquals(1, $checkbox->getValue());
20
      $this->assertTrue($checkbox->isChecked());
21
22
      // use unchecked checkbox
23
      $form->handle(new FormData('post', [
24
        'test_form' => 1,
25
      ]));
26
27
28
      $this->assertEmpty($checkbox->getValue());
29
30
      $form->handle(new FormData('post', [
31
        'test_form' => 1,
32
        'send_emails' => 1,
33
      ]));
34
35
      $this->assertEquals(1, $checkbox->getValue());
36
37
    }
38
39
40
    public function testCheckedState() {
41
      $form = new Form();
42
      $form->setName('test_form');
43
      $checkbox = $form->checkbox('send_emails')->unCheck();
44
      $this->assertEquals(0, $checkbox->getValue());
45
      $this->assertFalse($checkbox->isChecked());
46
47
      // submit checked value
48
      $form->handle(new FormData('post', [
49
        'test_form' => 1,
50
        'send_emails' => 1,
51
      ]));
52
53
      $this->assertEquals(1, $checkbox->getValue());
54
      $this->assertTrue($checkbox->isChecked());
55
56
      // submit unchecked value
57
      $form->handle(new FormData('post', [
58
        'test_form' => 1,
59
        'send_emails' => 0,
60
      ]));
61
      $this->assertEquals(0, $checkbox->getValue());
62
      $this->assertFalse($checkbox->isChecked());
63
    }
64
65
66
    public function testRender() {
67
      $checkbox = new Checkbox();
68
      $checkbox->setName('send_emails');
69
      $this->assertContains('<input type="checkbox" name="send_emails" value="0" ', $checkbox->render());
70
    }
71
72
73
    /**
74
     * @expectedException \InvalidArgumentException
75
     */
76
    public function testInvalidValue() {
77
      $checkbox = new Checkbox();
78
      $this->assertFalse($checkbox->isChecked());
79
80
      $checkbox->setValue(4);
81
82
    }
83
84
85
    public function testHandleRequest() {
86
      $checkbox = new Checkbox();
87
      $checkbox->setName('test');
88
      $checkbox->handle(new FormData('post', ['test' => 1]));
89
      $this->assertTrue($checkbox->isChecked());
90
      $checkbox->handle(new FormData('post', []));
91
      $this->assertFalse($checkbox->isChecked());
92
    }
93
94
  }
95