Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ExtensionMultipleUpdateTest.php
Go to the documentation of this file.
1 <?php
7 
8 use Magento\Mtf\Fixture\FixtureFactory;
15 use Magento\Setup\Test\Fixture\BackupOptions;
16 use Magento\Setup\Test\Fixture\Extension;
17 use Magento\Setup\Test\Fixture\RepoCredentials;
18 
24 {
41  public function test(
42  FixtureFactory $fixtureFactory,
43  RepoCredentials $repoCredentials,
44  BackupOptions $backupOptions,
45  AssertFindExtensionOnGrid $assertFindExtensionOnGrid,
46  AssertSuccessfulReadinessCheck $assertReadiness,
47  AssertExtensionAndVersionCheck $assertExtensionAndVersionCheck,
48  AssertSuccessMessage $assertSuccessMessage,
49  AssertMultipleSuccessMessage $assertMultipleSuccessMessage,
50  AssertSelectSeveralExtensions $assertSelectSeveralExtensions,
51  $needAuthentication,
52  array $extensions,
53  array $removeExtensions
54  ) {
55  foreach ($extensions as $key => $options) {
56  $extensions[$key] = $fixtureFactory->create(Extension::class, $options);
57  }
58 
59  foreach ($removeExtensions as $key => $options) {
60  $removeExtensions[$key] = $fixtureFactory->create(Extension::class, $options);
61  }
62 
63  // Authenticate in admin area
64  $this->adminDashboard->open();
65 
66  // Open Web Setup Wizard
67  $this->setupWizard->open();
68 
69  // Authenticate on repo.magento.com
70  $this->repoAuthentication($needAuthentication, $repoCredentials);
71 
72  foreach ($extensions as $extension) {
73  $this->installExtension(
74  $extension,
75  $backupOptions,
76  $assertFindExtensionOnGrid,
77  $assertReadiness,
78  $assertExtensionAndVersionCheck,
79  $assertSuccessMessage
80  );
81  }
82 
83  // Open Extension Grid with extensions to update
84  $this->setupWizard->getSetupHome()->clickExtensionManager();
85  $this->setupWizard->getExtensionsGrid()->waitLoader();
86  $this->setupWizard->getExtensionsGrid()->clickUpdateButton();
87 
88  // Select several extensions on grid and check it
89  $assertSelectSeveralExtensions->processAssert($this->setupWizard->getExtensionsUpdateGrid(), $extensions);
90 
91  // Click general "Update" button
92  $this->setupWizard->getExtensionsUpdateGrid()->clickUpdateAllButton();
93 
94  $this->readinessCheck($assertReadiness);
95 
97  foreach ($removeExtensions as $removeExtension) {
98  $this->setupWizard->getReadiness()->clickRemoveExtension($removeExtension);
99  $this->setupWizard->getReadiness()->clickRemoveExtensionOnModal();
100  }
101 
102  $this->setupWizard->getReadiness()->clickTryAgain();
103  $assertReadiness->processAssert($this->setupWizard);
104  $this->setupWizard->getReadiness()->clickNext();
105  $this->backup($backupOptions);
106  $this->setupWizard->getCreateBackup()->clickNext();
107 
108  // Start updating
109  $this->setupWizard->getUpdaterExtension()->clickStartButton();
110 
111  $updatedExtensions = array_diff_key($extensions, $removeExtensions);
112 
113  // Check success message
114  $assertMultipleSuccessMessage->processAssert(
115  $this->setupWizard,
116  $updatedExtensions,
117  AssertSuccessMessage::TYPE_UPDATE
118  );
119 
120  // Uninstall installed extensions
121  foreach ($extensions as $extension) {
122  $this->uninstallExtension(
123  $extension,
124  $backupOptions,
125  $assertReadiness,
126  $assertFindExtensionOnGrid,
127  $assertExtensionAndVersionCheck,
128  $assertSuccessMessage
129  );
130  }
131  }
132 }
uninstallExtension(Extension $extension, BackupOptions $backupOptions, AssertSuccessfulReadinessCheck $assertReadiness, AssertFindExtensionOnGrid $assertFindExtensionOnGrid, AssertExtensionAndVersionCheck $assertExtensionAndVersionCheck, AssertSuccessMessage $assertSuccessMessage)
repoAuthentication($needAuthentication, RepoCredentials $repoCredentials)
readinessCheck(AssertSuccessfulReadinessCheck $assertReadiness)
installExtension(Extension $extension, BackupOptions $backupOptions, AssertFindExtensionOnGrid $assertFindExtensionOnGrid, AssertSuccessfulReadinessCheck $assertReadiness, AssertExtensionAndVersionCheck $assertExtensionAndVersionCheck, AssertSuccessMessage $assertSuccessMessage)