Skip to content

Commit 424c113

Browse files
Merge pull request #757 from magento-falcons/MAGETWO-63295
Bug: - MAGETWO-63295 Installation fails because 'generated' directory is not writable
2 parents 8a0cf91 + 693c981 commit 424c113

File tree

5 files changed

+43
-0
lines changed

5 files changed

+43
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,5 @@ atlassian*
5151
!/var/.htaccess
5252
/vendor/*
5353
!/vendor/.htaccess
54+
/generated/*
55+
!/generated/.htaccess

lib/internal/Magento/Framework/App/Filesystem/DirectoryList.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,11 @@ class DirectoryList extends \Magento\Framework\Filesystem\DirectoryList
109109

110110
const TEMPLATE_MINIFICATION_DIR = 'html';
111111

112+
/**
113+
* Directory name for generated data.
114+
*/
115+
const GENERATED = 'generated';
116+
112117
/**
113118
* {@inheritdoc}
114119
*/
@@ -135,6 +140,7 @@ public static function getDefaultConfig()
135140
self::TEMPLATE_MINIFICATION_DIR => [parent::PATH => 'var/view_preprocessed/html'],
136141
self::SETUP => [parent::PATH => 'setup/src'],
137142
self::COMPOSER_HOME => [parent::PATH => 'var/composer_home'],
143+
self::GENERATED => [parent::PATH => 'generated'],
138144
];
139145
return parent::getDefaultConfig() + $result;
140146
}

lib/internal/Magento/Framework/App/Test/Unit/Filesystem/DirectoryListTest.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,31 @@ public function testUnknownDirectory()
3838
{
3939
new DirectoryList('/root/dir', ['test' => [DirectoryList::PATH => '/baz']]);
4040
}
41+
42+
public function testGetDefaultConfig()
43+
{
44+
$defaultConfig = DirectoryList::getDefaultConfig();
45+
46+
$this->assertArrayHasKey(DirectoryList::GENERATED, $defaultConfig);
47+
$this->assertArrayHasKey(DirectoryList::DI, $defaultConfig);
48+
$this->assertArrayHasKey(DirectoryList::GENERATION, $defaultConfig);
49+
$this->assertArrayHasKey(DirectoryList::ROOT, $defaultConfig);
50+
$this->assertArrayHasKey(DirectoryList::APP, $defaultConfig);
51+
$this->assertArrayHasKey(DirectoryList::CONFIG, $defaultConfig);
52+
$this->assertArrayHasKey(DirectoryList::LIB_INTERNAL, $defaultConfig);
53+
$this->assertArrayHasKey(DirectoryList::VAR_DIR, $defaultConfig);
54+
$this->assertArrayHasKey(DirectoryList::CACHE, $defaultConfig);
55+
$this->assertArrayHasKey(DirectoryList::LOG, $defaultConfig);
56+
$this->assertArrayHasKey(DirectoryList::SESSION, $defaultConfig);
57+
$this->assertArrayHasKey(DirectoryList::MEDIA, $defaultConfig);
58+
$this->assertArrayHasKey(DirectoryList::STATIC_VIEW, $defaultConfig);
59+
$this->assertArrayHasKey(DirectoryList::PUB, $defaultConfig);
60+
$this->assertArrayHasKey(DirectoryList::LIB_WEB, $defaultConfig);
61+
$this->assertArrayHasKey(DirectoryList::TMP, $defaultConfig);
62+
$this->assertArrayHasKey(DirectoryList::UPLOAD, $defaultConfig);
63+
$this->assertArrayHasKey(DirectoryList::TEMPLATE_MINIFICATION_DIR, $defaultConfig);
64+
$this->assertArrayHasKey(DirectoryList::TMP_MATERIALIZATION_DIR, $defaultConfig);
65+
$this->assertArrayHasKey(DirectoryList::SETUP, $defaultConfig);
66+
$this->assertArrayHasKey(DirectoryList::COMPOSER_HOME, $defaultConfig);
67+
}
4168
}

lib/internal/Magento/Framework/Setup/FilePermissions.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ public function getInstallationWritableDirectories()
8282
DirectoryList::VAR_DIR,
8383
DirectoryList::MEDIA,
8484
DirectoryList::STATIC_VIEW,
85+
DirectoryList::GENERATED,
8586
];
8687
foreach ($data as $code) {
8788
$this->installationWritableDirectories[$code] = $this->directoryList->getPath($code);

lib/internal/Magento/Framework/Setup/Test/Unit/FilePermissionsTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ public function testGetInstallationWritableDirectories()
6868
BP . '/var',
6969
BP . '/pub/media',
7070
BP . '/pub/static',
71+
BP . '/generated'
7172
];
7273

7374
$this->assertEquals($expected, $this->filePermissions->getInstallationWritableDirectories());
@@ -157,6 +158,7 @@ public function testGetMissingWritableDirectoriesAndPathsForInstallation()
157158
BP . '/var',
158159
BP . '/pub/media',
159160
BP . '/pub/static',
161+
BP . '/generated'
160162
];
161163

162164
$this->assertEquals(
@@ -231,6 +233,11 @@ public function setUpDirectoryListInstallation()
231233
->method('getPath')
232234
->with(DirectoryList::STATIC_VIEW)
233235
->will($this->returnValue(BP . '/pub/static'));
236+
$this->directoryListMock
237+
->expects($this->at(4))
238+
->method('getPath')
239+
->with(DirectoryList::GENERATED)
240+
->will($this->returnValue(BP . '/generated'));
234241
}
235242

236243
public function setUpDirectoryWriteInstallation()

0 commit comments

Comments
 (0)