@@ -59,7 +59,13 @@ public function testAddTaggedTypes()
5959 ),$ extDefinition ->getArgument (1 ));
6060 }
6161
62- public function testAddTaggedTypeExtensions ()
62+ /**
63+ * @dataProvider addTaggedTypeExtensionsDataProvider
64+ *
65+ * @param array $extensions
66+ * @param array $expectedRegisteredExtensions
67+ */
68+ public function testAddTaggedTypeExtensions (array $ extensions ,array $ expectedRegisteredExtensions )
6369 {
6470$ container =new ContainerBuilder ();
6571$ container ->addCompilerPass (new FormPass ());
@@ -72,26 +78,49 @@ public function testAddTaggedTypeExtensions()
7278 ));
7379
7480$ container ->setDefinition ('form.extension ' ,$ extDefinition );
75- $ container ->register ('my.type_extension1 ' ,'stdClass ' )
76- ->addTag ('form.type_extension ' ,array ('extended_type ' =>'type1 ' ));
77- $ container ->register ('my.type_extension2 ' ,'stdClass ' )
78- ->addTag ('form.type_extension ' ,array ('extended_type ' =>'type1 ' ));
79- $ container ->register ('my.type_extension3 ' ,'stdClass ' )
80- ->addTag ('form.type_extension ' ,array ('extended_type ' =>'type2 ' ));
81+
82+ foreach ($ extensionsas $ serviceId =>$ tag ) {
83+ $ container ->register ($ serviceId ,'stdClass ' )->addTag ('form.type_extension ' ,$ tag );
84+ }
8185
8286$ container ->compile ();
8387
8488$ extDefinition =$ container ->getDefinition ('form.extension ' );
89+ $ this ->assertSame ($ expectedRegisteredExtensions ,$ extDefinition ->getArgument (2 ));
90+ }
8591
86- $ this ->assertSame (array (
87- 'type1 ' =>array (
88- 'my.type_extension1 ' ,
89- 'my.type_extension2 ' ,
92+ /**
93+ * @return array
94+ */
95+ public function addTaggedTypeExtensionsDataProvider ()
96+ {
97+ return array (
98+ array (
99+ array (
100+ 'my.type_extension1 ' =>array ('extended_type ' =>'type1 ' ),
101+ 'my.type_extension2 ' =>array ('extended_type ' =>'type1 ' ),
102+ 'my.type_extension3 ' =>array ('extended_type ' =>'type2 ' ),
103+ ),
104+ array (
105+ 'type1 ' =>array ('my.type_extension1 ' ,'my.type_extension2 ' ),
106+ 'type2 ' =>array ('my.type_extension3 ' ),
107+ ),
90108 ),
91- 'type2 ' =>array (
92- 'my.type_extension3 ' ,
109+ array (
110+ array (
111+ 'my.type_extension1 ' =>array ('extended_type ' =>'type1 ' ,'priority ' =>1 ),
112+ 'my.type_extension2 ' =>array ('extended_type ' =>'type1 ' ,'priority ' =>2 ),
113+ 'my.type_extension3 ' =>array ('extended_type ' =>'type1 ' ,'priority ' => -1 ),
114+ 'my.type_extension4 ' =>array ('extended_type ' =>'type2 ' ,'priority ' =>2 ),
115+ 'my.type_extension5 ' =>array ('extended_type ' =>'type2 ' ,'priority ' =>1 ),
116+ 'my.type_extension6 ' =>array ('extended_type ' =>'type2 ' ,'priority ' =>1 ),
117+ ),
118+ array (
119+ 'type1 ' =>array ('my.type_extension2 ' ,'my.type_extension1 ' ,'my.type_extension3 ' ),
120+ 'type2 ' =>array ('my.type_extension4 ' ,'my.type_extension5 ' ,'my.type_extension6 ' ),
121+ ),
93122 ),
94- ), $ extDefinition -> getArgument ( 2 )) ;
123+ );
95124 }
96125
97126/**