diff --git a/core/modules/serialization/src/EventSubscriber/UserRouteAlterSubscriber.php b/core/modules/serialization/src/EventSubscriber/UserRouteAlterSubscriber.php index a8b71c7bbb6963623aa4bc29eb54788a98a6d4da..013402c5c383d99cf295f6fbdfbeacdcccfbc259 100644 --- a/core/modules/serialization/src/EventSubscriber/UserRouteAlterSubscriber.php +++ b/core/modules/serialization/src/EventSubscriber/UserRouteAlterSubscriber.php @@ -63,7 +63,7 @@ public function onRoutingAlterAddFormats(RouteBuildEvent $event) { foreach ($route_names as $route_name) { if ($route = $routes->get($route_name)) { $formats = explode('|', $route->getRequirement('_format')); - $formats = array_unique($formats + $this->serializerFormats); + $formats = array_unique(array_merge($formats, $this->serializerFormats)); $route->setRequirement('_format', implode('|', $formats)); } } diff --git a/core/modules/user/tests/src/Functional/UserLoginHttpTest.php b/core/modules/user/tests/src/Functional/UserLoginHttpTest.php index 356544119b66c58e1bfa78e320de2531bd415ff5..29b97277c0b1ea8374633b5ca58c5b1a2fda0530 100644 --- a/core/modules/user/tests/src/Functional/UserLoginHttpTest.php +++ b/core/modules/user/tests/src/Functional/UserLoginHttpTest.php @@ -10,6 +10,7 @@ use Psr\Http\Message\ResponseInterface; use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\Encoder\XmlEncoder; +use Drupal\hal\Encoder\JsonEncoder as HALJsonEncoder; use Symfony\Component\Serializer\Serializer; /** @@ -19,6 +20,13 @@ */ class UserLoginHttpTest extends BrowserTestBase { + /** + * Modules to install. + * + * @var array + */ + public static $modules = ['hal']; + /** * The cookie jar. * @@ -39,7 +47,7 @@ class UserLoginHttpTest extends BrowserTestBase { protected function setUp() { parent::setUp(); $this->cookies = new CookieJar(); - $encoders = [new JsonEncoder(), new XmlEncoder()]; + $encoders = [new JsonEncoder(), new XmlEncoder(), new HALJsonEncoder()]; $this->serializer = new Serializer([], $encoders); } @@ -90,7 +98,7 @@ public function testLogin() { /** @var \Drupal\Core\Extension\ModuleInstaller $module_installer */ $module_installer = $this->container->get('module_installer'); $module_installer->install(['serialization']); - $formats = ['json', 'xml']; + $formats = ['json', 'xml', 'hal_json']; } else { // Without the serialization module only JSON is supported.