97 lines
3.1 KiB
PHP
Executable File
97 lines
3.1 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Variable\Model;
|
|
|
|
class VariableTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/**
|
|
* @var \Magento\Variable\Model\Variable
|
|
*/
|
|
protected $_model;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
|
|
\Magento\Variable\Model\Variable::class
|
|
);
|
|
}
|
|
|
|
public function testGetSetStoreId()
|
|
{
|
|
$this->_model->setStoreId(1);
|
|
$this->assertEquals(1, $this->_model->getStoreId());
|
|
}
|
|
|
|
public function testLoadByCode()
|
|
{
|
|
$this->_model->setData(['code' => 'test_code', 'name' => 'test_name']);
|
|
$this->_model->save();
|
|
|
|
$variable = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
|
|
\Magento\Variable\Model\Variable::class
|
|
);
|
|
$variable->loadByCode('test_code');
|
|
$this->assertEquals($this->_model->getName(), $variable->getName());
|
|
$this->_model->delete();
|
|
}
|
|
|
|
public function testGetValue()
|
|
{
|
|
$html = '<p>test</p>';
|
|
$text = 'test';
|
|
$this->_model->setData(['code' => 'test_code', 'html_value' => $html, 'plain_value' => $text]);
|
|
$this->assertEquals($html, $this->_model->getValue());
|
|
$this->assertEquals($html, $this->_model->getValue(\Magento\Variable\Model\Variable::TYPE_HTML));
|
|
$this->assertEquals($text, $this->_model->getValue(\Magento\Variable\Model\Variable::TYPE_TEXT));
|
|
}
|
|
|
|
public function testValidate()
|
|
{
|
|
$this->assertNotEmpty($this->_model->validate());
|
|
$this->_model->setName('test')->setCode('test');
|
|
$this->assertNotEmpty($this->_model->validate());
|
|
$this->_model->save();
|
|
try {
|
|
$this->assertTrue($this->_model->validate());
|
|
$this->_model->delete();
|
|
} catch (\Exception $e) {
|
|
$this->_model->delete();
|
|
throw $e;
|
|
}
|
|
}
|
|
|
|
public function testGetVariablesOptionArray()
|
|
{
|
|
$this->assertEquals([], $this->_model->getVariablesOptionArray());
|
|
}
|
|
|
|
public function testCollection()
|
|
{
|
|
$collection = $this->_model->getCollection();
|
|
$collection->setStoreId(1);
|
|
$this->assertEquals(1, $collection->getStoreId(), 'Store id setter and getter');
|
|
|
|
$collection->addValuesToResult();
|
|
$this->assertStringContainsString('variable_value', (string)$collection->getSelect());
|
|
}
|
|
|
|
/**
|
|
* Test to verify that returned by getVariablesOptionArray()
|
|
* custom variable label is HTML escaped.
|
|
*/
|
|
public function testGetVariablesOptionArrayWithHtmlLabel()
|
|
{
|
|
$expectedLabel = '<b>HTML Name value</b>';
|
|
$data = [
|
|
'code' => 'html_name',
|
|
'name' => '<b>HTML Name value</b>'
|
|
];
|
|
$this->_model->setData($data)->save();
|
|
$actualLabel = current(current($this->_model->getVariablesOptionArray())['label']->getArguments());
|
|
$this->assertEquals($expectedLabel, $actualLabel);
|
|
}
|
|
}
|