Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
VariablesTest.php
Go to the documentation of this file.
1 <?php
7 
11 class VariablesTest extends \PHPUnit\Framework\TestCase
12 {
18  protected $model;
19 
25  protected $configVariables;
26 
30  private $configMock;
31 
32  protected function setup()
33  {
34  $this->configMock = $this->getMockBuilder(\Magento\Config\Model\Config\Structure\SearchInterface::class)
35  ->setMethods(['getElementByConfigPath'])
36  ->disableOriginalConstructor()
37  ->getMockForAbstractClass();
38  $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
39  $this->configVariables = [
40  'web' => [
41  'web/unsecure/base_url' => '1',
42  'web/secure/base_url' => '1'
43  ]
44  ];
45 
46  $element1 = $this->getMockBuilder(\Magento\Config\Model\Config\StructureElementInterface::class)
47  ->disableOriginalConstructor()
48  ->setMethods(['getLabel'])
49  ->getMockForAbstractClass();
50  $element2 = clone $element1;
51  $groupElement = clone $element1;
52  $element1->expects($this->once())->method('getLabel')->willReturn(__('Base URL'));
53  $element2->expects($this->once())->method('getLabel')->willReturn(__('Secure Base URL'));
54  $groupElement->expects($this->once())->method('getLabel')->willReturn(__('Web'));
55 
56  $this->configMock->expects($this->any())->method('getElementByConfigPath')->willReturnMap([
57  ['web', $groupElement],
58  ['web/unsecure/base_url', $element1],
59  ['web/secure/base_url', $element2]
60  ]);
61 
62  $this->model = $helper->getObject(\Magento\Variable\Model\Source\Variables::class, [
63  'configStructure' => $this->configMock,
64  'configPaths' => $this->configVariables
65  ]);
66  }
67 
69  {
70  $optionArray = $this->model->toOptionArray();
71  $this->assertEquals(count($this->configVariables['web']), count($optionArray));
72  $expectedResults = $this->getExpectedOptionsResults();
73  $index = 0;
74  foreach ($optionArray as $variable) {
75  $this->assertEquals($expectedResults[$index]['value'], $variable['value']);
76  $this->assertEquals($expectedResults[$index]['label_text'], $variable['label']->getText());
77  $index++;
78  }
79  }
80 
81  public function testToOptionArrayWithGroup()
82  {
83  $optionArray = $this->model->toOptionArray(true);
84  $this->assertEquals('Web', $optionArray[0]['label']);
85  $optionArrayValues = $optionArray[0]['value'];
86  $this->assertEquals(count($this->configVariables['web']), count($optionArrayValues));
87  $expectedResults = $this->getExpectedOptionsResults();
88  $index = 0;
89  foreach ($optionArray[0]['value'] as $variable) {
90  $this->assertEquals($expectedResults[$index]['value'], $variable['value']);
91  $this->assertEquals($expectedResults[$index]['label_text'], $variable['label']->getText());
92  $index++;
93  }
94  }
95 
99  private function getExpectedOptionsResults()
100  {
101  return [
102  [
103  'value' => '{{config path="web/unsecure/base_url"}}',
104  'label_text' => 'Base URL'
105  ],
106  [
107  'value' => '{{config path="web/secure/base_url"}}',
108  'label_text' => 'Secure Base URL'
109  ],
110  ];
111  }
112 }
$helper
Definition: iframe.phtml:13
__()
Definition: __.php:13
$variable
Definition: variable.php:7
$index
Definition: list.phtml:44