mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
BUGFIX: testing framework needs to be reset to a clean state after each test: now also nested urls and redirection state will be reverted
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.4@98944 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
8a0a0b3263
commit
9769a488dc
@ -27,6 +27,7 @@ class SapphireTest extends PHPUnit_Framework_TestCase {
|
||||
protected $originalRequirements;
|
||||
protected $originalIsRunningTest;
|
||||
protected $originalTheme;
|
||||
protected $originalNestedURLsState;
|
||||
|
||||
protected $mailer;
|
||||
|
||||
@ -102,6 +103,9 @@ class SapphireTest extends PHPUnit_Framework_TestCase {
|
||||
|
||||
$this->originalTheme = SSViewer::current_theme();
|
||||
|
||||
// Save nested_urls state, so we can restore it later
|
||||
$this->originalNestedURLsState = SiteTree::nested_urls();
|
||||
|
||||
$className = get_class($this);
|
||||
$fixtureFile = eval("return {$className}::\$fixture_file;");
|
||||
|
||||
@ -338,6 +342,21 @@ class SapphireTest extends PHPUnit_Framework_TestCase {
|
||||
|
||||
// Reset mocked datetime
|
||||
SS_Datetime::clear_mock_now();
|
||||
|
||||
// Restore nested_urls state
|
||||
if ( $this->originalNestedURLsState )
|
||||
SiteTree::enable_nested_urls();
|
||||
else
|
||||
SiteTree::disable_nested_urls();
|
||||
|
||||
// Stop the redirection that might have been requested in the test.
|
||||
// Note: Ideally a clean Controller should be created for each test.
|
||||
// Now all tests executed in a batch share the same controller.
|
||||
$controller = Controller::curr();
|
||||
if ( $controller && $controller->response && $controller->response->getHeader('Location') ) {
|
||||
$controller->response->setStatusCode(200);
|
||||
$controller->response->removeHeader('Location');
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Clear the log of emails sent
|
||||
|
Loading…
Reference in New Issue
Block a user