Completed
Pull Request — master (#28)
by Vitaliy
03:13
created

CheckboxTest::testHandleRequest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 8
rs 9.4285
cc 1
eloc 7
nc 1
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\RequestContext;
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->setData([
0 ignored issues
show
Deprecated Code introduced by
The method Fiv\Form\Form::setData() has been deprecated.

This method has been deprecated.

Loading history...
24
        'test_form' => 1,
25
      ]);
26
27
28
      $this->assertEquals(0, $checkbox->getValue());
29
30
31
      $form->setData([
0 ignored issues
show
Deprecated Code introduced by
The method Fiv\Form\Form::setData() has been deprecated.

This method has been deprecated.

Loading history...
32
        'test_form' => 1,
33
        'send_emails' => 0,
34
      ]);
35
36
      $this->assertEquals(1, $checkbox->getValue());
37
38
    }
39
40
41
    public function testCheckedSubmit() {
42
      $form = new Form();
43
      $form->setName('test_form');
44
      $checkbox = $form->checkbox('send_emails')->unCheck();
45
      $this->assertEquals(0, $checkbox->getValue());
46
      $this->assertFalse($checkbox->isChecked());
47
48
      // use unchecked checkbox
49
      $form->setData([
0 ignored issues
show
Deprecated Code introduced by
The method Fiv\Form\Form::setData() has been deprecated.

This method has been deprecated.

Loading history...
50
        'test_form' => 1,
51
        'send_emails' => 0, // any value
52
      ]);
53
54
      $this->assertEquals(1, $checkbox->getValue());
55
      $this->assertTrue($checkbox->isChecked());
56
    }
57
58
59
    public function testRender() {
60
      $checkbox = new Checkbox();
61
      $checkbox->setName('send_emails');
62
      $this->assertContains('<input type="checkbox" name="send_emails" value="0" ', $checkbox->render());
63
    }
64
65
66
    /**
67
     * @expectedException \InvalidArgumentException
68
     */
69
    public function testInvalidValue() {
70
      $checkbox = new Checkbox();
71
      $this->assertFalse($checkbox->isChecked());
72
73
      $checkbox->setValue(4);
74
75
    }
76
77
78
    public function testHandleRequest() {
79
      $checkbox = new Checkbox();
80
      $checkbox->setName('test');
81
      $checkbox->handleRequestContext(new RequestContext('post', ['test' => 1]));
82
      $this->assertTrue($checkbox->isChecked());
83
      $checkbox->handleRequestContext(new RequestContext('post', []));
84
      $this->assertFalse($checkbox->isChecked());
85
    }
86
87
  }
88