Skip to content

Commit ba6acb6

Browse files
author
Ievgen Shakhsuvarov
committed
MAGETWO-35262: It's impossible to update Gift Message from backend
1 parent 06a2e31 commit ba6acb6

File tree

3 files changed

+69
-6
lines changed

3 files changed

+69
-6
lines changed

app/code/Magento/GiftMessage/Model/Save.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,9 @@ public function saveAllInOrder()
9898
return $this;
9999
}
100100

101-
// types are 'quote', 'quote_item', etc
102-
foreach ($giftMessages as $type => $giftMessageEntities) {
103-
foreach ($giftMessageEntities as $entityId => $giftmessage) {
104-
$this->_saveOne($entityId, $giftmessage, $type);
105-
}
101+
foreach ($giftMessages as $entityId => $giftMessage) {
102+
$entityType = $this->getMappedType($giftMessage['type']);
103+
$this->_saveOne($entityId, $giftMessage, $entityType);
106104
}
107105

108106
return $this;
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<?php
2+
/**
3+
*
4+
* Copyright © 2015 Magento. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
namespace Magento\GiftMessage\Test\Unit\Model;
8+
9+
class SaveTest extends \PHPUnit_Framework_TestCase
10+
{
11+
/**
12+
* @var \PHPUnit_FrameWork_MockObject_MockObject
13+
*/
14+
protected $messageFactoryMock;
15+
16+
/**
17+
* @var \Magento\GiftMessage\Model\Save
18+
*/
19+
protected $model;
20+
21+
protected function setUp()
22+
{
23+
$productRepositoryMock = $this->getMock('\Magento\Catalog\Api\ProductRepositoryInterface', [], [], '', false);
24+
$this->messageFactoryMock = $this->getMock('\Magento\GiftMessage\Model\MessageFactory', [], [], '', false);
25+
$sessionMock = $this->getMock('\Magento\Backend\Model\Session\Quote', [], [], '', false);
26+
$giftMessageHelperMock = $this->getMock('\Magento\GiftMessage\Helper\Message', [], [], '', false);
27+
$this->model = new \Magento\GiftMessage\Model\Save(
28+
$productRepositoryMock,
29+
$this->messageFactoryMock,
30+
$sessionMock,
31+
$giftMessageHelperMock
32+
);
33+
}
34+
35+
public function testSaveAllInOrder()
36+
{
37+
$message = [1 =>
38+
[
39+
'from' => 'John Doe',
40+
'to' => 'Jane Doe',
41+
'message' => 'I love Magento',
42+
'type' => 'order'
43+
]
44+
];
45+
$this->model->setGiftmessages($message);
46+
47+
$messageMock = $this->getMock('\Magento\GiftMessage\Model\Message', [], [], '', false);
48+
$entityModelMock = $this->getMock('\Magento\Sales\Model\Order', [], [], '', false);
49+
50+
$this->messageFactoryMock->expects($this->once())->method('create')->willReturn($messageMock);
51+
$messageMock->expects($this->once())->method('getEntityModelByType')->with('order')->willReturnSelf();
52+
$messageMock->expects($this->once())->method('load')->with(1)->willReturn($entityModelMock);
53+
$messageMock->expects($this->atLeastOnce())->method('isMessageEmpty')->willReturn(false);
54+
$messageMock->expects($this->once())->method('save');
55+
$entityModelMock->expects($this->once())->method('save');
56+
$this->assertEquals($this->model, $this->model->saveAllInOrder());
57+
}
58+
}

app/code/Magento/Sales/view/adminhtml/web/order/create/giftmessage.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,14 @@ window.giftMessagesController = {
100100

101101
new Ajax.Request($(this.getFieldId(container, 'form')).action, {
102102
parameters: Form.serialize($(this.getFieldId(container, 'form')), true),
103-
loaderArea: container
103+
loaderArea: container,
104+
onSuccess: function(response) {
105+
var message = '<div class="messages"><div class="message message-success success">'
106+
+ response.responseText
107+
+ '<div data-ui-id="messages-message-success"></div></div></div>';
108+
jQuery('#messages').html(message);
109+
jQuery(document).scrollTop(0);
110+
}
104111
});
105112
},
106113
getFieldId: function(container, name) {

0 commit comments

Comments
 (0)