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

TextAreaTest::testHandleRequest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
c 2
b 0
f 1
dl 0
loc 8
rs 9.4285
nc 1
cc 1
eloc 7
nop 0
1
<?php
2
3
  namespace Tests\Fiv\Form\Element;
4
5
  use Fiv\Form\Element\TextArea;
6
  use Fiv\Form\Filter\CallbackFilter;
7
  use Fiv\Form\Form;
8
  use Fiv\Form\FormData;
9
10
  /**
11
   * @package Tests\Form\Form
12
   */
13
  class TextAreaTest extends \PHPUnit_Framework_TestCase {
14
15
    /**
16
     * @return \Fiv\Form\Element\TextArea
17
     */
18
    protected function getElement() {
19
      $form = new Form();
20
      return $form->textarea('test');
21
    }
22
23
24
    public function testRender() {
25
      $element = $this->getElement();
26
      $this->assertContains('<textarea', (string) $element);
27
      $this->assertContains('</textarea', (string) $element);
28
29
      $element->setValue('custom data');
30
      $this->assertContains('>custom data<', $element->render());
31
    }
32
33
34
    public function testAttributes() {
35
      $element = $this->getElement();
36
      $element->setAttributes([]);
37
      $this->assertEquals('', $element->renderAttributes());
38
    }
39
40
41
    public function testFilter() {
42
      $element = $this->getElement();
43
      $element->addFilter(new CallbackFilter('trim'));
44
45
      $this->assertEmpty($element->getValue());
46
47
      $element->setValue('test_value');
48
      $this->assertEquals('test_value', $element->getValue());
49
50
      $element->setValue('  other value');
51
      $this->assertEquals('other value', $element->getValue());
52
    }
53
54
55
    public function testHandleRequest() {
56
      $element = new TextArea();
57
      $element->setName('test');
58
      $element->handle(new FormData('post', ['test' => 'test text']));
59
      $this->assertEquals('test text', $element->getValue());
60
      $element->handle(new FormData('post', []));
61
      $this->assertNull($element->getValue());
62
    }
63
64
  }