Пример #1
0
 /**
  * Tests setRouteOptions() with an _entity_form route.
  *
  * @covers ::setRouteOptions
  * @covers ::getControllerClass
  * @covers ::getEntityTypes
  * @covers ::setParametersFromReflection
  * @covers ::setParametersFromEntityInformation
  */
 public function testSetRouteOptionsWithEntityFormRoute()
 {
     $this->setupEntityTypes();
     $route = new Route('/example/{entity_test}', array('_entity_form' => 'entity_test.edit'));
     $defaults = $route->getDefaults();
     $this->entityResolverManager->setRouteOptions($route);
     $this->assertEquals($defaults, $route->getDefaults());
     $parameters = $route->getOption('parameters');
     $this->assertEquals(array('entity_test' => array('type' => 'entity:entity_test')), $parameters);
 }
  /**
   * Tests setRouteOptions() with an _entity_form route for an add form.
   *
   * @covers ::setRouteOptions
   * @covers ::getControllerClass
   * @covers ::getEntityTypes
   * @covers ::setParametersFromReflection
   * @covers ::setParametersFromEntityInformation
   */
  public function testSetRouteOptionsWithEntityAddFormRoute() {
    $this->setupEntityTypes();
    $route = new Route('/example/add', array(
      '_entity_form' => 'entity_test.add',
    ));

    $defaults = $route->getDefaults();
    $this->entityResolverManager->setRouteOptions($route);
    $this->assertEquals($defaults, $route->getDefaults());
    $this->assertFalse($route->hasOption('parameters'));
  }
 /**
  * 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.
  *
  * @covers ::setRouteOptions
  * @covers ::getControllerClass
  * @covers ::getEntityTypes
  * @covers ::setParametersFromReflection
  * @covers ::setParametersFromEntityInformation
  */
 public function testSetRouteOptionsWithEntityFormRouteAndArgument()
 {
     $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);
 }
 /**
  * Applies parameter converters to route parameters.
  *
  * @param \Drupal\Core\Routing\RouteBuildEvent $event
  *   The event to process.
  */
 public function onRoutingRouteAlterSetType(RouteBuildEvent $event)
 {
     foreach ($event->getRouteCollection() as $route) {
         $this->resolverManager->setRouteOptions($route);
     }
 }