Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ExtensionMultipleTest.php
Go to the documentation of this file.
1 <?php
8 
10 use Magento\Mtf\Fixture\FixtureFactory;
11 use Magento\Setup\Test\Fixture\Extension;
12 use Magento\Setup\Test\Fixture\BackupOptions;
13 use Magento\Setup\Test\Fixture\RepoCredentials;
20 
25 {
41  public function test(
42  FixtureFactory $fixtureFactory,
43  AssertExtensionAndVersionCheck $assertExtensionAndVersionCheck,
44  AssertMultipleExtensionAndVersionCheck $assertMultipleExtensionAndVersionCheck,
45  AssertSuccessMessage $assertSuccessMessage,
46  AssertMultipleSuccessMessage $assertMultipleSuccessMessage,
47  AssertSuccessfulReadinessCheck $assertReadiness,
48  AssertSelectSeveralExtensions $assertSelectSeveralExtensions,
49  AssertFindExtensionOnGrid $assertFindExtensionOnGrid,
50  $needAuthentication,
51  RepoCredentials $repoCredentials,
52  BackupOptions $backupOptions,
53  array $extensions
54  ) {
55  foreach ($extensions as $key => $options) {
56  $extensions[$key] = $fixtureFactory->create(Extension::class, $options);
57  }
58 
59  // Authenticate in admin area
60  $this->adminDashboard->open();
61 
62  // Open Web Setup Wizard
63  $this->setupWizard->open();
64 
65  // Authenticate on repo.magento.com
66  $this->repoAuthentication($needAuthentication, $repoCredentials);
67 
68  // Open Extension Grid with extensions to install
69  $this->setupWizard->getSetupHome()->clickExtensionManager();
70  $this->setupWizard->getExtensionsGrid()->waitLoader();
71  $this->setupWizard->getExtensionsGrid()->clickInstallButton();
72 
73  // Select several extensions on grid and check it
74  $assertSelectSeveralExtensions->processAssert($this->setupWizard->getExtensionsInstallGrid(), $extensions);
75 
76  // Click general "Install" button
77  $this->setupWizard->getExtensionsInstallGrid()->clickInstallAll();
78 
79  $this->readinessCheckAndBackup($assertReadiness, $backupOptions);
80 
81  // Check selected extensions
82  $assertMultipleExtensionAndVersionCheck->processAssert(
83  $this->setupWizard,
84  $extensions,
86  );
87 
88  // Start installing
89  $this->setupWizard->getUpdaterExtension()->clickStartButton();
90 
91  // Check success message
92  $assertMultipleSuccessMessage->processAssert(
93  $this->setupWizard,
94  $extensions,
95  AssertSuccessMessage::TYPE_INSTALL
96  );
97 
98  // Uninstall installed extensions
99  foreach ($extensions as $extension) {
100  $this->uninstallExtension(
101  $extension,
102  $backupOptions,
103  $assertReadiness,
104  $assertFindExtensionOnGrid,
105  $assertExtensionAndVersionCheck,
106  $assertSuccessMessage
107  );
108  }
109  }
110 }
readinessCheckAndBackup(AssertSuccessfulReadinessCheck $assertReadiness, BackupOptions $backupOptions)
uninstallExtension(Extension $extension, BackupOptions $backupOptions, AssertSuccessfulReadinessCheck $assertReadiness, AssertFindExtensionOnGrid $assertFindExtensionOnGrid, AssertExtensionAndVersionCheck $assertExtensionAndVersionCheck, AssertSuccessMessage $assertSuccessMessage)
repoAuthentication($needAuthentication, RepoCredentials $repoCredentials)
test(FixtureFactory $fixtureFactory, AssertExtensionAndVersionCheck $assertExtensionAndVersionCheck, AssertMultipleExtensionAndVersionCheck $assertMultipleExtensionAndVersionCheck, AssertSuccessMessage $assertSuccessMessage, AssertMultipleSuccessMessage $assertMultipleSuccessMessage, AssertSuccessfulReadinessCheck $assertReadiness, AssertSelectSeveralExtensions $assertSelectSeveralExtensions, AssertFindExtensionOnGrid $assertFindExtensionOnGrid, $needAuthentication, RepoCredentials $repoCredentials, BackupOptions $backupOptions, array $extensions)