11
11
12
12
namespace Symfony \Component \Form \Tests \Extension \Core \Type ;
13
13
14
+ use Symfony \Bridge \PhpUnit \ExpectDeprecationTrait ;
14
15
use Symfony \Component \OptionsResolver \Exception \InvalidOptionsException ;
15
16
16
17
class UrlTypeTest extends TextTypeTest
17
18
{
19
+ use ExpectDeprecationTrait;
20
+
18
21
public const TESTED_TYPE = 'Symfony\Component\Form\Extension\Core\Type\UrlType ' ;
19
22
23
+ /**
24
+ * @group legacy
25
+ */
20
26
public function testSubmitAddsDefaultProtocolIfNoneIsIncluded ()
21
27
{
28
+ $ this ->expectDeprecation ('Since symfony/form 6.4: Not configuring the "default_protocol" option is deprecated. It will default to "null" in 7.0. ' );
22
29
$ form = $ this ->factory ->create (static ::TESTED_TYPE , 'name ' );
23
30
24
31
$ form ->submit ('www.domain.com ' );
@@ -83,9 +90,13 @@ public function testThrowExceptionIfDefaultProtocolIsInvalid()
83
90
]);
84
91
}
85
92
93
+ /**
94
+ * @todo remove in 7.0
95
+ */
86
96
public function testSubmitNullUsesDefaultEmptyData ($ emptyData = 'empty ' , $ expectedData = 'http://empty ' )
87
97
{
88
98
$ form = $ this ->factory ->create (static ::TESTED_TYPE , null , [
99
+ 'default_protocol ' => 'http ' ,
89
100
'empty_data ' => $ emptyData ,
90
101
]);
91
102
$ form ->submit (null );
@@ -95,4 +106,48 @@ public function testSubmitNullUsesDefaultEmptyData($emptyData = 'empty', $expect
95
106
$ this ->assertSame ($ expectedData , $ form ->getNormData ());
96
107
$ this ->assertSame ($ expectedData , $ form ->getData ());
97
108
}
109
+
110
+ /**
111
+ * @todo remove in 7.0
112
+ */
113
+ public function testSubmitNullReturnsNullWithEmptyDataAsString ()
114
+ {
115
+ $ form = $ this ->factory ->create (static ::TESTED_TYPE , 'name ' , [
116
+ 'default_protocol ' => 'http ' ,
117
+ 'empty_data ' => '' ,
118
+ ]);
119
+
120
+ $ form ->submit (null );
121
+ $ this ->assertSame ('' , $ form ->getData ());
122
+ $ this ->assertSame ('' , $ form ->getNormData ());
123
+ $ this ->assertSame ('' , $ form ->getViewData ());
124
+ }
125
+
126
+ /**
127
+ * @dataProvider provideZeros
128
+ *
129
+ * @todo remove in 7.0
130
+ */
131
+ public function testSetDataThroughParamsWithZero ($ data , $ dataAsString )
132
+ {
133
+ $ form = $ this ->factory ->create (static ::TESTED_TYPE , null , [
134
+ 'data ' => $ data ,
135
+ 'default_protocol ' => 'http ' ,
136
+ ]);
137
+ $ view = $ form ->createView ();
138
+
139
+ $ this ->assertFalse ($ form ->isEmpty ());
140
+
141
+ $ this ->assertSame ($ dataAsString , $ view ->vars ['value ' ]);
142
+ $ this ->assertSame ($ dataAsString , $ form ->getData ());
143
+ }
144
+
145
+
146
+ /**
147
+ * @todo remove in 7.0
148
+ */
149
+ protected function getTestOptions (): array
150
+ {
151
+ return ['default_protocol ' => 'http ' ];
152
+ }
98
153
}
0 commit comments