Skip to content

Commit 3fc3b8d

Browse files
committed
php82 acceptance test files fix
1 parent c32c315 commit 3fc3b8d

17 files changed

+17
-1216
lines changed

src/Test/Functional/Acceptance/Acceptance82Cest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
/**
1717
* @inheritDoc
1818
*
19-
* @group php81
19+
* @group php82
2020
*/
2121
class Acceptance82Cest extends AcceptanceCest
2222
{

src/Test/Functional/Acceptance/AdminCredential82Cest.php

Lines changed: 1 addition & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -11,153 +11,10 @@
1111
* This test runs on the latest version of PHP
1212
* @group php82
1313
*/
14-
class AdminCredentialCest extends AbstractCest
14+
class AdminCredential82Cest extends AdminCredentialCest
1515
{
1616
/**
1717
* @var string
1818
*/
1919
protected $magentoCloudTemplate = '2.4.6';
20-
21-
/**
22-
* @param \CliTester $I
23-
*/
24-
public function _before(\CliTester $I): void
25-
{
26-
parent::_before($I);
27-
28-
$I->copyFileToWorkDir('files/debug_logging/.magento.env.yaml', '.magento.env.yaml');
29-
}
30-
31-
/**
32-
* @param \CliTester $I
33-
* @param \Codeception\Example $data
34-
* @throws \Robo\Exception\TaskException
35-
* @dataProvider installWithoutAdminEmailDataProvider
36-
*/
37-
public function testInstallWithoutAdminEmail(\CliTester $I, \Codeception\Example $data): void
38-
{
39-
$I->generateDockerCompose(
40-
sprintf(
41-
'--mode=production --env-vars="%s"',
42-
$this->convertEnvFromArrayToJson($data['variables'])
43-
)
44-
);
45-
$I->runDockerComposeCommand('run build cloud-build');
46-
$I->startEnvironment();
47-
$I->runDockerComposeCommand('run build cloud-build');
48-
$I->runDockerComposeCommand('run deploy cloud-deploy');
49-
$I->amOnPage('/');
50-
$I->see('Home page');
51-
$I->see('CMS homepage content goes here.');
52-
53-
$log = $I->grabFileContent('/var/log/cloud.log');
54-
$I->assertStringContainsString($data['installMessage'], $log);
55-
$I->assertStringNotContainsString('--admin-user', $log);
56-
$I->assertStringNotContainsString('--admin-firstname', $log);
57-
$I->assertStringNotContainsString('--admin-lastname', $log);
58-
$I->assertStringNotContainsString('--admin-email', $log);
59-
$I->assertStringNotContainsString('--admin-password', $log);
60-
61-
// Upgrade
62-
$I->runDockerComposeCommand('run deploy cloud-deploy');
63-
64-
$I->assertStringContainsString($data['upgradeMessage'], $I->grabFileContent('/var/log/cloud.log'));
65-
}
66-
67-
/**
68-
* @return array
69-
*/
70-
protected function installWithoutAdminEmailDataProvider(): array
71-
{
72-
return [
73-
[
74-
'variables' => ['MAGENTO_CLOUD_VARIABLES' => []],
75-
'installMessage' => '',
76-
'upgradeMessage' => '',
77-
],
78-
[
79-
'variables' => ['MAGENTO_CLOUD_VARIABLES' => ['ADMIN_USERNAME' => 'MyLogin']],
80-
'installMessage' => 'The following admin data was ignored and an admin was not created because'
81-
. ' admin email is not set: admin login',
82-
'upgradeMessage' => 'The following admin data is required to create an admin user during initial'
83-
. ' installation only and is ignored during upgrade process: admin login',
84-
],
85-
];
86-
}
87-
88-
/**
89-
* @param \CliTester $I
90-
* @param \Codeception\Example $data
91-
* @throws \Robo\Exception\TaskException
92-
* @dataProvider installWithDifferentVariablesDataProvider
93-
*/
94-
public function testInstallWithDifferentVariables(\CliTester $I, \Codeception\Example $data)
95-
{
96-
$I->generateDockerCompose(
97-
sprintf(
98-
'--mode=production --env-vars="%s"',
99-
$this->convertEnvFromArrayToJson($data['variables'])
100-
)
101-
);
102-
$I->runDockerComposeCommand('run build cloud-build');
103-
$I->startEnvironment();
104-
$I->runDockerComposeCommand('run deploy cloud-deploy');
105-
$I->amOnPage('/');
106-
$I->see('Home page');
107-
$I->see('CMS homepage content goes here.');
108-
109-
$credentialsEmail = $I->grabFileContent('/var/credentials_email.txt');
110-
$I->assertStringContainsString($data['expectedAdminEmail'], $credentialsEmail);
111-
$I->assertStringContainsString($data['expectedAdminUsername'], $credentialsEmail);
112-
$I->assertStringContainsString($data['expectedAdminUrl'], $credentialsEmail);
113-
114-
$log = $I->grabFileContent('/var/log/cloud.log');
115-
$I->assertStringContainsString('--admin-user', $log);
116-
$I->assertStringContainsString('--admin-firstname', $log);
117-
$I->assertStringContainsString('--admin-lastname', $log);
118-
$I->assertStringContainsString('--admin-email', $log);
119-
$I->assertStringContainsString('--admin-password', $log);
120-
$I->assertStringNotContainsString(
121-
'The following admin data was ignored and an admin was not created because admin email is not set',
122-
$log
123-
);
124-
125-
// Upgrade
126-
$I->runDockerComposeCommand('run deploy cloud-deploy');
127-
128-
$I->assertStringNotContainsString(
129-
'The following admin data is required to create an admin user during initial installation only'
130-
. ' and is ignored during upgrade process: admin login',
131-
$I->grabFileContent('/var/log/cloud.log')
132-
);
133-
}
134-
135-
/**
136-
* @return array
137-
*/
138-
protected function installWithDifferentVariablesDataProvider()
139-
{
140-
return [
141-
[
142-
'variables' => [
143-
'MAGENTO_CLOUD_VARIABLES' => ['ADMIN_EMAIL' => 'admin@example.com'],
144-
],
145-
'expectedAdminEmail' => 'admin@example.com',
146-
'expectedAdminUsername' => 'admin',
147-
'expectedAdminUrl' => 'admin',
148-
],
149-
[
150-
'variables' => [
151-
'MAGENTO_CLOUD_VARIABLES' => [
152-
'ADMIN_EMAIL' => 'admin2@example.com',
153-
'ADMIN_URL' => 'root',
154-
'ADMIN_USERNAME' => 'myusername',
155-
],
156-
],
157-
'expectedAdminEmail' => 'admin2@example.com',
158-
'expectedAdminUsername' => 'root',
159-
'expectedAdminUrl' => 'myusername',
160-
]
161-
];
162-
}
16320
}

src/Test/Functional/Acceptance/AdminCredentialCest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
/**
1111
* This test runs on the latest version of PHP
12-
* @group php82
12+
* @group php83
1313
*/
1414
class AdminCredentialCest extends AbstractCest
1515
{

src/Test/Functional/Acceptance/Cron82Cest.php

Lines changed: 1 addition & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -12,125 +12,8 @@
1212
*
1313
* @group php82
1414
*/
15-
class CronCest extends AbstractCest
15+
class Cron82Cest extends CronCest
1616
{
17-
/**
18-
* @inheritdoc
19-
*/
20-
public function _before(\CliTester $I): void
21-
{
22-
//Do nothing...
23-
}
24-
25-
/**
26-
* @param \CliTester $I
27-
* @param \Codeception\Example $data
28-
* @throws \Codeception\Exception\ModuleException
29-
* @throws \Robo\Exception\TaskException
30-
* @dataProvider cronDataProvider
31-
*/
32-
public function testCron(\CliTester $I, \Codeception\Example $data): void
33-
{
34-
$this->prepareWorkplace($I, $data['version']);
35-
$I->generateDockerCompose(sprintf(
36-
'--mode=production --expose-db-port=%s --env-vars="%s"',
37-
$I->getExposedPort(),
38-
$this->convertEnvFromArrayToJson($data['variables'])
39-
));
40-
$I->copyDirToWorkDir('modules/Magento/CronTest', 'app/code/Magento/CronTest');
41-
$I->runDockerComposeCommand('run build cloud-build');
42-
$I->startEnvironment();
43-
$I->runDockerComposeCommand('run deploy cloud-deploy');
44-
$I->runDockerComposeCommand('run deploy cloud-post-deploy');
45-
$I->deleteFromDatabase('cron_schedule');
46-
$I->runDockerComposeCommand('run deploy magento-command cron:run');
47-
$I->runDockerComposeCommand('run deploy magento-command cron:run');
48-
49-
$this->checkCronJobForLocale($I, 'cron_test_job_timeformat', 5);
50-
$this->checkCronJobForLocale($I, 'cron_test_job_timeformat_six', 6);
51-
52-
$successfulJobs1 = $I->grabNumRecords('cron_schedule', ['job_code' => 'cron_test_job', 'status' => 'success']);
53-
$I->assertGreaterThan(0, $successfulJobs1, 'No successful cron jobs');
54-
55-
$I->haveInDatabase('cron_schedule', [
56-
'job_code' => 'cron_test_job',
57-
'status' => 'running',
58-
'created_at' => date('Y-m-d H:i:s', strtotime('-3 minutes')),
59-
'scheduled_at' => date('Y-m-d H:i:s', strtotime('-2 minutes')),
60-
'executed_at' => date('Y-m-d H:i:s', strtotime('-2 minutes')),
61-
]);
62-
63-
$I->updateInDatabase('cron_schedule', ['scheduled_at' => date('Y-m-d H:i:s')], ['status' => 'pending']);
64-
65-
$I->runDockerComposeCommand('run deploy magento-command cron:run');
66-
$I->runDockerComposeCommand('run deploy magento-command cron:run');
67-
68-
$successfulJobs2 = $I->grabNumRecords('cron_schedule', ['job_code' => 'cron_test_job', 'status' => 'success']);
69-
70-
if (version_compare($data['version'], '2.2.5', '<')) {
71-
$I->assertEquals($successfulJobs1, $successfulJobs2, 'Number of successful jobs changed');
72-
} else {
73-
$I->assertGreaterThan($successfulJobs1, $successfulJobs2, 'Number of successful jobs did not change');
74-
}
75-
76-
$I->updateInDatabase(
77-
'cron_schedule',
78-
[
79-
'created_at' => date('Y-m-d H:i:s', strtotime('-3 days')),
80-
'scheduled_at' => date('Y-m-d H:i:s', strtotime('-2 days')),
81-
'executed_at' => date('Y-m-d H:i:s', strtotime('-2 days')),
82-
],
83-
['job_code' => 'cron_test_job', 'status' => 'running']
84-
);
85-
86-
$I->updateInDatabase(
87-
'cron_schedule',
88-
['scheduled_at' => date('Y-m-d H:i:s')],
89-
['job_code' => 'cron_test_job', 'status' => 'pending']
90-
);
91-
92-
$I->runDockerComposeCommand('run deploy magento-command cron:run');
93-
94-
$successfulJobs3 = $I->grabNumRecords('cron_schedule', ['job_code' => 'cron_test_job', 'status' => 'success']);
95-
$I->assertGreaterThan(
96-
version_compare($data['version'], '2.2.5', '<') ? $successfulJobs1 : $successfulJobs2,
97-
$successfulJobs3,
98-
'Number of successful jobs did not change'
99-
);
100-
}
101-
102-
/**
103-
* @param \CliTester $I
104-
* @param string $jobCode
105-
* @param int $timeInterval
106-
* @throws \Exception
107-
*/
108-
private function checkCronJobForLocale(\CliTester $I, string $jobCode, int $timeInterval): void
109-
{
110-
$schedule = $I->grabColumnFromDatabase(
111-
'cron_schedule',
112-
'scheduled_at',
113-
['job_code' => $jobCode]
114-
);
115-
116-
$previousTimestamp = null;
117-
118-
foreach ($schedule as $timestamp) {
119-
$timestamp = new \DateTime($timestamp);
120-
121-
if (isset($previousTimestamp)) {
122-
$diff = $timestamp->diff($previousTimestamp);
123-
$I->assertContains(
124-
$diff->i,
125-
[$timeInterval, $timeInterval*3],
126-
'Schedule is not ' . $timeInterval . '/' . $timeInterval*3 . ' minutes apart'
127-
);
128-
}
129-
130-
$previousTimestamp = $timestamp;
131-
}
132-
}
133-
13417
/**
13518
* @return array
13619
*/

0 commit comments

Comments
 (0)