2
2
namespace Barryvdh \Form \Tests ;
3
3
4
4
use Barryvdh \Form \Facade \FormFactory ;
5
+ use Barryvdh \Form \Tests \Types \ParentFormType ;
5
6
use Barryvdh \Form \Tests \Types \UserFormType ;
6
- use Symfony \Component \Form \Extension \Core \Type \FormType ;
7
- use Symfony \Component \Form \Extension \Core \Type \TextType ;
8
- use Symfony \Component \Form \Extension \Core \Type \EmailType ;
9
7
use Symfony \Component \Form \Extension \Core \Type \SubmitType ;
10
8
use Symfony \Component \HttpFoundation \Request ;
11
9
12
10
class ValidationTest extends TestCase
13
11
{
14
-
15
12
public function testValidForm ()
16
13
{
17
- /** @var UserFormType $form */
14
+ /** @var \Symfony\Component\Form\Form $form */
18
15
$ form = FormFactory::create (UserFormType::class, [])
19
16
->add ('save ' , SubmitType::class, ['label ' => 'Save user ' ]);
20
17
@@ -34,7 +31,7 @@ public function testValidForm()
34
31
35
32
public function testMissingNameForm ()
36
33
{
37
- /** @var UserFormType $form */
34
+ /** @var \Symfony\Component\Form\Form $form */
38
35
$ form = FormFactory::create (UserFormType::class, [])
39
36
->add ('save ' , SubmitType::class, ['label ' => 'Save user ' ]);
40
37
@@ -49,11 +46,12 @@ public function testMissingNameForm()
49
46
50
47
$ this ->assertTrue ($ form ->isSubmitted ());
51
48
$ this ->assertFalse ($ form ->isValid ());
49
+ $ this ->assertEquals ('The name field is required. ' , $ form ->getErrors (true )[0 ]->getMessage ());
52
50
}
53
51
54
52
public function testInvalidEmailForm ()
55
53
{
56
- /** @var UserFormType $form */
54
+ /** @var \Symfony\Component\Form\Form $form */
57
55
$ form = FormFactory::create (UserFormType::class, [])
58
56
->add ('save ' , SubmitType::class, ['label ' => 'Save user ' ]);
59
57
@@ -69,6 +67,86 @@ public function testInvalidEmailForm()
69
67
70
68
$ this ->assertTrue ($ form ->isSubmitted ());
71
69
$ this ->assertFalse ($ form ->isValid ());
70
+ $ this ->assertEquals ('The email must be a valid email address. ' , $ form ->getErrors (true )[0 ]->getMessage ());
71
+ }
72
+
73
+ public function testEmptyCollectionForm ()
74
+ {
75
+ /** @var \Symfony\Component\Form\Form $form */
76
+ $ form = FormFactory::create (ParentFormType::class, [])
77
+ ->add ('save ' , SubmitType::class, ['label ' => 'Save parent ' ]);
78
+
79
+ $ request = $ this ->createPostRequest ([
80
+ 'parent_form ' => [
81
+ 'name ' => 'Barry ' ,
82
+ 'save ' => true ,
83
+ ]
84
+ ]);
85
+
86
+ $ form ->handleRequest ($ request );
87
+
88
+ $ this ->assertTrue ($ form ->isSubmitted ());
89
+ $ this ->assertFalse ($ form ->isValid ());
90
+ $ this ->assertEquals ('The children field is required. ' , $ form ->getErrors (true )[0 ]->getMessage ());
91
+ }
92
+
93
+ public function testInvalidCollectionForm ()
94
+ {
95
+ /** @var \Symfony\Component\Form\Form $form */
96
+ $ form = FormFactory::create (ParentFormType::class, [])
97
+ ->add ('save ' , SubmitType::class, ['label ' => 'Save parent ' ]);
98
+
99
+ $ request = $ this ->createPostRequest ([
100
+ 'parent_form ' => [
101
+ 'name ' => 'Barry ' ,
102
+ 'children ' => [
103
+ [
104
+ 'name ' => 'Foo ' ,
105
+
106
+ ],
107
+ [
108
+ 'name ' => 'Bar ' ,
109
+ 'email ' => 'bar ' ,
110
+ ]
111
+ ],
112
+ 'save ' => true ,
113
+ ]
114
+ ]);
115
+
116
+ $ form ->handleRequest ($ request );
117
+
118
+ $ this ->assertTrue ($ form ->isSubmitted ());
119
+ $ this ->assertFalse ($ form ->isValid ());
120
+ $ this ->assertEquals ('The children.1.email must be a valid email address. ' , $ form ->getErrors (true )[0 ]->getMessage ());
121
+ }
122
+
123
+ public function testValidCollectionForm ()
124
+ {
125
+ /** @var \Symfony\Component\Form\Form $form */
126
+ $ form = FormFactory::create (ParentFormType::class, [])
127
+ ->add ('save ' , SubmitType::class, ['label ' => 'Save parent ' ]);
128
+
129
+ $ request = $ this ->createPostRequest ([
130
+ 'parent_form ' => [
131
+ 'name ' => 'Barry ' ,
132
+ 'children ' => [
133
+ [
134
+ 'name ' => 'Foo ' ,
135
+
136
+ ],
137
+ [
138
+ 'name ' => 'Bar ' ,
139
+
140
+ ]
141
+ ],
142
+ 'save ' => true ,
143
+ ]
144
+ ]);
145
+
146
+ $ form ->handleRequest ($ request );
147
+
148
+ $ this ->assertTrue ($ form ->isSubmitted ());
149
+ $ this ->assertTrue ($ form ->isValid ());
72
150
}
73
151
74
152
private function createPostRequest ($ data )
0 commit comments