RouteUriTest.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace Illuminate\Tests\Routing;
  3. use Illuminate\Routing\RouteUri;
  4. use PHPUnit\Framework\TestCase;
  5. class RouteUriTest extends TestCase
  6. {
  7. public function testRouteUrisAreProperlyParsed()
  8. {
  9. $parsed = RouteUri::parse('/foo');
  10. $this->assertSame('/foo', $parsed->uri);
  11. $this->assertEquals([], $parsed->bindingFields);
  12. $parsed = RouteUri::parse('/foo/{bar}');
  13. $this->assertSame('/foo/{bar}', $parsed->uri);
  14. $this->assertEquals([], $parsed->bindingFields);
  15. $parsed = RouteUri::parse('/foo/{bar:slug}');
  16. $this->assertSame('/foo/{bar}', $parsed->uri);
  17. $this->assertEquals(['bar' => 'slug'], $parsed->bindingFields);
  18. $parsed = RouteUri::parse('/foo/{bar}/baz/{qux:slug}');
  19. $this->assertSame('/foo/{bar}/baz/{qux}', $parsed->uri);
  20. $this->assertEquals(['qux' => 'slug'], $parsed->bindingFields);
  21. $parsed = RouteUri::parse('/foo/{bar}/baz/{qux:slug?}');
  22. $this->assertSame('/foo/{bar}/baz/{qux?}', $parsed->uri);
  23. $this->assertEquals(['qux' => 'slug'], $parsed->bindingFields);
  24. $parsed = RouteUri::parse('/foo/{bar}/baz/{qux:slug?}/{test:id?}');
  25. $this->assertSame('/foo/{bar}/baz/{qux?}/{test?}', $parsed->uri);
  26. $this->assertEquals(['qux' => 'slug', 'test' => 'id'], $parsed->bindingFields);
  27. }
  28. }