![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/integration/testsuite/Magento/Translation/Model/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Translation\Model; use Magento\Framework\App\Config\MutableScopeConfigInterface; use Magento\Framework\App\State; use Magento\Framework\Translate\Inline; use Magento\Framework\App\Area; use Magento\Store\Model\ScopeInterface; use Magento\TestFramework\Helper\Bootstrap; use Magento\Translation\Model\Inline\Parser; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; /** * Test for \Magento\Translation\Model\Inline\Parser. */ class InlineParserTest extends TestCase { private const STUB_STORE = 'default'; private const XML_PATH_TRANSLATE_INLINE_ACTIVE = 'dev/translate_inline/active'; /** * @var Parser */ private $model; /** * @inheritDoc */ protected function setUp(): void { $inline = Bootstrap::getObjectManager()->create(Inline::class); $this->model = Bootstrap::getObjectManager()->create(Parser::class, ['translateInline' => $inline]); Bootstrap::getObjectManager()->get(MutableScopeConfigInterface::class) ->setValue(self::XML_PATH_TRANSLATE_INLINE_ACTIVE, true, ScopeInterface::SCOPE_STORE, self::STUB_STORE); } /** * Process ajax post test * * @dataProvider processAjaxPostDataProvider * * @param string $originalText * @param string $translatedText * @param string $area * @param bool|null $isPerStore * @return void */ public function testProcessAjaxPost( string $originalText, string $translatedText, string $area, ?bool $isPerStore = null ): void { Bootstrap::getObjectManager()->get(State::class) ->setAreaCode($area); $inputArray = [['original' => $originalText, 'custom' => $translatedText]]; if ($isPerStore !== null) { $inputArray[0]['perstore'] = $isPerStore; } $this->model->processAjaxPost($inputArray); $model = Bootstrap::getObjectManager()->create(StringUtils::class); $model->load($originalText); try { $this->assertEquals($translatedText, $model->getTranslate()); $model->delete(); } catch (\Exception $e) { $model->delete(); Bootstrap::getObjectManager()->get(LoggerInterface::class) ->critical($e); } } /** * Data provider for testProcessAjaxPost * * @return array */ public function processAjaxPostDataProvider(): array { return [ ['original text 1', 'translated text 1', Area::AREA_ADMINHTML], ['original text 1', 'translated text 1', Area::AREA_FRONTEND], ['original text 2', 'translated text 2', Area::AREA_ADMINHTML, true], ['original text 2', 'translated text 2', Area::AREA_FRONTEND, true], ]; } /** * Set get is json test * * @dataProvider allowedAreasDataProvider * * @param string $area * @return void */ public function testSetGetIsJson(string $area): void { Bootstrap::getObjectManager()->get(State::class) ->setAreaCode($area); $isJsonProperty = new \ReflectionProperty(get_class($this->model), '_isJson'); $isJsonProperty->setAccessible(true); $this->assertFalse($isJsonProperty->getValue($this->model)); $setIsJsonMethod = new \ReflectionMethod($this->model, 'setIsJson'); $setIsJsonMethod->setAccessible(true); $setIsJsonMethod->invoke($this->model, true); $this->assertTrue($isJsonProperty->getValue($this->model)); } /** * Data provider for testSetGetIsJson * * @return array */ public function allowedAreasDataProvider(): array { return [ [Area::AREA_ADMINHTML], [Area::AREA_FRONTEND] ]; } }