Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertProductAttributeIsRequired.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Catalog\Test\Fixture\CatalogProductAttribute;
10 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit;
11 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex;
12 use Magento\Mtf\Constraint\AbstractConstraint;
13 use Magento\Mtf\Fixture\InjectableFixture;
14 
18 class AssertProductAttributeIsRequired extends AbstractConstraint
19 {
23  const REQUIRE_MESSAGE = 'This is a required field.';
24 
35  public function processAssert(
36  CatalogProductIndex $catalogProductIndex,
37  CatalogProductEdit $catalogProductEdit,
38  CatalogProductAttribute $attribute,
39  InjectableFixture $product,
40  $sectionName
41  ) {
42  $catalogProductIndex->open()->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]);
43  $productForm = $catalogProductEdit->getProductForm();
44  if (!$productForm->checkAttributeLabel($attribute)) {
45  $productForm->openSection($sectionName);
46  }
47  $productForm->getAttributeElement($attribute)->setValue('');
48  $catalogProductEdit->getFormPageActions()->save();
49  $validationErrors = $productForm->getSection($sectionName)->getValidationErrors();
50  $actualMessage = isset($validationErrors[$attribute->getFrontendLabel()])
51  ? $validationErrors[$attribute->getFrontendLabel()]
52  : '';
53 
54  \PHPUnit\Framework\Assert::assertEquals(
55  self::REQUIRE_MESSAGE,
56  $actualMessage,
57  'JS error notice on product edit page is not equal to expected.'
58  );
59  }
60 
66  public function toString()
67  {
68  return '"This is a required field" notice is visible on product edit page after trying to save product with '
69  . 'blank required field.';
70  }
71 }
processAssert(CatalogProductIndex $catalogProductIndex, CatalogProductEdit $catalogProductEdit, CatalogProductAttribute $attribute, InjectableFixture $product, $sectionName)