From 1fc780ce2b36b159f5296a73f6581cd1a79424f9 Mon Sep 17 00:00:00 2001 From: Andrew Short Date: Sat, 6 Apr 2013 18:19:03 +1100 Subject: [PATCH] API: Return a 404 error when no director rule is matched --- control/Director.php | 3 +++ tests/control/DirectorTest.php | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/control/Director.php b/control/Director.php index c7337de93..a1ef3b0e4 100644 --- a/control/Director.php +++ b/control/Director.php @@ -331,6 +331,9 @@ class Director implements TemplateGlobalProvider { } } } + + // No URL rules matched, so return a 404 error. + return new SS_HTTPResponse('No URL rule was matched', 404); } /** diff --git a/tests/control/DirectorTest.php b/tests/control/DirectorTest.php index 4d1ccae17..bffe804c6 100644 --- a/tests/control/DirectorTest.php +++ b/tests/control/DirectorTest.php @@ -281,6 +281,10 @@ class DirectorTest extends SapphireTest { $this->assertEquals($headers, Director::extract_request_headers($request)); } + public function testUnmatchedRequestReturns404() { + $this->assertEquals(404, Director::test('no-route')->getStatusCode()); + } + } class DirectorTestRequest_Controller extends Controller implements TestOnly {