From 5de4f696f3d316700bfbe964cffef4fc30edcbcc Mon Sep 17 00:00:00 2001 From: Paul Meyrick Date: Fri, 18 Mar 2011 16:33:47 +1300 Subject: [PATCH] Minor Moved ErrorPageTest from sapphire/tests/ to cms module cms/tests --- tests/ErrorPageTest.php | 64 +++++++++++++++++++++++++++++++++++++++++ tests/ErrorPageTest.yml | 6 ++++ 2 files changed, 70 insertions(+) create mode 100644 tests/ErrorPageTest.php create mode 100644 tests/ErrorPageTest.yml diff --git a/tests/ErrorPageTest.php b/tests/ErrorPageTest.php new file mode 100644 index 00000000..70f523c8 --- /dev/null +++ b/tests/ErrorPageTest.php @@ -0,0 +1,64 @@ +orig['ErrorPage_staticfilepath'] = ErrorPage::get_static_filepath(); + $this->tmpAssetsPath = sprintf('%s/_tmp_assets_%s', TEMP_FOLDER, rand()); + Filesystem::makeFolder($this->tmpAssetsPath . '/ErrorPageTest'); + ErrorPage::set_static_filepath($this->tmpAssetsPath . '/ErrorPageTest'); + + $this->orig['Director_environmenttype'] = Director::get_environment_type(); + Director::set_environment_type('live'); + } + + function tearDown() { + parent::tearDown(); + + ErrorPage::set_static_filepath($this->orig['ErrorPage_staticfilepath']); + Director::set_environment_type($this->orig['Director_environmenttype']); + + Filesystem::removeFolder($this->tmpAssetsPath . '/ErrorPageTest'); + Filesystem::removeFolder($this->tmpAssetsPath); + } + + function test404ErrorPage() { + $page = $this->objFromFixture('ErrorPage', '404'); + // ensure that the errorpage exists as a physical file + $page->publish('Stage', 'Live'); + + $response = $this->get('nonexistent-page'); + + /* We have body text from the error page */ + $this->assertNotNull($response->getBody(), 'We have body text from the error page'); + + /* Status code of the SS_HTTPResponse for error page is "404" */ + $this->assertEquals($response->getStatusCode(), '404', 'Status code of the SS_HTTPResponse for error page is "404"'); + + /* Status message of the SS_HTTPResponse for error page is "Not Found" */ + $this->assertEquals($response->getStatusDescription(), 'Not Found', 'Status message of the HTTResponse for error page is "Not found"'); + } + + function testBehaviourOfShowInMenuAndShowInSearchFlags() { + $page = $this->objFromFixture('ErrorPage', '404'); + + /* Don't show the error page in the menus */ + $this->assertEquals($page->ShowInMenus, 0, 'Don\'t show the error page in the menus'); + + /* Don't show the error page in the search */ + $this->assertEquals($page->ShowInSearch, 0, 'Don\'t show the error page in search'); + } + +} +?> \ No newline at end of file diff --git a/tests/ErrorPageTest.yml b/tests/ErrorPageTest.yml new file mode 100644 index 00000000..859332ae --- /dev/null +++ b/tests/ErrorPageTest.yml @@ -0,0 +1,6 @@ +ErrorPage: + 404: + Title: Page Not Found + URLSegment: page-not-found + Content: My error page body + ErrorCode: 404 \ No newline at end of file