Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
All Data Structures Namespaces Files Functions Variables Pages
DisableOutputTest.php
Go to the documentation of this file.
1 <?php
7 
11 class DisableOutputTest extends \PHPUnit\Framework\TestCase
12 {
16  protected $object;
17 
21  protected $elementMock;
22 
26  protected $elementData = [
27  'htmlId' => 'test_field_id',
28  'name' => 'test_name',
29  'label' => 'test_label',
30  'elementHTML' => 'test_html',
31  'legend' => 'test_legend',
32  'comment' => 'test_comment',
33  'tooltip' => 'test_tooltip',
34  ];
35 
39  protected $layoutMock;
40 
44  protected $objectManager;
45 
49  protected $moduleListMock;
50 
54  protected $authSessionMock;
55 
59  protected $userMock;
60 
64  protected $jsHelperMock;
65 
70  protected function setUp()
71  {
72  $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
73 
74  $rendererMock = $this->getMockBuilder(\Magento\Config\Block\System\Config\Form\Field::class)
75  ->disableOriginalConstructor()
76  ->getMock();
77 
78  $this->layoutMock = $this->getMockBuilder(\Magento\Framework\View\Layout::class)
79  ->disableOriginalConstructor()
80  ->getMock();
81  $this->layoutMock->expects($this->any())
82  ->method('getBlockSingleton')
83  ->willReturn($rendererMock);
84 
85  $this->jsHelperMock = $this->getMockBuilder(\Magento\Framework\View\Helper\Js::class)
86  ->disableOriginalConstructor()
87  ->getMock();
88 
89  $this->moduleListMock = $this->getMockBuilder(\Magento\Framework\Module\ModuleListInterface::class)
90  ->setMethods(['getNames', 'has', 'getAll', 'getOne'])
91  ->disableOriginalConstructor()
92  ->getMock();
93 
94  $this->moduleListMock->expects($this->any())
95  ->method('getNames')
96  ->will($this->returnValue(['Test Name']));
97  $this->moduleListMock->expects($this->any())
98  ->method('has')
99  ->will($this->returnValue(true));
100  $this->moduleListMock->expects($this->any())
101  ->method('getAll')
102  ->will($this->returnValue([]));
103  $this->moduleListMock->expects($this->any())
104  ->method('getOne')
105  ->will($this->returnValue(null));
106 
107  $this->authSessionMock = $this->getMockBuilder(\Magento\Backend\Model\Auth\Session::class)
108  ->setMethods(['getUser'])
109  ->disableOriginalConstructor()
110  ->getMock();
111 
112  $this->userMock = $this->getMockBuilder(\Magento\User\Model\User::class)
113  ->setMethods(['getExtra'])
114  ->disableOriginalConstructor()
115  ->getMock();
116 
117  $this->authSessionMock->expects($this->any())
118  ->method('getUser')
119  ->willReturn($this->userMock);
120 
121  $groupMock = $this->getMockBuilder(\Magento\Config\Model\Config\Structure\Element\Group::class)
122  ->setMethods(['getFieldsetCss'])
123  ->disableOriginalConstructor()
124  ->getMock();
125  $groupMock->expects($this->any())->method('getFieldsetCss')->will($this->returnValue('test_fieldset_css'));
126 
127  $factory = $this->getMockBuilder(\Magento\Framework\Data\Form\Element\Factory::class)
128  ->disableOriginalConstructor()
129  ->getMock();
130  $factoryColl = $this->getMockBuilder(\Magento\Framework\Data\Form\Element\CollectionFactory::class)
131  ->disableOriginalConstructor()
132  ->getMock();
133  $formMock = $this->getMockBuilder(\Magento\Framework\Data\Form\AbstractForm::class)
134  ->setConstructorArgs([$factory, $factoryColl])
135  ->getMock();
136 
137  $context = $this->objectManager->getObject(
138  \Magento\Backend\Block\Context::class,
139  [
140  'layout' => $this->layoutMock,
141  ]
142  );
143 
144  $data = [
145  'context' => $context,
146  'authSession' => $this->authSessionMock,
147  'jsHelper' => $this->jsHelperMock,
148  'moduleList' => $this->moduleListMock,
149  'data' => [
150  'group' => $groupMock,
151  'form' => $formMock,
152  ],
153  ];
154 
155  $this->object = $this->objectManager->getObject(
156  \Magento\Config\Block\System\Config\Form\Fieldset\Modules\DisableOutput::class,
157  $data
158  );
159 
160  $this->elementMock = $this->getMockBuilder(\Magento\Framework\Data\Form\Element\Text::class)
161  ->setMethods(
162  [
163  'getId', 'getHtmlId', 'getName', 'getExpanded', 'getLegend', 'getComment', 'getTooltip', 'toHtml',
164  'addField', 'setRenderer', 'getElements', 'getIsNested'
165  ]
166  )
167  ->disableOriginalConstructor()
168  ->disableOriginalClone()
169  ->enableAutoload()
170  ->getMock();
171 
172  $this->elementMock->expects($this->any())
173  ->method('getId')
174  ->will($this->returnValue($this->elementData['htmlId']));
175  $this->elementMock->expects($this->any())
176  ->method('getHtmlId')
177  ->will($this->returnValue($this->elementData['htmlId']));
178  $this->elementMock->expects($this->any())
179  ->method('getName')
180  ->will($this->returnValue($this->elementData['name']));
181  $this->elementMock->expects($this->any())
182  ->method('getLegend')
183  ->will($this->returnValue($this->elementData['legend']));
184  $this->elementMock->expects($this->any())
185  ->method('getComment')
186  ->will($this->returnValue($this->elementData['comment']));
187  $this->elementMock->expects($this->any())
188  ->method('getTooltip')
189  ->will($this->returnValue($this->elementData['tooltip']));
190  $this->elementMock->expects($this->any())
191  ->method('toHtml')
192  ->will($this->returnValue($this->elementData['elementHTML']));
193  $this->elementMock->expects($this->any())
194  ->method('addField')
195  ->will($this->returnValue($this->elementMock));
196  $this->elementMock->expects($this->any())
197  ->method('setRenderer')
198  ->will($this->returnValue($this->elementMock));
199  $this->elementMock->expects($this->any())
200  ->method('getElements')
201  ->will($this->returnValue([$this->elementMock]));
202  }
203 
210  public function testRender($expanded, $nested, $extra)
211  {
212  $this->elementMock->expects($this->any())->method('getExpanded')->will($this->returnValue($expanded));
213  $this->elementMock->expects($this->any())->method('getIsNested')->will($this->returnValue($nested));
214  $this->userMock->expects($this->any())->method('getExtra')->willReturn($extra);
215  $actualHtml = $this->object->render($this->elementMock);
216 
217  $this->assertContains($this->elementData['htmlId'], $actualHtml);
218  $this->assertContains($this->elementData['legend'], $actualHtml);
219  $this->assertContains($this->elementData['comment'], $actualHtml);
220  $this->assertContains($this->elementData['tooltip'], $actualHtml);
221  $this->assertContains($this->elementData['elementHTML'], $actualHtml);
222  if ($nested) {
223  $this->assertContains('nested', $actualHtml);
224  }
225  }
226 
230  public function renderDataProvider()
231  {
232  return [
233  'expandedNestedExtra' => [
234  'expanded' => true,
235  'nested' => true,
236  'extra' => [],
237  ],
238  'collapsedNotNestedExtra' => [
239  'expanded' => false,
240  'nested' => false,
241  'extra' => ['configState' => [$this->elementData['htmlId'] => true]],
242  ],
243  'collapsedNotNestedNoExtra' => [
244  'expanded' => false,
245  'nested' => false,
246  'extra' => [],
247  ],
248  ];
249  }
250 }
if( $_orders &&count( $_orders))( 'Orders') ?></caption >< thead >< tr >< th scopeforeach( $_orders as $_order)(__( 'Order #')) ?>" class $extra
Definition: history.phtml:32