Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ButtonsTest.php
Go to the documentation of this file.
1 <?php
7 
11 
12 class ButtonsTest extends \PHPUnit\Framework\TestCase
13 {
17  private $converter;
18 
22  private $urlConverter;
23 
24  public function setUp()
25  {
26  $this->urlConverter = $this->getMockBuilder(ConverterInterface::class)->getMockForAbstractClass();
27  $this->converter = new Buttons($this->urlConverter, new ConverterUtils());
28  }
29 
30  public function testConvert()
31  {
32  $dom = new \DOMDocument('1.0', 'UTF-8');
33  $dom->load(dirname(__FILE__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'test.xml');
34  $domXpath = new \DOMXPath($dom);
35  $buttons = $domXpath->query('//listing/settings/buttons')->item(0);
36  $url = $domXpath->query('//listing/settings/buttons/button[@name="button_2"]/url')->item(0);
37  $urlResult = [
38  'name' => 'url',
39  'xsi:type' => 'url',
40  'path' => 'url',
41  'param' => [
42  'first' => [
43  'name' => 'first',
44  'value' => 'first_value'
45  ],
46  'second' => [
47  'name' => 'second',
48  'value' => 'second_value'
49  ],
50 
51  ],
52  ];
53  $this->urlConverter->expects($this->any())
54  ->method('convert')
55  ->with($url, ['type' => 'url'])
56  ->willReturn($urlResult);
57  $expectedResult = [
58  'name' => 'buttons',
59  'xsi:type' => 'array',
60  'item' => [
61  'button_1' => [
62  'name' => 'button_1',
63  'xsi:type' => 'string',
64  'value' => 'Some_Class',
65  ],
66  'button_2' => [
67  'name' => 'button_2',
68  'xsi:type' => 'array',
69  'item' => [
70  'class' => [
71  'name' => 'class',
72  'xsi:type' => 'string',
73  'value' => 'css_class',
74  ],
75  'label' => [
76  'name' => 'label',
77  'xsi:type' => 'string',
78  'translate' => 'true',
79  'value' => 'Label Button 2',
80  ],
81  'url' => $urlResult,
82  'custom_param' => [
83  'name' => 'custom_param',
84  'xsi:type' => 'string',
85  'value' => 'custom_value'
86  ],
87  'name' => [
88  'name' => 'name',
89  'xsi:type' => 'string',
90  'value' => 'button_2',
91  ],
92  ],
93  ],
94  ],
95  ];
96 
97  $this->assertEquals($expectedResult, $this->converter->convert($buttons));
98  }
99 
100  public function testConvertEmptyButtons()
101  {
102  $dom = new \DOMDocument('1.0', 'UTF-8');
103  $dom->load(dirname(__FILE__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'testForm.xml');
104  $domXpath = new \DOMXPath($dom);
105  $buttons = $domXpath->query('//form/settings/buttons')->item(0);
106  $expectedResult = [
107  'name' => 'buttons',
108  'xsi:type' => 'array',
109  'item' => []
110  ];
111 
112  $this->assertEquals($expectedResult, $this->converter->convert($buttons));
113  }
114 }
defined('MTF_BOOT_FILE')||define('MTF_BOOT_FILE' __FILE__
Definition: bootstrap.php:7