15
15
use Symfony \Component \Console \Application ;
16
16
use Symfony \Component \Console \Exception \InvalidArgumentException ;
17
17
use Symfony \Component \Console \Tester \CommandTester ;
18
+ use Symfony \Component \Form \AbstractType ;
18
19
use Symfony \Component \Form \Command \DebugCommand ;
19
20
use Symfony \Component \Form \Extension \Core \Type \TextType ;
20
21
use Symfony \Component \Form \FormRegistry ;
21
22
use Symfony \Component \Form \ResolvedFormTypeFactory ;
22
- use Symfony \Component \Form \Tests \Console \Descriptor \FooType ;
23
+ use Symfony \Component \OptionsResolver \Options ;
24
+ use Symfony \Component \OptionsResolver \OptionsResolver ;
23
25
24
26
class DebugCommandTest extends TestCase
25
27
{
@@ -40,10 +42,15 @@ public function testDebugDeprecatedDefaults()
40
42
$ this ->assertEquals (0 , $ ret , 'Returns 0 in case of success ' );
41
43
$ this ->assertSame (<<<TXT
42
44
45
+ Built-in form types (Symfony\Component\Form\Extension\Core\Type)
46
+ ----------------------------------------------------------------
47
+
48
+ IntegerType
49
+
43
50
Service form types
44
51
------------------
45
52
46
- * Symfony\Component\Form\Tests\Console\Descriptor \FooType
53
+ * Symfony\Component\Form\Tests\Command \FooType
47
54
48
55
49
56
TXT
@@ -147,3 +154,25 @@ private function createCommandTester(array $namespaces = array('Symfony\Componen
147
154
return new CommandTester ($ application ->find ('debug:form ' ));
148
155
}
149
156
}
157
+
158
+ class FooType extends AbstractType
159
+ {
160
+ public function configureOptions (OptionsResolver $ resolver )
161
+ {
162
+ $ resolver ->setRequired ('foo ' );
163
+ $ resolver ->setDefined ('bar ' );
164
+ $ resolver ->setDeprecated ('bar ' );
165
+ $ resolver ->setDefault ('empty_data ' , function (Options $ options ) {
166
+ $ foo = $ options ['foo ' ];
167
+
168
+ return function (FormInterface $ form ) use ($ foo ) {
169
+ return $ form ->getConfig ()->getCompound () ? array ($ foo ) : $ foo ;
170
+ };
171
+ });
172
+ $ resolver ->setAllowedTypes ('foo ' , 'string ' );
173
+ $ resolver ->setAllowedValues ('foo ' , array ('bar ' , 'baz ' ));
174
+ $ resolver ->setNormalizer ('foo ' , function (Options $ options , $ value ) {
175
+ return (string ) $ value ;
176
+ });
177
+ }
178
+ }
0 commit comments