46 lines
1.8 KiB
PHP
Executable File
46 lines
1.8 KiB
PHP
Executable File
<?php
|
|
/***
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Version\Controller\Index;
|
|
|
|
class IndexTest extends \Magento\TestFramework\TestCase\AbstractController
|
|
{
|
|
public function testIndexAction()
|
|
{
|
|
// Execute controller to get version response
|
|
$this->dispatch('magento_version/index/index');
|
|
$body = $this->getResponse()->getBody();
|
|
|
|
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
|
|
/** @var \Magento\Framework\App\ProductMetadataInterface $productMetadata */
|
|
$productMetadata = $objectManager->get(\Magento\Framework\App\ProductMetadataInterface::class);
|
|
$name = $productMetadata->getName();
|
|
$edition = $productMetadata->getEdition();
|
|
|
|
$fullVersion = $productMetadata->getVersion();
|
|
if ($this->isComposerBasedInstallation($fullVersion)) {
|
|
$versionParts = explode('.', $fullVersion);
|
|
$majorMinor = $versionParts[0] . '.' . $versionParts[1];
|
|
|
|
// Response must contain Major.Minor version, product name, and edition
|
|
$this->assertStringContainsString($majorMinor, $body);
|
|
$this->assertStringContainsString($name, $body);
|
|
$this->assertStringContainsString($edition, $body);
|
|
|
|
// Response must not contain full version including patch version
|
|
$this->assertStringNotContainsString($fullVersion, $body);
|
|
} else {
|
|
// Response is supposed to be empty when the project is installed from git
|
|
$this->assertEmpty($body);
|
|
}
|
|
}
|
|
|
|
private function isComposerBasedInstallation($fullVersion)
|
|
{
|
|
$versionParts = explode('-', $fullVersion);
|
|
return !(isset($versionParts[0]) && $versionParts[0] == 'dev');
|
|
}
|
|
}
|