Skip to content

Commit 9933b33

Browse files
committed
#32321: Update unit test to cover not existing or non-array argv in config
1 parent 6a27516 commit 9933b33

File tree

2 files changed

+43
-20
lines changed

2 files changed

+43
-20
lines changed

setup/src/Magento/Setup/Mvc/Bootstrap/InitParamListener.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ private function extractInitParameters(Application $application)
137137
}
138138
}
139139

140-
if (!isset($result['argv'])) {
140+
if (!isset($result['argv']) || !is_array($result['argv'])) {
141141
return $result;
142142
}
143143

setup/src/Magento/Setup/Test/Unit/Mvc/Bootstrap/InitParamListenerTest.php

Lines changed: 42 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,12 @@ public function testCreateDirectoryListException()
106106
/**
107107
* @param array $zfAppConfig Data that comes from Laminas Framework Application config
108108
* @param array $env Config that comes from SetEnv
109-
* @param string $cliParam Parameter string
109+
* @param array|string|null $argv Argv
110110
* @param array $expectedArray Expected result array
111111
*
112112
* @dataProvider createServiceDataProvider
113113
*/
114-
public function testCreateService($zfAppConfig, $env, $cliParam, $expectedArray)
114+
public function testCreateService($zfAppConfig, $env, $argv, $expectedArray)
115115
{
116116
foreach ($env as $envKey => $envValue) {
117117
$_SERVER[$envKey] = $envValue;
@@ -125,12 +125,10 @@ public function testCreateService($zfAppConfig, $env, $cliParam, $expectedArray)
125125
->disableOriginalConstructor()
126126
->getMock();
127127

128-
$argv = ['bin/magento', 'setup:install'];
129-
if ($cliParam) {
130-
$argv[] = '--magento-init-params=' . $cliParam;
128+
if ($argv !== null) {
129+
$zfAppConfig['argv'] = $argv;
130+
$expectedArray['argv'] = $argv;
131131
}
132-
$zfAppConfig['argv'] = $argv;
133-
$expectedArray['argv'] = $argv;
134132

135133
$mvcApplication->expects($this->any())->method('getConfig')->willReturn(
136134
$zfAppConfig ? [InitParamListener::BOOTSTRAP_PARAM => $zfAppConfig] : []
@@ -148,36 +146,61 @@ public function testCreateService($zfAppConfig, $env, $cliParam, $expectedArray)
148146
public function createServiceDataProvider()
149147
{
150148
return [
151-
'none' => [[], [], '', []],
152-
'mage_mode App' => [['MAGE_MODE' => 'developer'], [], '', ['MAGE_MODE' => 'developer']],
153-
'mage_mode Env' => [[], ['MAGE_MODE' => 'developer'], '', ['MAGE_MODE' => 'developer']],
154-
'mage_mode CLI' => [[], [], 'MAGE_MODE=developer', ['MAGE_MODE' => 'developer']],
149+
'none' => [
150+
[], //zfAppConfig
151+
[], //env
152+
null, //argv
153+
[] //expectedArray
154+
],
155+
'mage_mode App' => [
156+
['MAGE_MODE' => 'developer'],
157+
[],
158+
'', //test non array value
159+
['MAGE_MODE' => 'developer']
160+
],
161+
'mage_mode Env' => [
162+
[],
163+
['MAGE_MODE' => 'developer'],
164+
null,
165+
['MAGE_MODE' => 'developer']
166+
],
167+
'mage_mode CLI' => [
168+
[],
169+
[],
170+
['bin/magento', 'setup:install', '--magento-init-params=MAGE_MODE=developer'],
171+
['MAGE_MODE' => 'developer']
172+
],
155173
'one MAGE_DIRS CLI' => [
156174
[],
157175
[],
158-
'MAGE_MODE=developer&MAGE_DIRS[base][path]=/var/www/magento2',
176+
['bin/magento', 'setup:install', '--magento-init-params=MAGE_MODE=developer&MAGE_DIRS[base][path]=/var/www/magento2'],
159177
['MAGE_DIRS' => ['base' => ['path' => '/var/www/magento2']], 'MAGE_MODE' => 'developer'],
160178
],
161179
'two MAGE_DIRS CLI' => [
162180
[],
163181
[],
164-
'MAGE_MODE=developer&MAGE_DIRS[base][path]=/var/www/magento2&MAGE_DIRS[cache][path]=/tmp/cache',
182+
['bin/magento', 'setup:install', '--magento-init-params=MAGE_MODE=developer&MAGE_DIRS[base][path]=/var/www/magento2&MAGE_DIRS[cache][path]=/tmp/cache'],
165183
[
166184
'MAGE_DIRS' => ['base' => ['path' => '/var/www/magento2'], 'cache' => ['path' => '/tmp/cache']],
167185
'MAGE_MODE' => 'developer',
168186
],
169187
],
170-
'mage_mode only' => [[], [], 'MAGE_MODE=developer', ['MAGE_MODE' => 'developer']],
188+
'mage_mode only' => [
189+
[],
190+
[],
191+
['bin/magento', 'setup:install', '--magento-init-params=MAGE_MODE=developer'],
192+
['MAGE_MODE' => 'developer']
193+
],
171194
'MAGE_DIRS Env' => [
172195
[],
173196
['MAGE_DIRS' => ['base' => ['path' => '/var/www/magento2']], 'MAGE_MODE' => 'developer'],
174-
'',
197+
null,
175198
['MAGE_DIRS' => ['base' => ['path' => '/var/www/magento2']], 'MAGE_MODE' => 'developer'],
176199
],
177200
'two MAGE_DIRS' => [
178201
[],
179202
[],
180-
'MAGE_MODE=developer&MAGE_DIRS[base][path]=/var/www/magento2&MAGE_DIRS[cache][path]=/tmp/cache',
203+
['bin/magento', 'setup:install', '--magento-init-params=MAGE_MODE=developer&MAGE_DIRS[base][path]=/var/www/magento2&MAGE_DIRS[cache][path]=/tmp/cache'],
181204
[
182205
'MAGE_DIRS' => ['base' => ['path' => '/var/www/magento2'], 'cache' => ['path' => '/tmp/cache']],
183206
'MAGE_MODE' => 'developer',
@@ -186,19 +209,19 @@ public function createServiceDataProvider()
186209
'Env overwrites App' => [
187210
['MAGE_DIRS' => ['base' => ['path' => '/var/www/magento2/App']], 'MAGE_MODE' => 'developer'],
188211
['MAGE_DIRS' => ['base' => ['path' => '/var/www/magento2/Env']], 'MAGE_MODE' => 'developer'],
189-
'',
212+
['bin/magento', 'setup:install'],
190213
['MAGE_DIRS' => ['base' => ['path' => '/var/www/magento2/Env']], 'MAGE_MODE' => 'developer'],
191214
],
192215
'CLI overwrites Env' => [
193216
['MAGE_MODE' => 'developer'],
194217
['MAGE_DIRS' => ['base' => ['path' => '/var/www/magento2/Env']]],
195-
'MAGE_DIRS[base][path]=/var/www/magento2/CLI',
218+
['bin/magento', 'setup:install', '--magento-init-params=MAGE_DIRS[base][path]=/var/www/magento2/CLI'],
196219
['MAGE_DIRS' => ['base' => ['path' => '/var/www/magento2/CLI']], 'MAGE_MODE' => 'developer'],
197220
],
198221
'CLI overwrites All' => [
199222
['MAGE_DIRS' => ['base' => ['path' => '/var/www/magento2/App']], 'MAGE_MODE' => 'production'],
200223
['MAGE_DIRS' => ['base' => ['path' => '/var/www/magento2/Env']]],
201-
'MAGE_DIRS[base][path]=/var/www/magento2/CLI',
224+
['bin/magento', 'setup:install', '--magento-init-params=MAGE_DIRS[base][path]=/var/www/magento2/CLI'],
202225
['MAGE_DIRS' => ['base' => ['path' => '/var/www/magento2/CLI']], 'MAGE_MODE' => 'developer'],
203226
],
204227
];

0 commit comments

Comments
 (0)