create('Magento\Framework\Translate\Inline'); $this->_inlineParser = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( 'Magento\Translation\Model\Inline\Parser', ['translateInline' => $inline] ); /* Called getConfig as workaround for setConfig bug */ \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( 'Magento\Store\Model\StoreManagerInterface' )->getStore( $this->_storeId )->getConfig( 'dev/translate_inline/active' ); \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( 'Magento\Framework\App\Config\MutableScopeConfigInterface' )->setValue( 'dev/translate_inline/active', true, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $this->_storeId ); } /** * @dataProvider processAjaxPostDataProvider */ public function testProcessAjaxPost($originalText, $translatedText, $isPerStore = null) { $inputArray = [['original' => $originalText, 'custom' => $translatedText]]; if ($isPerStore !== null) { $inputArray[0]['perstore'] = $isPerStore; } $this->_inlineParser->processAjaxPost($inputArray); $model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( 'Magento\Translation\Model\StringUtils' ); $model->load($originalText); try { $this->assertEquals($translatedText, $model->getTranslate()); $model->delete(); } catch (\Exception $e) { $model->delete(); \Magento\TestFramework\Helper\Bootstrap::getObjectManager() ->get('Psr\Log\LoggerInterface') ->critical($e); } } /** * @return array */ public function processAjaxPostDataProvider() { return [ ['original text 1', 'translated text 1'], ['original text 2', 'translated text 2', true] ]; } public function testSetGetIsJson() { $isJsonProperty = new \ReflectionProperty(get_class($this->_inlineParser), '_isJson'); $isJsonProperty->setAccessible(true); $this->assertFalse($isJsonProperty->getValue($this->_inlineParser)); $setIsJsonMethod = new \ReflectionMethod($this->_inlineParser, 'setIsJson'); $setIsJsonMethod->setAccessible(true); $setIsJsonMethod->invoke($this->_inlineParser, true); $this->assertTrue($isJsonProperty->getValue($this->_inlineParser)); } }