Passed
Push — 1.0.0-dev ( 9c9ab7...066288 )
by nguereza
02:38
created

FormValidationTest::testSettingErrorMessageOverride()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 21
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 1
eloc 13
c 1
b 1
f 0
nc 1
nop 0
dl 0
loc 21
rs 9.8333
1
<?php 
2
use PHPUnit\Framework\TestCase;
3
class FormValidationTest extends TestCase
4
{   
5
	public static function setUpBeforeClass()
6
    {
7
    
8
    }
9
	
10
	public static function tearDownAfterClass()
11
    {
12
        
13
    }
14
	
15
    protected function setUp()
16
    {
17
		
18
    }
19
20
    protected function tearDown()
21
    {
22
		
23
    }
24
	
25
	
26
27
    // tests
28
    public function testValidationDataIsEmpty()
29
    {
30
		$fv = new FormValidation();
31
		$this->assertEmpty($fv->getData());
32
    }
33
	
34
	public function testValidationDataIsNotEmpty()
35
    {
36
		$fv = new FormValidation();
37
		$fv->setData(array('name' => 'mike'));
38
		$this->assertNotEmpty($fv->getData());
39
		$this->assertArrayHasKey('name', $fv->getData());
40
    }
41
	
42
	public function testCannotDoValidation()
43
    {
44
		$fv = new FormValidation();
45
		$this->assertFalse($fv->canDoValidation());
46
    }
47
48
	public function testSettingErrorDelimiter()
49
    {
50
		$fv = new FormValidation();
51
		$fv->setErrorDelimiter('<a>', '</b>');
52
		$this->assertContains('<a>', $fv->getErrorDelimiter());
53
		$this->assertContains('</b>', $fv->getErrorDelimiter());
54
    }
55
	
56
	public function testSettingErrorsDelimiter()
57
    {
58
		$fv = new FormValidation();
59
		$fv->setErrorsDelimiter('<foo>', '</bar>');
60
		$this->assertContains('<foo>', $fv->getErrorsDelimiter());
61
		$this->assertContains('</bar>', $fv->getErrorsDelimiter());
62
    }
63
	
64
	public function testSettingErrorMessageOverride()
65
    {
66
		
67
		//field specific message for the rule
68
		$fv = new FormValidation();
69
		$fv->setData(array('foo' => ''));
70
		$fv->setRule('foo', 'bar', 'required');
71
		$fv->setMessage('required', 'foo', 'foo required message error');
72
		
73
		$this->assertFalse($fv->run());
74
		$this->assertContains('foo required message error', $fv->returnErrors());
75
		
76
		//global message for the rule
77
		$fv = new FormValidation();
78
		$fv->setData(array('foo' => '', 'bar' => null));
79
		$fv->setRule('foo', 'bar', 'required');
80
		$fv->setRule('bar', 'foo', 'required');
81
		$fv->setMessage('required', 'global required message error');
82
83
		$this->assertFalse($fv->run());
84
		$this->assertContains('global required message error', $fv->returnErrors());
85
    }
86
	
87
	public function testSettingCustomErrorMessage()
88
    {
89
		
90
		$fv = new FormValidation();
91
		$fv->setData(array('foo' => ''));
92
		$fv->setRule('foo', 'bar', 'required');
93
		$fv->setCustomError('foo', 'custom foo message error');
94
		
95
		$this->assertFalse($fv->run());
96
		$this->assertContains('custom foo message error', $fv->returnErrors());
97
		
98
		//with label in the message
99
		$fv = new FormValidation();
100
		$fv->setData(array('foo' => ''));
101
		$fv->setRule('foo', 'bar', 'required');
102
		$fv->setCustomError('foo', 'custom "%1" message error');
103
		
104
		$this->assertFalse($fv->run());
105
		$this->assertContains('custom "bar" message error', $fv->returnErrors());	
106
    }
107
	
108
	public function testReturnErrorsArray()
109
    {
110
		$fv = new FormValidation();
111
		$fv->setRule('name', 'name', 'required');
112
		$fv->setData(array('name' => ''));
113
		$this->assertFalse($fv->run());
114
		$this->assertNotEmpty($fv->returnErrors());
115
    }
116
	
117
	
118
	public function testRequiredRule()
119
    {
120
		$fv = new FormValidation();
121
		$fv->setRule('name', 'name', 'required');
122
		$fv->setData(array('name' => ''));
123
		$this->assertFalse($fv->run());
124
		
125
		$fv = new FormValidation();
126
		$fv->setRule('name', 'name', 'required');
127
		$fv->setData(array('name' => null));
128
		$this->assertFalse($fv->run());
129
		
130
		$fv = new FormValidation();
131
		$fv->setRule('name', 'name', 'required');
132
		$fv->setData(array('name' => 'tony'));
133
		$this->assertTrue($fv->run());
134
    }
135
}