function EntityResolverManagerTest::testSetRouteOptionsWithEntityFormRouteAndArgument

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/Tests/Core/Entity/EntityResolverManagerTest.php \Drupal\Tests\Core\Entity\EntityResolverManagerTest::testSetRouteOptionsWithEntityFormRouteAndArgument()
  2. 10 core/tests/Drupal/Tests/Core/Entity/EntityResolverManagerTest.php \Drupal\Tests\Core\Entity\EntityResolverManagerTest::testSetRouteOptionsWithEntityFormRouteAndArgument()
  3. 9 core/tests/Drupal/Tests/Core/Entity/EntityResolverManagerTest.php \Drupal\Tests\Core\Entity\EntityResolverManagerTest::testSetRouteOptionsWithEntityFormRouteAndArgument()
  4. 8.9.x core/tests/Drupal/Tests/Core/Entity/EntityResolverManagerTest.php \Drupal\Tests\Core\Entity\EntityResolverManagerTest::testSetRouteOptionsWithEntityFormRouteAndArgument()

Tests an _entity_form route where a non-entity parameter is first.

The {argument} preceding {entity_test} in route path, is upcasting with a custom param converter.

@legacy-covers ::setRouteOptions @legacy-covers ::getControllerClass @legacy-covers ::getEntityTypes @legacy-covers ::setParametersFromReflection @legacy-covers ::setParametersFromEntityInformation

File

core/tests/Drupal/Tests/Core/Entity/EntityResolverManagerTest.php, line 433

Class

EntityResolverManagerTest
Tests Drupal\Core\Entity\EntityResolverManager.

Namespace

Drupal\Tests\Core\Entity

Code

public function testSetRouteOptionsWithEntityFormRouteAndArgument() : void {
  $this->setupEntityTypes();
  $route = new Route('/example/{argument}/{entity_test}', [
    '_entity_form' => 'entity_test.edit',
  ]);
  // Add {argument} parameter configuration. In this case {argument} is
  // upcasted by a custom param converter 'argument_type'.
  $route->setOption('parameters', [
    'argument' => [
      'type' => 'argument_type',
    ],
  ]);
  $defaults = $route->getDefaults();
  $this->entityResolverManager
    ->setRouteOptions($route);
  $this->assertEquals($defaults, $route->getDefaults());
  $parameters = $route->getOption('parameters');
  $expect = [
    'argument' => [
      'type' => 'argument_type',
    ],
    'entity_test' => [
      'type' => 'entity:entity_test',
    ],
  ];
  $this->assertEquals($expect, $parameters);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.