Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
EnableDisableModuleTest.php
Go to the documentation of this file.
1 <?php
7 
8 use Magento\Mtf\TestCase\Injectable;
9 use Magento\Backend\Test\Page\Adminhtml\Dashboard;
13 use Magento\Setup\Test\Fixture\BackupOptions;
14 use Magento\Setup\Test\Fixture\Module;
15 use Magento\Setup\Test\Page\Adminhtml\SetupWizard;
16 
43 class EnableDisableModuleTest extends Injectable
44 {
50  private $adminDashboard;
51 
57  private $setupWizard;
58 
65  public function __inject(Dashboard $dashboard, SetupWizard $setupWizard)
66  {
67  $this->adminDashboard = $dashboard;
68  $this->setupWizard = $setupWizard;
69  }
70 
80  public function test(
81  Module $module,
82  BackupOptions $backupOptions,
83  AssertModuleInGrid $assertModuleInGrid,
84  AssertSuccessfulReadinessCheck $assertReadiness,
85  AssertSuccessMessage $assertSuccessMessage
86  ) {
87  // Open Backend
88  $this->adminDashboard->open();
89 
90  // Go to System > Web Setup Wizard
91  $this->setupWizard->open();
92 
93  // Click "Module Manager" button
94  $this->setupWizard->getSetupHome()->clickModuleManager();
95 
96  // Find appropriate Module in the grid
97  $assertModuleInGrid->processAssert($this->setupWizard, $module->getModuleName());
98 
99  if (!$this->setupWizard->getModuleGrid()->isModuleEnabled($module->getModuleName())) {
100  $this->fail('Module is already disabled.');
101  }
102 
103  // Find Module in the Grid and click Select > Disable module
104  $this->setupWizard->getModuleGrid()->disableModule($module->getModuleName());
105 
106  // Perform Readiness Checks
107  $this->setupWizard->getReadiness()->clickReadinessCheck();
108  $assertReadiness->processAssert($this->setupWizard);
109  $this->setupWizard->getReadiness()->clickNext();
110 
111  // Perform DB Backup
112  $this->setupWizard->getCreateBackup()->fill($backupOptions);
113  $this->setupWizard->getCreateBackup()->clickNext();
114 
115  // Click "Disable" button
116  $this->setupWizard->getModuleStatus()->clickDisable();
117 
118  // Check for Success message
119  $assertSuccessMessage->processAssert($this->setupWizard);
120 
121  // Return to "Web Setup Wizard"
122  $this->setupWizard->getSuccessMessage()->clickBackToSetup();
123 
124  // Find appropriate Module in the Grid
125  $assertModuleInGrid->processAssert($this->setupWizard, $module->getModuleName());
126 
127  // Find Module in the Grid and click Select > Enable module
128  $this->setupWizard->getModuleGrid()->enableModule($module->getModuleName());
129 
130  // Perform Readiness Checks
131  $this->setupWizard->getReadiness()->clickReadinessCheck();
132  $assertReadiness->processAssert($this->setupWizard);
133  $this->setupWizard->getReadiness()->clickNext();
134 
135  // Perform DB Backup
136  $this->setupWizard->getCreateBackup()->fill($backupOptions);
137  $this->setupWizard->getCreateBackup()->clickNext();
138 
139  // Click "Enable" button
140  $this->setupWizard->getModuleStatus()->clickEnable();
141 
142  // Check for Success message
143  $assertSuccessMessage->processAssert($this->setupWizard);
144 
145  // Return to "Web Setup Wizard"
146  $this->setupWizard->getSuccessMessage()->clickBackToSetup();
147  }
148 }
test(Module $module, BackupOptions $backupOptions, AssertModuleInGrid $assertModuleInGrid, AssertSuccessfulReadinessCheck $assertReadiness, AssertSuccessMessage $assertSuccessMessage)
processAssert(SetupWizard $setupWizard, $package)
processAssert(SetupWizard $setupWizard, $moduleName)
__inject(Dashboard $dashboard, SetupWizard $setupWizard)