magento2-docker/dev/tests/integration/testsuite/Magento/Framework/Translate/InlineTest.php

127 lines
4.0 KiB
PHP
Executable File

<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Translate;
class InlineTest extends \PHPUnit\Framework\TestCase
{
/**
* @var \Magento\Framework\Translate\Inline
*/
protected $_model;
/**
* @var string
*/
protected $_storeId = 'default';
/**
* @var \Magento\Framework\Translate\Inline\StateInterface
*/
protected $state;
public static function setUpBeforeClass(): void
{
\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(\Magento\Framework\App\State::class)
->setAreaCode('frontend');
\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
\Magento\Framework\View\DesignInterface::class
)->setDesignTheme(
'Magento/blank'
);
}
protected function setUp(): void
{
$this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
\Magento\Framework\Translate\Inline::class
);
$this->state = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
\Magento\Framework\Translate\Inline\StateInterface::class
);
/* Called getConfig as workaround for setConfig bug */
\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
\Magento\Store\Model\StoreManagerInterface::class
)->getStore(
$this->_storeId
)->getConfig(
'dev/translate_inline/active'
);
\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
\Magento\Framework\App\Config\MutableScopeConfigInterface::class
)->setValue(
'dev/translate_inline/active',
true,
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
$this->_storeId
);
}
public function testIsAllowed()
{
$this->assertTrue($this->_model->isAllowed());
$this->assertTrue($this->_model->isAllowed($this->_storeId));
$this->assertTrue(
$this->_model->isAllowed(
\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
\Magento\Store\Model\StoreManagerInterface::class
)->getStore(
$this->_storeId
)
)
);
$this->state->suspend();
$this->assertFalse($this->_model->isAllowed());
$this->assertFalse($this->_model->isAllowed($this->_storeId));
$this->assertFalse(
$this->_model->isAllowed(
\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
\Magento\Store\Model\StoreManagerInterface::class
)->getStore(
$this->_storeId
)
)
);
}
/**
* @param string $originalText
* @param string $expectedText
* @dataProvider processResponseBodyDataProvider
*/
public function testProcessResponseBody($originalText, $expectedText)
{
$actualText = $originalText;
$this->_model->processResponseBody($actualText, false);
$this->markTestSkipped('Bug MAGE-2494');
$expected = new \DOMDocument();
$expected->preserveWhiteSpace = false;
$expected->loadHTML($expectedText);
$actual = new \DOMDocument();
$actual->preserveWhiteSpace = false;
$actual->loadHTML($actualText);
$this->assertEquals($expected, $actual);
}
/**
* @return array
*/
public function processResponseBodyDataProvider()
{
$originalText = file_get_contents(__DIR__ . '/_files/_inline_page_original.html');
$expectedText = file_get_contents(__DIR__ . '/_files/_inline_page_expected.html');
return [
'plain text' => ['text with no translations and tags', 'text with no translations and tags'],
'html string' => [$originalText, $expectedText],
'html array' => [[$originalText], [$expectedText]]
];
}
}