use Drupal\Tests\UnitTestCase;
use Symfony\Cmf\Component\Routing\RouteObjectInterface;
use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\Routing\Route;
/**
* @coversDefaultClass \Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
$defaults = [];
$defaults['_controller'] = 'Drupal\Tests\Core\Controller\TestController::content';
$defaults['_entity_form'] = 'entity_test.default';
+ $defaults['_route_object'] = (new Route('/test', $defaults));
$new_defaults = $route_enhancer->enhance($defaults, $request);
$this->assertTrue(is_callable($new_defaults['_controller']));
$this->assertEquals($defaults['_controller'], $new_defaults['_controller'], '_controller did not get overridden.');
// Set _entity_form and ensure that the form is set.
$defaults = [];
$defaults['_entity_form'] = 'entity_test.default';
+ $defaults['_route_object'] = (new Route('/test', $defaults));
$new_defaults = $route_enhancer->enhance($defaults, $request);
$this->assertEquals('controller.entity_form:getContentResult', $new_defaults['_controller']);
// Set _entity_list and ensure that the entity list controller is set.
$defaults = [];
$defaults['_entity_list'] = 'entity_test.default';
+ $defaults['_route_object'] = (new Route('/test', $defaults));
$new_defaults = $route_enhancer->enhance($defaults, $request);
$this->assertEquals('\Drupal\Core\Entity\Controller\EntityListController::listing', $new_defaults['_controller'], 'The entity list controller was not set.');
$this->assertEquals('entity_test.default', $new_defaults['entity_type']);
$defaults = [];
$defaults['_entity_view'] = 'entity_test.full';
$defaults['entity_test'] = 'Mock entity';
+ $defaults['_route_object'] = (new Route('/test', $defaults));
$defaults = $route_enhancer->enhance($defaults, $request);
$this->assertEquals('\Drupal\Core\Entity\Controller\EntityViewController::view', $defaults['_controller'], 'The entity view controller was not set.');
$this->assertEquals($defaults['_entity'], 'Mock entity');
// Add a converter.
$options['parameters']['foo'] = ['type' => 'entity:entity_test'];
// Set the route.
- $route = $this->getMockBuilder('Symfony\Component\Routing\Route')
- ->disableOriginalConstructor()
- ->getMock();
-
- $route->expects($this->any())
- ->method('getOptions')
- ->will($this->returnValue($options));
+ $route = new Route('/test');
+ $route->setOptions($options);
+ $route->setDefaults($defaults);
$defaults[RouteObjectInterface::ROUTE_OBJECT] = $route;
$defaults = $route_enhancer->enhance($defaults, $request);
$defaults = [];
$defaults['_entity_view'] = 'entity_test';
$defaults['entity_test'] = 'Mock entity';
+ $defaults['_route_object'] = (new Route('/test', $defaults));
$defaults = $route_enhancer->enhance($defaults, $request);
$this->assertEquals('\Drupal\Core\Entity\Controller\EntityViewController::view', $defaults['_controller'], 'The entity view controller was not set.');
$this->assertEquals($defaults['_entity'], 'Mock entity');