1<?php 2 3namespace Drupal\Tests\language\Kernel\Migrate\d6; 4 5use Drupal\language\Entity\ContentLanguageSettings; 6use Drupal\Core\Language\LanguageInterface; 7use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; 8 9/** 10 * Tests migration of i18ntaxonomy vocabulary settings. 11 * 12 * @group migrate_drupal_6 13 */ 14class MigrateLanguageContentTaxonomyVocabularySettingsTest extends MigrateDrupal6TestBase { 15 16 /** 17 * {@inheritdoc} 18 */ 19 protected static $modules = [ 20 'language', 21 'content_translation', 22 'taxonomy', 23 ]; 24 25 /** 26 * {@inheritdoc} 27 */ 28 protected function setUp(): void { 29 parent::setUp(); 30 $this->installEntitySchema('taxonomy_term'); 31 $this->executeMigrations([ 32 'language', 33 'd6_taxonomy_vocabulary', 34 'd6_language_content_taxonomy_vocabulary_settings', 35 ]); 36 } 37 38 /** 39 * Tests migration of 18ntaxonomy vocabulary settings. 40 */ 41 public function testLanguageContentTaxonomy() { 42 $target_entity = 'taxonomy_term'; 43 // Per Language. 44 $this->assertLanguageContentSettings($target_entity, 'vocabulary_1_i_0_', LanguageInterface::LANGCODE_SITE_DEFAULT, TRUE, ['enabled' => FALSE]); 45 // Set language to vocabulary. 46 $this->assertLanguageContentSettings($target_entity, 'vocabulary_2_i_1_', 'fr', FALSE, ['enabled' => FALSE]); 47 // Localize terms. 48 $this->assertLanguageContentSettings($target_entity, 'vocabulary_3_i_2_', LanguageInterface::LANGCODE_SITE_DEFAULT, TRUE, ['enabled' => FALSE]); 49 // None translation enabled. 50 $this->assertLanguageContentSettings($target_entity, 'vocabulary_name_much_longer_th', LanguageInterface::LANGCODE_SITE_DEFAULT, TRUE, ['enabled' => TRUE]); 51 $this->assertLanguageContentSettings($target_entity, 'tags', LanguageInterface::LANGCODE_SITE_DEFAULT, FALSE, ['enabled' => FALSE]); 52 $this->assertLanguageContentSettings($target_entity, 'forums', LanguageInterface::LANGCODE_SITE_DEFAULT, FALSE, ['enabled' => FALSE]); 53 $this->assertLanguageContentSettings($target_entity, 'type', LanguageInterface::LANGCODE_SITE_DEFAULT, FALSE, ['enabled' => FALSE]); 54 } 55 56 /** 57 * Asserts a content language settings configuration. 58 * 59 * @param string $target_entity 60 * The expected target entity type. 61 * @param string $bundle 62 * The expected bundle. 63 * @param string $default_langcode 64 * The default language code. 65 * @param bool $language_alterable 66 * The expected state of language alterable. 67 * @param array $third_party_settings 68 * The content translation setting. 69 */ 70 public function assertLanguageContentSettings($target_entity, $bundle, $default_langcode, $language_alterable, array $third_party_settings) { 71 $config = ContentLanguageSettings::load($target_entity . "." . $bundle); 72 $this->assertInstanceOf(ContentLanguageSettings::class, $config); 73 $this->assertSame($target_entity, $config->getTargetEntityTypeId()); 74 $this->assertSame($bundle, $config->getTargetBundle()); 75 $this->assertSame($default_langcode, $config->getDefaultLangcode()); 76 $this->assertSame($language_alterable, $config->isLanguageAlterable()); 77 $this->assertSame($third_party_settings, $config->getThirdPartySettings('content_translation')); 78 } 79 80} 81