Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
PageActionsTest.php
Go to the documentation of this file.
1 <?php
2 /***
3  * Copyright © Magento, Inc. All rights reserved.
4  * See COPYING.txt for license details.
5  */
7 
10 
11 class PageActionsTest extends \PHPUnit\Framework\TestCase
12 {
13  public function testPrepareItemsByPageId()
14  {
15  $pageId = 1;
16  // Create Mocks and SUT
17  $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
19  $urlBuilderMock = $this->getMockBuilder(\Magento\Framework\UrlInterface::class)
20  ->disableOriginalConstructor()
21  ->getMock();
22  $contextMock = $this->getMockBuilder(\Magento\Framework\View\Element\UiComponent\ContextInterface::class)
23  ->getMockForAbstractClass();
24  $processor = $this->getMockBuilder(\Magento\Framework\View\Element\UiComponent\Processor::class)
25  ->disableOriginalConstructor()
26  ->getMock();
27  $contextMock->expects($this->never())->method('getProcessor')->willReturn($processor);
28 
30  $model = $objectManager->getObject(
31  \Magento\Cms\Ui\Component\Listing\Column\PageActions::class,
32  [
33  'urlBuilder' => $urlBuilderMock,
34  'context' => $contextMock,
35  ]
36  );
37 
38  $escaper = $this->getMockBuilder(Escaper::class)
39  ->disableOriginalConstructor()
40  ->setMethods(['escapeHtml'])
41  ->getMock();
42  $objectManager->setBackwardCompatibleProperty($model, 'escaper', $escaper);
43 
44  // Define test input and expectations
45  $title = 'page title';
46  $items = [
47  'data' => [
48  'items' => [
49  [
50  'page_id' => $pageId,
51  'title' => $title
52  ]
53  ]
54  ]
55  ];
56  $name = 'item_name';
57  $expectedItems = [
58  [
59  'page_id' => $pageId,
60  'title' => $title,
61  $name => [
62  'edit' => [
63  'href' => 'test/url/edit',
64  'label' => __('Edit'),
65  ],
66  'delete' => [
67  'href' => 'test/url/delete',
68  'label' => __('Delete'),
69  'confirm' => [
70  'title' => __('Delete %1', $title),
71  'message' => __('Are you sure you want to delete a %1 record?', $title)
72  ],
73  'post' => true
74  ]
75  ],
76  ]
77  ];
78 
79  $escaper->expects(static::once())
80  ->method('escapeHtml')
81  ->with($title)
82  ->willReturn($title);
83 
84  // Configure mocks and object data
85  $urlBuilderMock->expects($this->any())
86  ->method('getUrl')
87  ->willReturnMap(
88  [
89  [
91  [
92  'page_id' => $pageId
93  ],
94  'test/url/edit',
95  ],
96  [
98  [
99  'page_id' => $pageId
100  ],
101  'test/url/delete',
102  ],
103  ]
104  );
105 
106  $model->setName($name);
107  $items = $model->prepareDataSource($items);
108  // Run test
109  $this->assertEquals($expectedItems, $items['data']['items']);
110  }
111 }
$title
Definition: default.phtml:14
$objectManager
Definition: bootstrap.php:17
$processor
Definition: 404.php:10
__()
Definition: __.php:13
$items
if(!isset($_GET['name'])) $name
Definition: log.php:14