Completed
Push — master ( 9f8480...602ed2 )
by Helmut
04:40
created

NameTest::it_renders_model_values()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 8
rs 9.4285
nc 1
cc 1
eloc 6
nop 0
1
<?php
2
3
namespace Helmut\Forms\Testing;
4
5
class NameTest extends FormTestCase {
6
7
	/** @test */
8
	public function it_can_be_rendered()
9
	{
10
		$form = $this->form();
11
		$form->name('foo');
12
		$this->assertContains('<input name="foo_first" value=""', $form->render());
13
		$this->assertContains('<input name="foo_surname" value=""', $form->render());
14
	}
15
16
	/** @test */
17
	public function it_renders_default_values()
18
	{
19
		$form = $this->form();
20
		$form->name('foo')->default(['first'=>'bar', 'surname'=>'baz']);
21
		$this->assertContains('<input name="foo_first" value="bar"', $form->render());
22
		$this->assertContains('<input name="foo_surname" value="baz"', $form->render());
23
	}
24
25
	/** @test */
26
	public function it_renders_model_values()
27
	{
28
		$form = $this->form();
29
		$form->defaults($this->model(['foo'=>'bar baz', 'foo_first'=>'bar', 'foo_surname'=>'baz']));
30
		$form->name('foo');
31
		$this->assertContains('<input name="foo_first" value="bar"', $form->render());
32
		$this->assertContains('<input name="foo_surname" value="baz"', $form->render());
33
	}
34
35
	/** @test */
36
	public function it_can_fill_model_values()
37
	{
38
		$model = $this->model(['foo'=>'', 'foo_first'=>'', 'foo_surname'=>'']);
39
40
		$form = $this->form();
41
		$form->name('foo')->default(['first'=>'bar', 'surname'=>'baz']);
42
		$form->fill($model);
43
44
		$form->assertEquals($model->foo, 'bar baz');
45
		$form->assertEquals($model->foo_first, 'bar');
46
		$form->assertEquals($model->foo_surname, 'baz');
47
	}		
48
49
	/** @test */
50
	public function it_escapes_values()
51
	{
52
		$form = $this->form();
53
		$form->name('foo')->default(['first'=>'bar&', 'surname'=>'baz&']);
54
		$this->assertContains('<input name="foo_first" value="bar&amp;"', $form->render());
55
		$this->assertContains('<input name="foo_surname" value="baz&amp;"', $form->render());
56
	}		
57
58
	/** @test */
59
	public function it_provides_expected_values()
60
	{
61
		$form = $this->form();
62
		$form->name('foo');
63
64
		$expected = ['foo_first'=>'', 'foo_surname'=>'', 'foo'=>''];
65
		$this->assertSame($form->get('foo'), $expected);
66
	}
67
68
	/** @test */
69
	public function it_provides_expected_default_values()
70
	{
71
		$form = $this->form();
72
		$form->name('foo')->default(['first'=>'bar', 'surname'=>'baz']);
73
74
		$expected = ['foo_first'=>'bar', 'foo_surname'=>'baz', 'foo'=>'bar baz'];
75
		$this->assertSame($form->get('foo'), $expected);
76
	}	
77
78
	/** @test */
79
    public function it_validates_required()
80
    {
81
    	$this->assertValid(function($form) { $form->name('foo'); });
82
    	$this->assertValid(function($form) { $form->name('foo')->default(['first'=>'bar', 'surname'=>'baz'])->required(); });
83
84
    	$this->assertNotValid(function($form) { $form->name('foo')->required(); });
85
    	$this->assertNotValid(function($form) { $form->name('foo')->default(['first'=>'bar'])->required(); });
86
	}
87
88
}
89