127 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			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]]
 | 
						|
        ];
 | 
						|
    }
 | 
						|
}
 |