mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-09-30 05:09:06 +02:00
Reduce dependence on session state for accessing draft stages
This commit is contained in:
parent
1ea14382ee
commit
7f7fe73b77
@ -4,6 +4,7 @@ namespace SilverStripe\Dev;
|
|||||||
|
|
||||||
use SilverStripe\Control\Controller;
|
use SilverStripe\Control\Controller;
|
||||||
use SilverStripe\Control\Director;
|
use SilverStripe\Control\Director;
|
||||||
|
use SilverStripe\Control\HTTP;
|
||||||
use SilverStripe\Control\Session;
|
use SilverStripe\Control\Session;
|
||||||
use SilverStripe\Control\HTTPResponse;
|
use SilverStripe\Control\HTTPResponse;
|
||||||
use SilverStripe\Core\Config\Config;
|
use SilverStripe\Core\Config\Config;
|
||||||
@ -12,6 +13,7 @@ use SilverStripe\Security\BasicAuth;
|
|||||||
use SilverStripe\Security\Member;
|
use SilverStripe\Security\Member;
|
||||||
use SilverStripe\Security\Security;
|
use SilverStripe\Security\Security;
|
||||||
use SilverStripe\Security\SecurityToken;
|
use SilverStripe\Security\SecurityToken;
|
||||||
|
use SilverStripe\Versioned\Versioned;
|
||||||
use SilverStripe\View\SSViewer;
|
use SilverStripe\View\SSViewer;
|
||||||
use PHPUnit_Framework_AssertionFailedError;
|
use PHPUnit_Framework_AssertionFailedError;
|
||||||
use SimpleXMLElement;
|
use SimpleXMLElement;
|
||||||
@ -161,6 +163,9 @@ class FunctionalTest extends SapphireTest implements TestOnly
|
|||||||
public function get($url, $session = null, $headers = null, $cookies = null)
|
public function get($url, $session = null, $headers = null, $cookies = null)
|
||||||
{
|
{
|
||||||
$this->cssParser = null;
|
$this->cssParser = null;
|
||||||
|
if (Versioned::get_stage() === Versioned::DRAFT) {
|
||||||
|
$url = HTTP::setGetVar('stage', Versioned::DRAFT, $url);
|
||||||
|
}
|
||||||
$response = $this->mainSession->get($url, $session, $headers, $cookies);
|
$response = $this->mainSession->get($url, $session, $headers, $cookies);
|
||||||
if ($this->autoFollowRedirection && is_object($response) && $response->getHeader('Location')) {
|
if ($this->autoFollowRedirection && is_object($response) && $response->getHeader('Location')) {
|
||||||
$response = $this->mainSession->followRedirection();
|
$response = $this->mainSession->followRedirection();
|
||||||
@ -411,11 +416,9 @@ class FunctionalTest extends SapphireTest implements TestOnly
|
|||||||
public function useDraftSite($enabled = true)
|
public function useDraftSite($enabled = true)
|
||||||
{
|
{
|
||||||
if ($enabled) {
|
if ($enabled) {
|
||||||
$this->session()->set('readingMode', 'Stage.Stage');
|
Versioned::set_stage(Versioned::DRAFT);
|
||||||
$this->session()->set('unsecuredDraftSite', true);
|
|
||||||
} else {
|
} else {
|
||||||
$this->session()->set('readingMode', 'Stage.Live');
|
Versioned::set_stage(Versioned::LIVE);
|
||||||
$this->session()->set('unsecuredDraftSite', false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user