Skip to content

Commit 0913ee7

Browse files
MAGETWO-55271: Cover with Functional Tests
1 parent b5e2cf6 commit 0913ee7

File tree

4 files changed

+88
-5
lines changed

4 files changed

+88
-5
lines changed

dev/tests/functional/tests/app/Magento/Setup/Test/Block/Readiness.php

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
use Magento\Mtf\Block\Block;
1010
use Magento\Mtf\Client\Locator;
11+
use Magento\Setup\Test\Fixture\Extension;
1112

1213
/**
1314
* Readiness block.
@@ -28,6 +29,20 @@ class Readiness extends Block
2829
*/
2930
protected $next = "[ng-click*='next']";
3031

32+
/**
33+
* 'Try Again' button.
34+
*
35+
* @var string
36+
*/
37+
protected $tryAgain = "[ng-click*='forceReload']";
38+
39+
/**
40+
* Trash Bin icon.
41+
*
42+
* @var string
43+
*/
44+
protected $removeExtension = '//li[contains(text(), \'%s\')]//button';
45+
3146
/**
3247
* 'Completed!' message.
3348
* [ng-switch-when="true"]
@@ -98,6 +113,30 @@ public function clickNext()
98113
$this->_rootElement->find($this->next, Locator::SELECTOR_CSS)->click();
99114
}
100115

116+
/**
117+
* Click on 'Try Again' button.
118+
*
119+
* @return void
120+
*/
121+
public function clickTryAgain()
122+
{
123+
$this->_rootElement->find($this->tryAgain, Locator::SELECTOR_CSS)->click();
124+
$this->waitForElementVisible($this->completedMessage, Locator::SELECTOR_CSS);
125+
}
126+
127+
/**
128+
* Click Trash Bin icon.
129+
*
130+
* @param Extension $extension
131+
* @return void
132+
*/
133+
public function clickRemoveExtension(Extension $extension)
134+
{
135+
$removeExtension = sprintf($this->removeExtension, $extension->getExtensionName());
136+
137+
$this->_rootElement->find($removeExtension, Locator::SELECTOR_XPATH)->click();
138+
}
139+
101140
/**
102141
* Get Updater application check result.
103142
*

dev/tests/functional/tests/app/Magento/Setup/Test/TestCase/AbstractExtensionTest.php

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,34 @@ protected function readinessCheckAndBackup(
7979
AssertSuccessfulReadinessCheck $assertReadiness,
8080
BackupOptions $backupOptions
8181
) {
82+
$this->readinessCheck($assertReadiness);
83+
$this->setupWizard->getReadiness()->clickNext();
84+
$this->backup($backupOptions);
85+
$this->setupWizard->getCreateBackup()->clickNext();
86+
}
87+
88+
/**
89+
* Perform Readiness check.
90+
*
91+
* @param AssertSuccessfulReadinessCheck $assertReadiness
92+
*/
93+
protected function readinessCheck(AssertSuccessfulReadinessCheck $assertReadiness)
94+
{
8295
// Readiness Check
8396
$this->setupWizard->getReadiness()->clickReadinessCheck();
97+
8498
$assertReadiness->processAssert($this->setupWizard);
85-
$this->setupWizard->getReadiness()->clickNext();
99+
}
86100

101+
/**
102+
* Perform Backup.
103+
*
104+
* @param BackupOptions $backupOptions
105+
*/
106+
protected function backup(BackupOptions $backupOptions)
107+
{
87108
// Create Backup page
88109
$this->setupWizard->getCreateBackup()->fill($backupOptions);
89-
$this->setupWizard->getCreateBackup()->clickNext();
90110
}
91111

92112
/**

dev/tests/functional/tests/app/Magento/Setup/Test/TestCase/ExtensionMultipleUpdateTest.php

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class ExtensionMultipleUpdateTest extends AbstractExtensionTest
3434
* @param AssertSelectSeveralExtensions $assertSelectSeveralExtensions
3535
* @param $needAuthentication
3636
* @param array $extensions
37+
* @param array $removeExtensions
3738
*/
3839
public function test(
3940
FixtureFactory $fixtureFactory,
@@ -46,12 +47,17 @@ public function test(
4647
AssertMultipleUpdateSuccessMessage $assertMultipleUpdateSuccessMessage,
4748
AssertSelectSeveralExtensions $assertSelectSeveralExtensions,
4849
$needAuthentication,
49-
array $extensions
50+
array $extensions,
51+
array $removeExtensions
5052
) {
5153
foreach ($extensions as $key => $options) {
5254
$extensions[$key] = $fixtureFactory->create(Extension::class, $options);
5355
}
5456

57+
foreach ($removeExtensions as $key => $options) {
58+
$removeExtensions[$key] = $fixtureFactory->create(Extension::class, $options);
59+
}
60+
5561
// Authenticate in admin area
5662
$this->adminDashboard->open();
5763

@@ -83,15 +89,28 @@ public function test(
8389
// Click general "Update" button
8490
$this->setupWizard->getExtensionsUpdateGrid()->clickUpdateAllButton();
8591

86-
$this->readinessCheckAndBackup($assertReadiness, $backupOptions);
92+
$this->readinessCheck($assertReadiness);
93+
94+
/** @var Extension $removeExtension */
95+
foreach ($removeExtensions as $removeExtension) {
96+
$this->setupWizard->getReadiness()->clickRemoveExtension($removeExtension);
97+
}
98+
99+
$this->setupWizard->getReadiness()->clickTryAgain();
100+
$assertReadiness->processAssert($this->setupWizard);
101+
$this->setupWizard->getReadiness()->clickNext();
102+
$this->backup($backupOptions);
103+
$this->setupWizard->getCreateBackup()->clickNext();
87104

88105
// Start installing
89106
$this->setupWizard->getUpdaterExtension()->clickStartButton();
90107

108+
$updatedExtensions = array_diff_key($extensions, $removeExtensions);
109+
91110
// Check success message
92111
$assertMultipleUpdateSuccessMessage->processAssert(
93112
$this->setupWizard,
94-
$extensions,
113+
$updatedExtensions,
95114
AssertSuccessMessage::TYPE_UPDATE
96115
);
97116

dev/tests/functional/tests/app/Magento/Setup/Test/TestCase/ExtensionMultipleUpdateTest.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@
1717
<item name="dataset" xsi:type="string">secondExtension</item>
1818
</item>
1919
</data>
20+
<data name="removeExtensions" xsi:type="array">
21+
<item name="0" xsi:type="array">
22+
<item name="dataset" xsi:type="string">firstExtension</item>
23+
</item>
24+
</data>
2025
</variation>
2126
</testCase>
2227
</config>

0 commit comments

Comments
 (0)