Merge pull request #2 from Martimiz/feature/ss4-compat
FIX for Translatable unit tests
This commit is contained in:
commit
1e1034647c
|
@ -105,7 +105,7 @@ class TranslatableCMSMainExtension extends Extension
|
|||
|
||||
// collect languages for TinyMCE spellchecker plugin.
|
||||
// see http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker
|
||||
$langName = i18n::get_locale_name($this->owner->Locale);
|
||||
$langName = i18n::getData()->localeName($this->owner->Locale);
|
||||
HtmlEditorConfig::get('cms')->setOption(
|
||||
'spellchecker_languages',
|
||||
"+{$langName}={$this->owner->Locale}"
|
||||
|
@ -221,7 +221,7 @@ class TranslatableCMSMainExtension extends Extension
|
|||
// so just show a string displaying current language
|
||||
$field = new LiteralField(
|
||||
'Locale',
|
||||
i18n::get_locale_name(Translatable::get_current_locale())
|
||||
i18n::getData()->localeName(Translatable::get_current_locale())
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -1431,13 +1431,14 @@ class Translatable extends DataExtension implements PermissionProvider
|
|||
*/
|
||||
protected function populateSiteConfigDefaults()
|
||||
{
|
||||
$table = DataObject::getSchema()->tableName(get_class($this->owner));
|
||||
|
||||
// Work-around for population of defaults during database initialisation.
|
||||
// When the database is being setup singleton('SiteConfig') is called.
|
||||
if (!DB::get_schema()->hasTable(get_class($this->owner))) {
|
||||
if (!DB::get_schema()->hasTable($table)) {
|
||||
return;
|
||||
}
|
||||
if (!DB::get_schema()->hasField(get_class($this->owner), 'Locale')) {
|
||||
if (!DB::get_schema()->hasField($table, 'Locale')) {
|
||||
return;
|
||||
}
|
||||
if (DB::get_schema()->isSchemaUpdating()) {
|
||||
|
|
|
@ -11,6 +11,8 @@ use SilverStripe\ORM\DB;
|
|||
use SilverStripe\ORM\Search\FulltextSearchable;
|
||||
use SilverStripe\Security\Member;
|
||||
use SilverStripe\Translatable\Model\Translatable;
|
||||
use SilverStripe\Versioned\Versioned;
|
||||
use SilverStripe\Control\HTTPRequest;
|
||||
|
||||
/**
|
||||
* @package translatable
|
||||
|
@ -70,24 +72,24 @@ class TranslatableSearchFormTest extends FunctionalTest
|
|||
|
||||
public function testPublishedPagesMatchedByTitleInDefaultLanguage()
|
||||
{
|
||||
$sf = new SearchForm($this->mockController, SearchForm::class);
|
||||
|
||||
$publishedPage = $this->objFromFixture(SiteTree::class, 'publishedPage');
|
||||
$publishedPage->copyVersionToStage('Stage', 'Live');
|
||||
$publishedPage->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
|
||||
|
||||
$translatedPublishedPage = $publishedPage->createTranslation('de_DE');
|
||||
$translatedPublishedPage->Title = 'translatedPublishedPage';
|
||||
$translatedPublishedPage->Content = 'German content';
|
||||
$translatedPublishedPage->write();
|
||||
$translatedPublishedPage->copyVersionToStage('Stage', 'Live');
|
||||
$publishedPage->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
|
||||
|
||||
$this->waitUntilIndexingFinished();
|
||||
|
||||
// Translatable::set_current_locale() can't be used because the context
|
||||
// from the holder is not present here - we set the language explicitly
|
||||
// through a pseudo GET variable in getResults()
|
||||
|
||||
$lang = 'en_US';
|
||||
$results = $sf->getResults(null, array('Search' => 'content', 'searchlocale' => $lang));
|
||||
$request = new HTTPRequest('GET', 'search', ['Search'=>'content', 'searchlocale' => $lang]);
|
||||
$request->setSession($this->session());
|
||||
$this->mockController->setRequest($request);
|
||||
$sf = new SearchForm($this->mockController);
|
||||
$results = $sf->getResults();
|
||||
|
||||
$this->assertContains(
|
||||
$publishedPage->ID,
|
||||
$results->column('ID'),
|
||||
|
@ -100,7 +102,12 @@ class TranslatableSearchFormTest extends FunctionalTest
|
|||
);
|
||||
|
||||
$lang = 'de_DE';
|
||||
$results = $sf->getResults(null, array('Search' => 'content', 'searchlocale' => $lang));
|
||||
$request = new HTTPRequest('GET', 'search', ['Search'=>'content', 'searchlocale' => $lang]);
|
||||
$request->setSession($this->session());
|
||||
$this->mockController->setRequest($request);
|
||||
$sf2 = new SearchForm($this->mockController);
|
||||
$results = $sf2->getResults();
|
||||
|
||||
$this->assertNotContains(
|
||||
$publishedPage->ID,
|
||||
$results->column('ID'),
|
||||
|
|
Loading…
Reference in New Issue