2015-11-02 00:27:42 +01:00
|
|
|
<?php
|
2015-09-23 00:32:23 +02:00
|
|
|
|
2017-09-06 05:49:23 +02:00
|
|
|
namespace SilverStripe\ContentReview\Tests;
|
|
|
|
|
|
|
|
use SilverStripe\Dev\FunctionalTest;
|
|
|
|
use SilverStripe\CMS\Model\SiteTree;
|
|
|
|
// @todo add translatable namespace
|
|
|
|
use Translatable;
|
|
|
|
|
2015-09-23 00:32:23 +02:00
|
|
|
/**
|
2015-11-02 00:27:42 +01:00
|
|
|
* Extend this class when writing unit tests which are compatible with other modules.
|
|
|
|
* All compatibility code goes here.
|
2015-09-23 00:32:23 +02:00
|
|
|
*/
|
2015-11-02 00:27:42 +01:00
|
|
|
abstract class ContentReviewBaseTest extends FunctionalTest
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @var bool
|
|
|
|
*/
|
|
|
|
protected $translatableEnabledBefore;
|
|
|
|
|
2017-09-06 05:49:23 +02:00
|
|
|
protected function setUp()
|
2015-11-02 00:27:42 +01:00
|
|
|
{
|
|
|
|
parent::setUp();
|
|
|
|
|
|
|
|
/*
|
|
|
|
* We set the locale for pages explicitly, because if we don't, then we get into a situation
|
|
|
|
* where the page takes on the tester's (your) locale, and any calls to simulate subsequent requests
|
2018-01-08 04:47:31 +01:00
|
|
|
* (e.g. $this->post()) do not seem to get passed the tester's locale,
|
|
|
|
* but instead fallback to the default locale.
|
2015-11-02 00:27:42 +01:00
|
|
|
*
|
|
|
|
* So we set the pages locale to be the default locale, which will then match any subsequent requests.
|
2017-09-06 05:49:23 +02:00
|
|
|
*
|
2015-11-02 00:27:42 +01:00
|
|
|
* If creating pages in your unit tests (rather than reading from the fixtures file), you must explicitly call
|
|
|
|
* self::compat() on the page, for the same reasons as above.
|
|
|
|
*/
|
2017-09-06 05:49:23 +02:00
|
|
|
if (class_exists(Translatable::class)) {
|
|
|
|
$this->translatableEnabledBefore = SiteTree::has_extension(Translatable::class);
|
|
|
|
SiteTree::remove_extension(Translatable::class);
|
2015-11-02 00:27:42 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-09-06 05:49:23 +02:00
|
|
|
protected function tearDown()
|
2015-11-02 00:27:42 +01:00
|
|
|
{
|
2017-09-06 05:49:23 +02:00
|
|
|
if (class_exists(Translatable::class)) {
|
2015-11-02 00:27:42 +01:00
|
|
|
if ($this->translatableEnabledBefore) {
|
2017-09-06 05:49:23 +02:00
|
|
|
SiteTree::add_extension(Translatable::class);
|
2015-11-02 00:27:42 +01:00
|
|
|
}
|
|
|
|
}
|
2015-11-03 04:57:07 +01:00
|
|
|
|
|
|
|
parent::tearDown();
|
2015-11-02 00:27:42 +01:00
|
|
|
}
|
|
|
|
}
|