|
8 | 8 | use EasyCorp\Bundle\EasyAdminBundle\Tests\PrettyUrlsTestApplication\Controller\BlogPostCrudController; |
9 | 9 | use EasyCorp\Bundle\EasyAdminBundle\Tests\PrettyUrlsTestApplication\Controller\CategoryCrudController; |
10 | 10 | use EasyCorp\Bundle\EasyAdminBundle\Tests\PrettyUrlsTestApplication\Controller\DashboardController; |
| 11 | +use EasyCorp\Bundle\EasyAdminBundle\Tests\PrettyUrlsTestApplication\Controller\SecondDashboardController; |
11 | 12 | use EasyCorp\Bundle\EasyAdminBundle\Tests\PrettyUrlsTestApplication\Entity\Category; |
12 | 13 | use EasyCorp\Bundle\EasyAdminBundle\Tests\PrettyUrlsTestApplication\Kernel; |
13 | 14 | use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; |
@@ -281,6 +282,59 @@ public function testAdminUrlGeneratorUsePrettyUrls() |
281 | 282 | $this->assertSame('http://localhost/admin/pretty/urls/blog-post', $blogPostIndexUrl); |
282 | 283 | } |
283 | 284 |
|
| 285 | + public function testAdminUrlGenerator(): void |
| 286 | + { |
| 287 | + $client = static::createClient(); |
| 288 | + $client->followRedirects(); |
| 289 | + |
| 290 | + self::bootKernel(); |
| 291 | + $container = static::getContainer(); |
| 292 | + $adminUrlGenerator = $container->get(AdminUrlGenerator::class); |
| 293 | + |
| 294 | + $url = $adminUrlGenerator |
| 295 | + ->setDashboard(DashboardController::class) |
| 296 | + ->setController(CategoryCrudController::class) |
| 297 | + ->setAction('customAction') |
| 298 | + ->generateUrl() |
| 299 | + ; |
| 300 | + $client->request('GET', $url); |
| 301 | + |
| 302 | + $this->assertSelectorTextSame('#url1', 'http://localhost/admin/pretty/urls?'.http_build_query([ |
| 303 | + 'crudAction' => 'customAction', |
| 304 | + 'crudControllerFqcn' => CategoryCrudController::class, |
| 305 | + 'dashboardControllerFqcn' => DashboardController::class, |
| 306 | + ])); |
| 307 | + |
| 308 | + |
| 309 | + $this->assertSelectorTextSame('#url2', 'http://localhost/admin/pretty/urls?'.http_build_query([ |
| 310 | + 'crudAction' => 'customAction', |
| 311 | + 'crudControllerFqcn' => CategoryCrudController::class, |
| 312 | + 'dashboardControllerFqcn' => DashboardController::class, |
| 313 | + 'page' => 2, |
| 314 | + ])); |
| 315 | + |
| 316 | + $this->assertSelectorTextSame('#url3', 'http://localhost/admin/pretty/urls/category/new'); |
| 317 | + |
| 318 | + $this->assertSelectorTextSame('#url4', 'http://localhost/admin/pretty/urls?'.http_build_query([ |
| 319 | + 'crudAction' => 'customAction', |
| 320 | + 'crudControllerFqcn' => BlogPostCrudController::class, |
| 321 | + 'dashboardControllerFqcn' => DashboardController::class, |
| 322 | + ])); |
| 323 | + |
| 324 | + $this->assertSelectorTextSame('#url5', 'http://localhost/second/dashboard?'.http_build_query([ |
| 325 | + 'crudAction' => 'customAction', |
| 326 | + 'crudControllerFqcn' => CategoryCrudController::class, |
| 327 | + 'dashboardControllerFqcn' => SecondDashboardController::class, |
| 328 | + ])); |
| 329 | + |
| 330 | + $this->assertSelectorTextSame('#url6', 'http://localhost/second/dashboard?'.http_build_query([ |
| 331 | + 'crudAction' => 'detail', |
| 332 | + 'crudControllerFqcn' => BlogPostCrudController::class, |
| 333 | + 'dashboardControllerFqcn' => SecondDashboardController::class, |
| 334 | + 'entityId' => 3, |
| 335 | + ])); |
| 336 | + } |
| 337 | + |
284 | 338 | /** |
285 | 339 | * @dataProvider provideUglyUrlRedirects |
286 | 340 | */ |
|
0 commit comments