Issue #3412316 by kunal.sachdev, tim.plunkett, sidharth_soman, smustgrave: Use 'search.view' instead of 'search.plugins:' . $default for base route in SearchLocalTask::getDerivativeDefinitions()
parent
7cb81a403b
commit
0b3326d3cd
|
@ -44,13 +44,13 @@ class SearchLocalTask extends DeriverBase implements ContainerDeriverInterface {
|
|||
public function getDerivativeDefinitions($base_plugin_definition) {
|
||||
$this->derivatives = [];
|
||||
|
||||
if ($default = $this->searchPageRepository->getDefaultSearchPage()) {
|
||||
if ($this->searchPageRepository->getDefaultSearchPage()) {
|
||||
$active_search_pages = $this->searchPageRepository->getActiveSearchPages();
|
||||
foreach ($this->searchPageRepository->sortSearchPages($active_search_pages) as $entity_id => $entity) {
|
||||
$this->derivatives[$entity_id] = [
|
||||
'title' => $entity->label(),
|
||||
'route_name' => 'search.view_' . $entity_id,
|
||||
'base_route' => 'search.plugins:' . $default,
|
||||
'base_route' => 'search.view',
|
||||
'weight' => $entity->getWeight(),
|
||||
];
|
||||
}
|
||||
|
|
|
@ -4,6 +4,8 @@ namespace Drupal\Tests\search\Kernel;
|
|||
|
||||
use Drupal\KernelTests\Core\Config\ConfigEntityValidationTestBase;
|
||||
use Drupal\search\Entity\SearchPage;
|
||||
use Drupal\search\Plugin\Derivative\SearchLocalTask;
|
||||
use Drupal\search\SearchPageRepository;
|
||||
|
||||
/**
|
||||
* Tests validation of search_page entities.
|
||||
|
@ -41,4 +43,16 @@ class SearchPageValidationTest extends ConfigEntityValidationTestBase {
|
|||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that the base route stored in definition is correct.
|
||||
*/
|
||||
public function testBaseRouteIsValid(): void {
|
||||
$search_page_repository = new SearchPageRepository(\Drupal::configFactory(), \Drupal::entityTypeManager());
|
||||
$search_local_task = new SearchLocalTask($search_page_repository);
|
||||
$definitions = $search_local_task->getDerivativeDefinitions([]);
|
||||
$route_provider = \Drupal::service('router.route_provider');
|
||||
$base_route = $route_provider->getRouteByName($definitions['test']['base_route']);
|
||||
$this->assertSame($base_route, $route_provider->getRouteByName('search.view'));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue