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

DropdownTest::it_validates_required()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 1
Ratio 16.67 %

Importance

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