View source
<?php
namespace Drupal\Tests\search_api_sorts\Functional\Update;
use Drupal\language\Entity\ConfigurableLanguage;
use Drupal\search_api_sorts\Entity\SearchApiSortsField;
class SearchApiSortsUpdate8103Test extends SearchApiSortsUpdateBase {
public static $entityTypes = [
'configurable_language',
'language_content_settings',
];
protected $languageManager;
protected function setDatabaseDumpFiles() {
parent::setDatabaseDumpFiles();
$this->databaseDumpFiles[] = __DIR__ . '/../../../fixtures/update/search-api-sorts-test-update-8103.php';
}
public function setUp() : void {
parent::setUp();
$this->languageManager = $this->container
->get('language_manager');
ConfigurableLanguage::createFromLangcode('fr')
->save();
$this
->createSearchApiSortsField('type');
$this
->createSearchApiSortsField('id', [
'label' => 'Identifiant',
'langcode' => 'fr',
]);
$this
->createSearchApiSortsField('created');
$field_config = $this->languageManager
->getLanguageConfigOverride('fr', 'search_api_sorts.search_api_sorts_field.views_page---search_api_sorts_test_view__page_1_created');
$field_config
->set('label', 'Créé sur')
->save();
$this
->createSearchApiSortsField('title', [
'label' => 'Titre',
'langcode' => 'fr',
]);
$field_config = $this->languageManager
->getLanguageConfigOverride('en', 'search_api_sorts.search_api_sorts_field.views_page---search_api_sorts_test_view__page_1_title');
$field_config
->set('label', 'Title')
->save();
}
public function testUpdate8103() {
$this
->runUpdates();
$config = $this
->config('search_api_sorts.search_api_sorts_field.views_page---search_api_sorts_test_view__page_1_type');
$this
->assertEquals('type', $config
->get('label'));
$this
->assertEquals('en', $config
->get('langcode'));
$fr_config = $this->languageManager
->getLanguageConfigOverride('fr', 'search_api_sorts.search_api_sorts_field.views_page---search_api_sorts_test_view__page_1_type');
$this
->assertTrue($fr_config
->isNew());
$config = $this
->config('search_api_sorts.search_api_sorts_field.views_page---search_api_sorts_test_view__page_1_id');
$this
->assertEquals('Identifiant', $config
->get('label'));
$this
->assertEquals('en', $config
->get('langcode'));
$fr_config = $this->languageManager
->getLanguageConfigOverride('fr', 'search_api_sorts.search_api_sorts_field.views_page---search_api_sorts_test_view__page_1_id');
$this
->assertFalse($fr_config
->isNew());
$this
->assertEquals('Identifiant', $fr_config
->get('label'));
$config = $this
->config('search_api_sorts.search_api_sorts_field.views_page---search_api_sorts_test_view__page_1_created');
$this
->assertEquals('created', $config
->get('label'));
$this
->assertEquals('en', $config
->get('langcode'));
$fr_config = $this->languageManager
->getLanguageConfigOverride('fr', 'search_api_sorts.search_api_sorts_field.views_page---search_api_sorts_test_view__page_1_created');
$this
->assertFalse($fr_config
->isNew());
$this
->assertEquals('Créé sur', $fr_config
->get('label'));
$config = $this
->config('search_api_sorts.search_api_sorts_field.views_page---search_api_sorts_test_view__page_1_title');
$this
->assertEquals('Title', $config
->get('label'));
$this
->assertEquals('en', $config
->get('langcode'));
$fr_config = $this->languageManager
->getLanguageConfigOverride('fr', 'search_api_sorts.search_api_sorts_field.views_page---search_api_sorts_test_view__page_1_title');
$this
->assertFalse($fr_config
->isNew());
$this
->assertEquals('Titre', $fr_config
->get('label'));
}
protected function createSearchApiSortsField(string $field, array $values = []) : SearchApiSortsField {
$search_api_sorts_field = SearchApiSortsField::create($values + [
'id' => sprintf('views_page---search_api_sorts_test_view__page_1_%s', $field),
'display_id' => 'views_page---search_api_sorts_test_view__page_1',
'field_identifier' => $field,
'label' => $field,
'langcode' => 'en',
'status' => TRUE,
]);
$search_api_sorts_field
->save();
return $search_api_sorts_field;
}
}