From f9cb8805e1f55efa862e888b8fd381e45269927a Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Fri, 2 May 2014 12:52:18 +1200 Subject: [PATCH] API Error page support for Security controller errors --- _config/config.yml | 5 ++++- .../ErrorPageControllerExtension.php | 17 +++++++++++++++++ tests/model/ErrorPageTest.php | 14 +++++++++++++- 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 code/controllers/ErrorPageControllerExtension.php diff --git a/_config/config.yml b/_config/config.yml index b1b1fd8e..8b91fc39 100644 --- a/_config/config.yml +++ b/_config/config.yml @@ -1,3 +1,6 @@ LeftAndMain: extensions: - - LeftAndMainPageIconsExtension \ No newline at end of file + - LeftAndMainPageIconsExtension +Security: + extensions: + - ErrorPageControllerExtension diff --git a/code/controllers/ErrorPageControllerExtension.php b/code/controllers/ErrorPageControllerExtension.php new file mode 100644 index 00000000..1d7b87c2 --- /dev/null +++ b/code/controllers/ErrorPageControllerExtension.php @@ -0,0 +1,17 @@ +assertEquals($response->getStatusCode(), '403'); $this->assertNotNull($response->getBody(), 'We have body text from the error page'); } -} \ No newline at end of file + + public function testSecurityError() { + // Generate 404 page + $page = $this->objFromFixture('ErrorPage', '404'); + $page->publish('Stage', 'Live'); + + // Test invalid action + $response = $this->get('Security/nosuchaction'); + $this->assertEquals($response->getStatusCode(), '404'); + $this->assertNotNull($response->getBody()); + $this->assertContains('text/html', $response->getHeader('Content-Type')); + } +}