Skip to content

Commit 6142a3a

Browse files
authored
Merge pull request #7 from legionth/wrong-api-called
Wrong API called if there are no dynamic values and have similiar namespace
2 parents 116443a + 3681fbe commit 6142a3a

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

src/Server.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,16 @@ private function createRestfulFunction($httpMethod, $path, $function)
9090
$requestPathArray = explode('/', $requestPath);
9191
$pathArray = explode('/', $path);
9292

93-
if (count($requestPathArray) !== count($pathArray)) {
93+
$countRequestPathEntries = count($requestPathArray);
94+
if ($countRequestPathEntries !== count($pathArray)) {
95+
return $next($request);
96+
}
97+
98+
if ($requestPath === $path) {
99+
return $function($request, $next);
100+
}
101+
102+
if (false === strpos($path, ':')) {
94103
return $next($request);
95104
}
96105

tests/ServerTest.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,4 +251,23 @@ public function testUserDefinedCallbackIsNotUsed()
251251
$this->assertSame('/user/list', $requestAssertion->getUri()->getPath());
252252
$this->assertSame('example.com', $requestAssertion->getHeaderLine('Host'));
253253
}
254+
255+
public function testNoSuchCallDefinedResultInNeverCalled()
256+
{
257+
$requestAssertion = null;
258+
$server = new Server();
259+
260+
$server->get('/user/anotherlist', function (ServerRequestInterface $request, callable $next) use (&$requestAssertion) {
261+
$requestAssertion = $request;
262+
});
263+
264+
$server->get('/user/list', function (ServerRequestInterface $request, callable $next) use (&$requestAssertion) {
265+
$requestAssertion = $request;
266+
});
267+
268+
$this->socket->emit('connection', array($this->connection));
269+
$this->connection->emit('data', array("GET http://example.com/user/anotherlista HTTP/1.0\r\n\r\n"));
270+
271+
$this->assertSame(null, $requestAssertion);
272+
}
254273
}

0 commit comments

Comments
 (0)