From 4217cc1348f03b23aae4946155ad3e77d8609f81 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Wed, 21 Mar 2018 18:01:56 +0100 Subject: [PATCH] no type errors with invalid submitted data types --- .../Core/EventListener/FixUrlProtocolListener.php | 2 +- .../Form/Tests/Extension/Core/Type/UrlTypeTest.php | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Form/Extension/Core/EventListener/FixUrlProtocolListener.php b/src/Symfony/Component/Form/Extension/Core/EventListener/FixUrlProtocolListener.php index c18ca8a8b4..9e7761705e 100644 --- a/src/Symfony/Component/Form/Extension/Core/EventListener/FixUrlProtocolListener.php +++ b/src/Symfony/Component/Form/Extension/Core/EventListener/FixUrlProtocolListener.php @@ -36,7 +36,7 @@ class FixUrlProtocolListener implements EventSubscriberInterface { $data = $event->getData(); - if ($this->defaultProtocol && $data && !preg_match('~^[\w+.-]+://~', $data)) { + if ($this->defaultProtocol && $data && is_string($data) && !preg_match('~^[\w+.-]+://~', $data)) { $event->setData($this->defaultProtocol.'://'.$data); } } diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/Type/UrlTypeTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/Type/UrlTypeTest.php index 2b4783e4d3..2be6b520d7 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/UrlTypeTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/UrlTypeTest.php @@ -82,4 +82,12 @@ class UrlTypeTest extends TextTypeTest 'default_protocol' => array(), )); } + + public function testSubmitWithNonStringDataDoesNotBreakTheFixUrlProtocolListener() + { + $form = $this->factory->create(static::TESTED_TYPE); + $form->submit(array('domain.com', 'www.domain.com')); + + $this->assertSame(array('domain.com', 'www.domain.com'), $form->getData()); + } }