Skip to content

Commit 5587315

Browse files
author
Bohdan Korablov
committed
Merge remote-tracking branch 'tangoc/MAGETWO-43343' into new_pr_bugs
2 parents 79d4531 + c33fbcb commit 5587315

File tree

2 files changed

+112
-4
lines changed

2 files changed

+112
-4
lines changed

app/code/Magento/Backend/Block/Widget/Grid/Column/Renderer/AbstractRenderer.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,11 @@ public function getColumn()
5151
public function render(DataObject $row)
5252
{
5353
if ($this->getColumn()->getEditable()) {
54-
$value = $this->_getValue($row);
55-
return '<div class="admin__grid-control">' .
56-
'<span class="admin__grid-control-value">' . $value . '</span>' .
57-
$this->_getInputValueElement($row) . '</div>' ;
54+
$result = '<div class="admin__grid-control">';
55+
$result .= $this->getColumn()->getEditOnly() ? ''
56+
: '<span class="admin__grid-control-value">' . $this->_getValue($row) . '</span>';
57+
58+
return $result . $this->_getInputValueElement($row) . '</div>' ;
5859
}
5960
return $this->_getValue($row);
6061
}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Backend\Test\Unit\Block\Widget\Grid\Column\Renderer;
7+
8+
class AbstractRendererTest extends \PHPUnit_Framework_TestCase
9+
{
10+
/**
11+
* @var \Magento\Backend\Block\Widget\Grid\Column|\PHPUnit_Framework_MockObject_MockObject
12+
*/
13+
protected $columnMock;
14+
15+
/**
16+
* @var \Magento\Framework\DataObject|\PHPUnit_Framework_MockObject_MockObject
17+
*/
18+
protected $dataObjectMock;
19+
20+
/**
21+
* @var \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer
22+
*/
23+
protected $renderer;
24+
25+
/**
26+
* @return void
27+
*/
28+
protected function setUp()
29+
{
30+
$this->dataObjectMock = $this->getMock('Magento\Framework\DataObject', ['getData'], [], '', false);
31+
$this->columnMock = $this->getMockBuilder('Magento\Backend\Block\Widget\Grid\Column')
32+
->disableOriginalConstructor()
33+
->setMethods(['getEditable', 'getIndex', 'getEditOnly', 'getId'])
34+
->getMock();
35+
$this->renderer = $this->getMockBuilder('Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer')
36+
->disableOriginalConstructor()
37+
->setMethods(null)
38+
->getMock();
39+
}
40+
41+
/**
42+
* @param bool $editable
43+
* @param bool $onlyEdit
44+
* @param string $expectedResult
45+
* @return void
46+
* @dataProvider renderDataProvider
47+
*/
48+
public function testRender($editable, $onlyEdit, $expectedResult)
49+
{
50+
$value = 'some value';
51+
$keyValue = 'key';
52+
53+
$this->columnMock->expects($this->once())
54+
->method('getEditable')
55+
->willReturn($editable);
56+
$this->columnMock->expects($this->any())
57+
->method('getEditOnly')
58+
->willReturn($onlyEdit);
59+
$this->columnMock->expects($this->any())
60+
->method('getIndex')
61+
->willReturn($keyValue);
62+
$this->columnMock->expects($this->any())
63+
->method('getId')
64+
->willReturn('test');
65+
$this->dataObjectMock->expects($this->any())
66+
->method('getData')
67+
->with($keyValue)
68+
->willReturn($value);
69+
$this->renderer->setColumn($this->columnMock);
70+
71+
$this->assertEquals($expectedResult, $this->renderer->render($this->dataObjectMock));
72+
}
73+
74+
/**
75+
* @return array
76+
*/
77+
public function renderDataProvider()
78+
{
79+
return [
80+
[
81+
'editable' => false,
82+
'onlyEdit' => false,
83+
'expectedResult' => 'some value'
84+
],
85+
[
86+
'editable' => false,
87+
'onlyEdit' => true,
88+
'expectedResult' => 'some value'
89+
],
90+
[
91+
'editable' => true,
92+
'onlyEdit' => false,
93+
'expectedResult' => '<div class="admin__grid-control">'
94+
. '<span class="admin__grid-control-value">some value</span>'
95+
. '<input type="text" class="input-text " name="test" value="some value"/>'
96+
. '</div>'
97+
],
98+
[
99+
'editable' => true,
100+
'onlyEdit' => true,
101+
'expectedResult' => '<div class="admin__grid-control">'
102+
. '<input type="text" class="input-text " name="test" value="some value"/>'
103+
. '</div>'
104+
],
105+
];
106+
}
107+
}

0 commit comments

Comments
 (0)