Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ReSavingProductAfterInitialSaveTest.php
Go to the documentation of this file.
1 <?php
8 
10 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit;
12 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex;
13 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductNew;
14 use Magento\Mtf\Fixture\FixtureFactory;
15 use Magento\Mtf\TestCase\Injectable;
16 
27 class ReSavingProductAfterInitialSaveTest extends Injectable
28 {
34  private $catalogProductEdit;
40  private $productGrid;
41 
47  private $newProductPage;
48 
54  private $assertDateErrorMessage;
55 
61  private $fixtureFactory;
62 
67  public function __inject(
68  CatalogProductEdit $catalogProductEdit,
69  CatalogProductIndex $productGrid,
70  CatalogProductNew $newProductPage,
71  FixtureFactory $fixtureFactory,
72  AssertDateErrorMessage $assertDateErrorMessage
73  ) {
74  $this->productGrid = $productGrid;
75  $this->newProductPage = $newProductPage;
76  $this->catalogProductEdit = $catalogProductEdit;
77  $this->fixtureFactory = $fixtureFactory;
78  $this->assertDateErrorMessage = $assertDateErrorMessage;
79  }
80 
87  public function test(
88  CatalogProductSimple $originalProduct,
89  CatalogProductSimple $productWithValidFromDate,
90  CatalogProductSimple $productWithValidToDate
91  ) {
92  $this->productGrid->open();
93  $this->productGrid->getGridPageActionBlock()->addProduct('simple');
94 
95  if (!($this->newProductPage->getProductForm()->isProductNewFromDateVisible('product-details'))) {
96  $this->markTestSkipped('This is a CE only test.');
97  }
98  $this->newProductPage->getProductForm()->fill($originalProduct);
99  $this->catalogProductEdit->getProductForm()->fill($productWithValidFromDate);
100  $this->catalogProductEdit->getFormPageActions()->save();
101  $this->assertDateErrorMessage->processAssert($this->catalogProductEdit);
102  $this->catalogProductEdit->getProductForm()->fill($productWithValidToDate);
103  $this->catalogProductEdit->getFormPageActions()->save();
104  }
105 }
test(CatalogProductSimple $originalProduct, CatalogProductSimple $productWithValidFromDate, CatalogProductSimple $productWithValidToDate)
__inject(CatalogProductEdit $catalogProductEdit, CatalogProductIndex $productGrid, CatalogProductNew $newProductPage, FixtureFactory $fixtureFactory, AssertDateErrorMessage $assertDateErrorMessage)