Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertCategoryForm.php
Go to the documentation of this file.
1 <?php
8 
10 use Magento\Catalog\Test\Page\Adminhtml\CatalogCategoryEdit;
11 use Magento\Catalog\Test\Page\Adminhtml\CatalogCategoryIndex;
13 
18 {
19  /* tags */
20  const SEVERITY = 'low';
21  /* end tags */
22 
28  protected $skippedFixtureFields = [
29  'parent_id',
30  'id',
31  'store_id'
32  ];
33 
42  public function processAssert(
43  CatalogCategoryIndex $catalogCategoryIndex,
44  CatalogCategoryEdit $catalogCategoryEdit,
45  Category $category
46  ) {
47  $catalogCategoryIndex->open();
48  $catalogCategoryIndex->getTreeCategories()->selectCategory($category, true);
49  if ($category->hasData('store_id')) {
50  $storeName = $category->getStoreId()['source']->getName();
51  $catalogCategoryEdit->getFormPageActions()->selectStoreView($storeName);
52  }
53  $fixtureData = $this->prepareFixtureData($category->getData());
54  $formData = $catalogCategoryEdit->getEditForm()->getData($category);
55  $error = $this->verifyData($this->sortData($fixtureData), $this->sortData($formData));
56  \PHPUnit\Framework\Assert::assertEmpty($error, $error);
57  }
58 
65  protected function prepareFixtureData(array $data)
66  {
67  if (!isset($data['parent_id'])) {
68  $this->skippedFixtureFields[] = 'url_key';
69  }
70 
71  if (isset($data['url_key'])) {
72  $data['url_key'] = strtolower($data['url_key']);
73  }
74 
75  return array_diff_key($data, array_flip($this->skippedFixtureFields));
76  }
77 
84  protected function sortData(array $data)
85  {
86  if (isset($data['available_sort_by'])) {
87  $data['available_sort_by'] = array_values($data['available_sort_by']);
88  sort($data['available_sort_by']);
89  }
90 
91  if (isset($data['category_products'])) {
92  sort($data['category_products']);
93  }
94 
95  return $data;
96  }
97 
103  public function toString()
104  {
105  return 'Category data on edit page equals to passed from fixture.';
106  }
107 }
verifyData(array $fixtureData, array $formData, $isStrict=false, $isPrepareError=true)
$storeName
Definition: logo.phtml:13
processAssert(CatalogCategoryIndex $catalogCategoryIndex, CatalogCategoryEdit $catalogCategoryEdit, Category $category)