/** * @param ConfigProvider $provider * @param ConfigInterface $config * @param array $data * @param string $state * @return array */ protected function processData(ConfigProvider $provider, ConfigInterface $config, array $data, $state) { if ($provider->getScope() === 'enum' && $config->get('enum_code')) { return []; } $translatable = $provider->getPropertyConfig()->getTranslatableValues($config->getId()); $translations = []; foreach ($data as $code => $value) { if (in_array($code, $translatable, true)) { // check if a label text was changed $labelKey = $config->get($code); if ($state === ExtendScope::STATE_NEW || !$this->translationHelper->isTranslationEqual($labelKey, $value)) { $translations[$labelKey] = $value; } // replace label text with label name in $value variable $value = $labelKey; } $config->set($code, $value); } $this->configManager->persist($config); return $translations; }
/** * @dataProvider isTranslationEqualDataProvider * * @param string $translation * @param string $key * @param string $value * @param bool $expected */ public function testIsTranslationEqual($translation, $key, $value, $expected) { $this->translator->expects($this->once())->method('trans')->with($key)->willReturn($translation); $this->assertEquals($expected, $this->helper->isTranslationEqual($key, $value)); }