File tree Expand file tree Collapse file tree 2 files changed +39
-0
lines changed
Tests/DependencyInjection Expand file tree Collapse file tree 2 files changed +39
-0
lines changed Original file line number Diff line number Diff line change @@ -465,6 +465,10 @@ private function addWorkflowSection(ArrayNodeDefinition $rootNode): void
465465 ->beforeNormalization ()
466466 ->always ()
467467 ->then (function ($ places ) {
468+ if (!\is_array ($ places )) {
469+ throw new InvalidConfigurationException ('The "places" option must be an array in workflow configuration. ' );
470+ }
471+
468472 // It's an indexed array of shape ['place1', 'place2']
469473 if (isset ($ places [0 ]) && \is_string ($ places [0 ])) {
470474 return array_map (function (string $ place ) {
@@ -510,6 +514,10 @@ private function addWorkflowSection(ArrayNodeDefinition $rootNode): void
510514 ->beforeNormalization ()
511515 ->always ()
512516 ->then (function ($ transitions ) {
517+ if (!\is_array ($ transitions )) {
518+ throw new InvalidConfigurationException ('The "transitions" option must be an array in workflow configuration. ' );
519+ }
520+
513521 // It's an indexed array, we let the validation occur
514522 if (isset ($ transitions [0 ]) && \is_array ($ transitions [0 ])) {
515523 return $ transitions ;
Original file line number Diff line number Diff line change 1111
1212namespace Symfony \Bundle \FrameworkBundle \Tests \DependencyInjection ;
1313
14+ use Symfony \Component \Config \Definition \Exception \InvalidConfigurationException ;
1415use Symfony \Component \Config \FileLocator ;
1516use Symfony \Component \DependencyInjection \ContainerBuilder ;
1617use Symfony \Component \DependencyInjection \Exception \LogicException ;
@@ -58,6 +59,36 @@ public function testAssetPackageCannotHavePathAndUrl()
5859 });
5960 }
6061
62+ public function testWorkflowValidationPlacesIsArray ()
63+ {
64+ $ this ->expectException (InvalidConfigurationException::class);
65+ $ this ->expectExceptionMessage ('The "places" option must be an array in workflow configuration. ' );
66+ $ this ->createContainerFromClosure (function ($ container ) {
67+ $ container ->loadFromExtension ('framework ' , [
68+ 'workflows ' => [
69+ 'article ' => [
70+ 'places ' => null ,
71+ ],
72+ ],
73+ ]);
74+ });
75+ }
76+
77+ public function testWorkflowValidationTransitonsIsArray ()
78+ {
79+ $ this ->expectException (InvalidConfigurationException::class);
80+ $ this ->expectExceptionMessage ('The "transitions" option must be an array in workflow configuration. ' );
81+ $ this ->createContainerFromClosure (function ($ container ) {
82+ $ container ->loadFromExtension ('framework ' , [
83+ 'workflows ' => [
84+ 'article ' => [
85+ 'transitions ' => null ,
86+ ],
87+ ],
88+ ]);
89+ });
90+ }
91+
6192 public function testWorkflowValidationStateMachine ()
6293 {
6394 $ this ->expectException (InvalidDefinitionException::class);
You can’t perform that action at this time.
0 commit comments