VariableTest.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Variable\Model;
  7. class VariableTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Variable\Model\Variable
  11. */
  12. protected $_model;
  13. protected function setUp()
  14. {
  15. $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  16. \Magento\Variable\Model\Variable::class
  17. );
  18. }
  19. public function testGetSetStoreId()
  20. {
  21. $this->_model->setStoreId(1);
  22. $this->assertEquals(1, $this->_model->getStoreId());
  23. }
  24. public function testLoadByCode()
  25. {
  26. $this->_model->setData(['code' => 'test_code', 'name' => 'test_name']);
  27. $this->_model->save();
  28. $variable = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  29. \Magento\Variable\Model\Variable::class
  30. );
  31. $variable->loadByCode('test_code');
  32. $this->assertEquals($this->_model->getName(), $variable->getName());
  33. $this->_model->delete();
  34. }
  35. public function testGetValue()
  36. {
  37. $html = '<p>test</p>';
  38. $text = 'test';
  39. $this->_model->setData(['code' => 'test_code', 'html_value' => $html, 'plain_value' => $text]);
  40. $this->assertEquals($html, $this->_model->getValue());
  41. $this->assertEquals($html, $this->_model->getValue(\Magento\Variable\Model\Variable::TYPE_HTML));
  42. $this->assertEquals($text, $this->_model->getValue(\Magento\Variable\Model\Variable::TYPE_TEXT));
  43. }
  44. public function testValidate()
  45. {
  46. $this->assertNotEmpty($this->_model->validate());
  47. $this->_model->setName('test')->setCode('test');
  48. $this->assertNotEmpty($this->_model->validate());
  49. $this->_model->save();
  50. try {
  51. $this->assertTrue($this->_model->validate());
  52. $this->_model->delete();
  53. } catch (\Exception $e) {
  54. $this->_model->delete();
  55. throw $e;
  56. }
  57. }
  58. public function testGetVariablesOptionArray()
  59. {
  60. $this->assertEquals([], $this->_model->getVariablesOptionArray());
  61. }
  62. public function testCollection()
  63. {
  64. $collection = $this->_model->getCollection();
  65. $collection->setStoreId(1);
  66. $this->assertEquals(1, $collection->getStoreId(), 'Store id setter and getter');
  67. $collection->addValuesToResult();
  68. $this->assertContains('variable_value', (string)$collection->getSelect());
  69. }
  70. /**
  71. * Test to verify that returned by getVariablesOptionArray()
  72. * custom variable label is HTML escaped.
  73. */
  74. public function testGetVariablesOptionArrayWithHtmlLabel()
  75. {
  76. $expectedLabel = '&lt;b&gt;HTML Name value&lt;/b&gt;';
  77. $data = [
  78. 'code' => 'html_name',
  79. 'name' => '<b>HTML Name value</b>'
  80. ];
  81. $this->_model->setData($data)->save();
  82. $actualLabel = current(current($this->_model->getVariablesOptionArray())['label']->getArguments());
  83. $this->assertEquals($expectedLabel, $actualLabel);
  84. }
  85. }