diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/widget/link/link_inline.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/widget/link/link_inline.phtml index 262bc431e158efc4abd8da807744bcbdce34b986..386400d7b901cd0bdabda3f706e65f8358547058 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/widget/link/link_inline.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/widget/link/link_inline.phtml @@ -6,6 +6,6 @@ // @codingStandardsIgnoreFile ?> -<div class="widget block block-product-link-inline"> +<span class="widget block block-product-link-inline"> <a <?php /* @escapeNotVerified */ echo $block->getLinkAttributes() ?>><span><?php echo $block->escapeHtml($block->getLabel()) ?></span></a> -</div> +</span> diff --git a/app/code/Magento/Cms/view/frontend/templates/widget/link/link_inline.phtml b/app/code/Magento/Cms/view/frontend/templates/widget/link/link_inline.phtml index 68aafe5973d0ad3fddbb74b9765236d7325dd3e1..382b492db3da5c815530d87f13ee959d82e2c083 100644 --- a/app/code/Magento/Cms/view/frontend/templates/widget/link/link_inline.phtml +++ b/app/code/Magento/Cms/view/frontend/templates/widget/link/link_inline.phtml @@ -4,8 +4,8 @@ * See COPYING.txt for license details. */ ?> -<div class="widget block block-cms-link-inline"> +<span class="widget block block-cms-link-inline"> <a <?php /* @escapeNotVerified */ echo $block->getLinkAttributes() ?>> <span><?php echo $block->escapeHtml($block->getLabel()) ?></span> </a> -</div> +</span> diff --git a/app/code/Magento/Deploy/Model/DeployManager.php b/app/code/Magento/Deploy/Model/DeployManager.php index c54aa38f5a33ab21283537c90c717f3844d08a0e..57c6a78e6b572026cc451a4cf28bfc6e8c450e2d 100644 --- a/app/code/Magento/Deploy/Model/DeployManager.php +++ b/app/code/Magento/Deploy/Model/DeployManager.php @@ -12,6 +12,9 @@ use Magento\Deploy\Console\Command\DeployStaticOptionsInterface as Options; use Magento\Deploy\Model\Deploy\TemplateMinifier; use Magento\Framework\App\State; +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class DeployManager { /** @@ -108,6 +111,9 @@ class DeployManager { if ($this->idDryRun) { $this->output->writeln('Dry run. Nothing will be recorded to the target directory.'); + } else { + $version = (new \DateTime())->getTimestamp(); + $this->versionStorage->save($version); } /** @var DeployStrategyProvider $strategyProvider */ @@ -133,7 +139,9 @@ class DeployManager } $this->minifyTemplates(); - $this->saveDeployedVersion(); + if (!$this->idDryRun) { + $this->output->writeln("New version of deployed files: {$version}"); + } return $result; } @@ -197,17 +205,4 @@ class DeployManager { return isset($this->options[Options::JOBS_AMOUNT]) ? (int)$this->options[Options::JOBS_AMOUNT] : 0; } - - /** - * Save version of deployed files - * @return void - */ - private function saveDeployedVersion() - { - if (!$this->idDryRun) { - $version = (new \DateTime())->getTimestamp(); - $this->output->writeln("New version of deployed files: {$version}"); - $this->versionStorage->save($version); - } - } } diff --git a/app/code/Magento/Theme/etc/config.xml b/app/code/Magento/Theme/etc/config.xml index 5fa88578183d453339cf0bd9a529eb82402b3b1f..98df41096daef12e399e2ec67a93bbf94ff5b62c 100644 --- a/app/code/Magento/Theme/etc/config.xml +++ b/app/code/Magento/Theme/etc/config.xml @@ -64,5 +64,10 @@ Disallow: /*SID= </allowed_resources> </media_storage_configuration> </system> + <dev> + <static> + <sign>1</sign> + </static> + </dev> </default> </config> diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/ImageTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/ImageTest.php index 688dc42958b0bacd41e99db0b8575a232e651ba2..88fd7797e768fb5fb227a8fc888ad481794d4347 100644 --- a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/ImageTest.php +++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/ImageTest.php @@ -46,7 +46,7 @@ class ImageTest extends \PHPUnit_Framework_TestCase public function testGetUrlPlaceholder($model) { $this->assertStringMatchesFormat( - 'http://localhost/pub/static/frontend/%s/Magento_Catalog/images/product/placeholder/image.jpg', + 'http://localhost/pub/static/%s/frontend/%s/Magento_Catalog/images/product/placeholder/image.jpg', $model->getUrl() ); } diff --git a/dev/tests/integration/testsuite/Magento/Cms/Model/Wysiwyg/ConfigTest.php b/dev/tests/integration/testsuite/Magento/Cms/Model/Wysiwyg/ConfigTest.php index a5f5718d17c1eb05b98b1fbc9b8daae4e6a7bb3b..fac6a3b48b4a6603201d18f551ac6c8baf6daeb3 100644 --- a/dev/tests/integration/testsuite/Magento/Cms/Model/Wysiwyg/ConfigTest.php +++ b/dev/tests/integration/testsuite/Magento/Cms/Model/Wysiwyg/ConfigTest.php @@ -42,7 +42,7 @@ class ConfigTest extends \PHPUnit_Framework_TestCase public function testGetConfigCssUrls() { $config = $this->_model->getConfig(); - $publicPathPattern = 'http://localhost/pub/static/adminhtml/Magento/backend/en_US/mage/%s'; + $publicPathPattern = 'http://localhost/pub/static/%s/adminhtml/Magento/backend/en_US/mage/%s'; $this->assertStringMatchesFormat($publicPathPattern, $config->getPopupCss()); $this->assertStringMatchesFormat($publicPathPattern, $config->getContentCss()); } diff --git a/dev/tests/integration/testsuite/Magento/Cms/Model/Wysiwyg/Images/StorageTest.php b/dev/tests/integration/testsuite/Magento/Cms/Model/Wysiwyg/Images/StorageTest.php index 40a97894fc55c2e840384ea1cd5d35d33450ec90..3211bacc613a4dc0dc768061f0a6810e790ac59b 100644 --- a/dev/tests/integration/testsuite/Magento/Cms/Model/Wysiwyg/Images/StorageTest.php +++ b/dev/tests/integration/testsuite/Magento/Cms/Model/Wysiwyg/Images/StorageTest.php @@ -58,7 +58,7 @@ class StorageTest extends \PHPUnit_Framework_TestCase $this->assertInstanceOf(\Magento\Framework\DataObject::class, $item); $this->assertStringEndsWith('/1.swf', $item->getUrl()); $this->assertStringMatchesFormat( - 'http://%s/static/adminhtml/%s/%s/Magento_Cms/images/placeholder_thumbnail.jpg', + 'http://%s/static/%s/adminhtml/%s/%s/Magento_Cms/images/placeholder_thumbnail.jpg', $item->getThumbUrl() ); return; diff --git a/dev/tests/integration/testsuite/Magento/Email/Model/Template/FilterTest.php b/dev/tests/integration/testsuite/Magento/Email/Model/Template/FilterTest.php index a6527a6c66936b794b9eb38588e335e9076b8880..be9c2afe32f42cc0da7ebc591fc144cae8ad39e2 100644 --- a/dev/tests/integration/testsuite/Magento/Email/Model/Template/FilterTest.php +++ b/dev/tests/integration/testsuite/Magento/Email/Model/Template/FilterTest.php @@ -283,6 +283,7 @@ class FilterTest extends \PHPUnit_Framework_TestCase * @magentoComponentsDir Magento/Email/Model/_files/design * @magentoAppIsolation enabled * @magentoDbIsolation enabled + * @magentoConfigFixture default_store dev/static/sign 0 * @dataProvider inlinecssDirectiveDataProvider * * @param string $templateText diff --git a/dev/tests/integration/testsuite/Magento/Email/Model/TemplateTest.php b/dev/tests/integration/testsuite/Magento/Email/Model/TemplateTest.php index 700346fe0aed17d09c669fdf5f8c27a8c7b922b0..15dca70b27a5e4e14e06a8bac09093ed3ce17533 100644 --- a/dev/tests/integration/testsuite/Magento/Email/Model/TemplateTest.php +++ b/dev/tests/integration/testsuite/Magento/Email/Model/TemplateTest.php @@ -122,7 +122,7 @@ class TemplateTest extends \PHPUnit_Framework_TestCase ->getArea(Area::AREA_FRONTEND) ->load(); - $expectedViewUrl = 'static/frontend/Magento/blank/en_US/Magento_Theme/favicon.ico'; + $expectedViewUrl = '/frontend/Magento/blank/en_US/Magento_Theme/favicon.ico'; $this->model->setDesignConfig([ 'area' => 'frontend', 'store' => $this->objectManager->get(\Magento\Store\Model\StoreManagerInterface::class) @@ -578,7 +578,6 @@ class TemplateTest extends \PHPUnit_Framework_TestCase ->getArea(Area::AREA_FRONTEND) ->load(); - $expectedViewUrl = 'static/frontend/Magento/blank/en_US/Magento_Theme/favicon.ico'; $this->model->setTemplateSubject('{{view url="Magento_Theme::favicon.ico"}}'); $this->model->setDesignConfig([ 'area' => 'frontend', @@ -588,10 +587,16 @@ class TemplateTest extends \PHPUnit_Framework_TestCase ]); $this->setNotDefaultThemeForFixtureStore(); - $this->assertStringEndsNotWith($expectedViewUrl, $this->model->getProcessedTemplateSubject([])); + $this->assertStringMatchesFormat( + '%s/frontend/Magento/luma/en_US/Magento_Theme/favicon.ico', + $this->model->getProcessedTemplateSubject([]) + ); $this->setDefaultThemeForFixtureStore(); - $this->assertStringEndsWith($expectedViewUrl, $this->model->getProcessedTemplateSubject([])); + $this->assertStringMatchesFormat( + '%s/frontend/Magento/blank/en_US/Magento_Theme/favicon.ico', + $this->model->getProcessedTemplateSubject([]) + ); } /** @@ -605,7 +610,7 @@ class TemplateTest extends \PHPUnit_Framework_TestCase ->load(); $this->assertStringEndsWith( - 'static/frontend/Magento/luma/en_US/Magento_Email/logo_email.png', + '/frontend/Magento/luma/en_US/Magento_Email/logo_email.png', $this->model->getDefaultEmailLogo() ); } diff --git a/dev/tests/integration/testsuite/Magento/Framework/View/Element/AbstractBlockTest.php b/dev/tests/integration/testsuite/Magento/Framework/View/Element/AbstractBlockTest.php index 6cd132378258860fc875308b8fb85f8cd6d94e6e..1846d25f2db390c33e3180a67471382099adfd7a 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/View/Element/AbstractBlockTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/View/Element/AbstractBlockTest.php @@ -477,7 +477,10 @@ class AbstractBlockTest extends \PHPUnit_Framework_TestCase public function testGetViewFileUrl() { $actualResult = $this->_block->getViewFileUrl('css/styles.css'); - $this->assertStringMatchesFormat('http://localhost/pub/static/frontend/%s/en_US/css/styles.css', $actualResult); + $this->assertStringMatchesFormat( + 'http://localhost/pub/static/%s/frontend/%s/en_US/css/styles.css', + $actualResult + ); } public function testGetModuleName() diff --git a/dev/tests/integration/testsuite/Magento/Review/Controller/ProductTest.php b/dev/tests/integration/testsuite/Magento/Review/Controller/ProductTest.php index 35d83ef500077c32be0a6f3c76370e38389a0386..9c54835d3c51188907802ced500b4d1b146c08c6 100644 --- a/dev/tests/integration/testsuite/Magento/Review/Controller/ProductTest.php +++ b/dev/tests/integration/testsuite/Magento/Review/Controller/ProductTest.php @@ -18,6 +18,6 @@ class ProductTest extends \Magento\TestFramework\TestCase\AbstractController $this->getRequest()->setParam('id', $product->getId()); $this->dispatch('review/product/listAction'); $result = $this->getResponse()->getBody(); - $this->assertContains("static/frontend/Magento/blank/en_US/Magento_Theme/favicon.ico", $result); + $this->assertContains("/frontend/Magento/blank/en_US/Magento_Theme/favicon.ico", $result); } } diff --git a/dev/tests/integration/testsuite/Magento/Variable/Model/Variable/ConfigTest.php b/dev/tests/integration/testsuite/Magento/Variable/Model/Variable/ConfigTest.php index d41bae33c54df10ec53d7ce51055e3d69def77f6..4828cb68190e13d5f1b6d9d40c5a4003477052b3 100644 --- a/dev/tests/integration/testsuite/Magento/Variable/Model/Variable/ConfigTest.php +++ b/dev/tests/integration/testsuite/Magento/Variable/Model/Variable/ConfigTest.php @@ -20,7 +20,7 @@ class ConfigTest extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( + $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( \Magento\Variable\Model\Variable\Config::class ); } @@ -28,8 +28,9 @@ class ConfigTest extends \PHPUnit_Framework_TestCase public function testGetWysiwygJsPluginSrc() { $src = $this->_model->getWysiwygJsPluginSrc(); - $this->assertStringStartsWith('http://localhost/pub/static/adminhtml/Magento/backend/en_US/mage/adminhtml/', - $src); - $this->assertStringEndsWith('editor_plugin.js', $src); + $this->assertStringMatchesFormat( + 'http://localhost/pub/static/%s/adminhtml/Magento/backend/en_US/mage/adminhtml/%s/editor_plugin.js', + $src + ); } } diff --git a/dev/tests/integration/testsuite/Magento/Widget/Model/Widget/ConfigTest.php b/dev/tests/integration/testsuite/Magento/Widget/Model/Widget/ConfigTest.php index 91aca8173d6f3d13a92ec513e618dba8ae71cda0..368aa34604a508aa2cadec46e25f49a04cf556ac 100644 --- a/dev/tests/integration/testsuite/Magento/Widget/Model/Widget/ConfigTest.php +++ b/dev/tests/integration/testsuite/Magento/Widget/Model/Widget/ConfigTest.php @@ -43,8 +43,10 @@ class ConfigTest extends \PHPUnit_Framework_TestCase $this->assertArrayHasKey('widget_window_url', $settings); $jsFilename = $settings['widget_plugin_src']; - $this->assertStringStartsWith('http://localhost/pub/static/adminhtml/Magento/backend/en_US/', $jsFilename); - $this->assertStringEndsWith('editor_plugin.js', $jsFilename); + $this->assertStringMatchesFormat( + 'http://localhost/pub/static/%s/adminhtml/Magento/backend/en_US/%s/editor_plugin.js', + $jsFilename + ); $this->assertInternalType('array', $settings['widget_placeholders']); diff --git a/lib/internal/Magento/Framework/View/Layout/etc/elements.xsd b/lib/internal/Magento/Framework/View/Layout/etc/elements.xsd index 4966d7f88ffbc9a0a6dc05996f15a0fafa36f323..401bf2e93f3665365cd45cdbe9ee29d2364dbd3f 100755 --- a/lib/internal/Magento/Framework/View/Layout/etc/elements.xsd +++ b/lib/internal/Magento/Framework/View/Layout/etc/elements.xsd @@ -140,7 +140,7 @@ <xs:simpleType name="elementNameType"> <xs:restriction base="xs:string"> - <xs:pattern value="[a-zA-Z][a-zA-Z\d\-_\.]*"/> + <xs:pattern value="[a-zA-Z0-9][a-zA-Z\d\-_\.]*"/> </xs:restriction> </xs:simpleType>