contentTranslationManager = $this->container->get('content_translation.manager'); $this->bundleInfo = $this->container->get('entity_type.bundle.info'); $this->installEntitySchema('entity_test_mul'); ConfigurableLanguage::createFromLangcode('it')->save(); } /** * Tests that modules can know whether bundles are translatable. */ public function testHookInvocationOrder() { $this->contentTranslationManager->setEnabled('entity_test_mul', 'entity_test_mul', TRUE); $this->bundleInfo->clearCachedBundles(); $this->bundleInfo->getAllBundleInfo(); // Verify that the test module comes first in the module list, which would // normally make its hook implementation to be invoked first. /** @var \Drupal\Core\Extension\ModuleHandlerInterface $module_handler */ $module_handler = $this->container->get('module_handler'); $module_list = $module_handler->getModuleList(); $expected_modules = [ 'content_translation_test', 'content_translation', ]; $actual_modules = array_keys(array_intersect_key($module_list, array_flip($expected_modules))); $this->assertEquals($expected_modules, $actual_modules); // Check that the "content_translation_test" hook implementation has access // to the "translatable" bundle info property. /** @var \Drupal\Core\State\StateInterface $state */ $state = $this->container->get('state'); $this->assertTrue($state->get('content_translation_test.translatable')); } /** * Tests that field synchronization is skipped for disabled bundles. */ public function testFieldSynchronizationWithDisabledBundle() { $entity = EntityTestMul::create(); $entity->save(); /** @var \Drupal\Core\Entity\ContentEntityInterface $translation */ $translation = $entity->addTranslation('it'); $translation->save(); $this->assertTrue($entity->isTranslatable()); } }