From e4bb526bfda6aef396b551fb14a09ab9b2cfae53 Mon Sep 17 00:00:00 2001 From: Sam Light Date: Wed, 10 Jun 2026 19:00:32 +0100 Subject: case insensitive path matching --- tests/Unit/PathSegmentTest.php | 6 ++++++ tests/Unit/RouterTest.php | 14 ++++++++++++++ 2 files changed, 20 insertions(+) (limited to 'tests') diff --git a/tests/Unit/PathSegmentTest.php b/tests/Unit/PathSegmentTest.php index c537c38..29abb8c 100644 --- a/tests/Unit/PathSegmentTest.php +++ b/tests/Unit/PathSegmentTest.php @@ -41,6 +41,12 @@ it('gets key for type :dataset', function (PathSegmentType $type, ?string $res) ($t = PathSegmentType::Parameter)->name => [$t, ''], ]); +it('gets raw keys lowercase', function() { + $seg = new PathSegment('TesTiNg'); + expect($seg->getType())->toBe(PathSegmentType::Raw); + expect($seg->getKey())->toBe('testing'); +}); + it('gets type :dataset', function (PathSegmentType $type) { $seg = new PathSegment($v = 'testing', $type); expect($seg->getType())->toBe($type); diff --git a/tests/Unit/RouterTest.php b/tests/Unit/RouterTest.php index 0e270ca..b3013bb 100644 --- a/tests/Unit/RouterTest.php +++ b/tests/Unit/RouterTest.php @@ -69,6 +69,20 @@ it('finds segment one falls back to parameter', function () { ->parameters->{'test2'}->toBe('anything'); }); +it('finds segment case insentive', function() { + $router = new Router(); + + $r = $router->root(); + + $c1 = $r->child('LevEl1'); + $c2 = $c1->child('LEVEL2'); + $c3 = $c2->child('level3'); + + expect($router->findSegment('/level1')?->segment)->toBe($c1); + expect($router->findSegment('/level1/level2')?->segment)->toBe($c2); + expect($router->findSegment('/LevEL1/level2/LEVEL3')?->segment)->toBe($c3); +}); + it('finds segments in complex routes', function () { $router = new Router(); -- cgit v1.2.3