diff --git a/dev/tests/integration/testsuite/Magento/Framework/App/Utility/FilesTest.php b/dev/tests/integration/testsuite/Magento/Framework/App/Utility/FilesTest.php index a41fe148a4624..d054900bb8031 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/App/Utility/FilesTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/App/Utility/FilesTest.php @@ -6,7 +6,6 @@ namespace Magento\Framework\App\Utility; -use Magento\Framework\App\Utility\Files; use Magento\Framework\Component\ComponentRegistrar; class FilesTest extends \PHPUnit\Framework\TestCase @@ -159,4 +158,24 @@ public function testReadLists() } $this->assertSame($expected, $actual); } + + /** + * Tests if underscores are allowed in extended static files in theme. + * + * @magentoComponentsDir Magento/Framework/App/Utility/_files/design + * @magentoAppIsolation enabled + * @magentoDbIsolation enabled + */ + public function testAllowUnderscoreInExtendedFiles() + { + $this->assertNotEmpty( + array_filter( + $this->model->getStaticPreProcessingFiles('*.less'), + function ($resource) { + return $resource[3] === 'Module_Third_Party' + && $resource[4] === 'css/source/_module.less'; + } + ) + ); + } } diff --git a/dev/tests/integration/testsuite/Magento/Framework/App/Utility/_files/design/frontend/Test/default/Module_Third_Party/web/css/source/_module.less b/dev/tests/integration/testsuite/Magento/Framework/App/Utility/_files/design/frontend/Test/default/Module_Third_Party/web/css/source/_module.less new file mode 100644 index 0000000000000..5d97e4e29303f --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Framework/App/Utility/_files/design/frontend/Test/default/Module_Third_Party/web/css/source/_module.less @@ -0,0 +1,8 @@ +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + .a-random-css-rule { + background: red; + } + diff --git a/dev/tests/integration/testsuite/Magento/Framework/App/Utility/_files/design/frontend/Test/default/registration.php b/dev/tests/integration/testsuite/Magento/Framework/App/Utility/_files/design/frontend/Test/default/registration.php new file mode 100644 index 0000000000000..8837388781c28 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Framework/App/Utility/_files/design/frontend/Test/default/registration.php @@ -0,0 +1,9 @@ + + + + Test Default + diff --git a/lib/internal/Magento/Framework/App/Utility/Files.php b/lib/internal/Magento/Framework/App/Utility/Files.php index 36993f1620e36..b0480510e7f68 100644 --- a/lib/internal/Magento/Framework/App/Utility/Files.php +++ b/lib/internal/Magento/Framework/App/Utility/Files.php @@ -936,7 +936,7 @@ private function accumulateThemeStaticFiles($area, $locale, $filePattern, &$resu ]; $this->_accumulateFilesByPatterns($paths, $filePattern, $files); $regex = '#^' . $themePath . - '/((?P[a-z\d]+_[a-z\d]+)/)?web/(i18n/(?P[a-z_]+)/)?(?P.+)$#i'; + '/((?P[a-z\d]+_[a-z_\d]+)/)?web/(i18n/(?P[a-z_]+)/)?(?P.+)$#i'; foreach ($files as $file) { if (preg_match($regex, $file, $matches)) { $result[] = [