Skip to content
Snippets Groups Projects
Commit 1dfd160a authored by Simon Sippert's avatar Simon Sippert
Browse files

Fix XSD location of test files

parent 41491229
Branches
Tags 1.3.4
1 merge request!39Update 1.3 branche
Showing
with 124 additions and 66 deletions
# CHANGELOG
## 1.3.4
* *Bugfix:* Set correct XSD URN
* *Bugfix:* Pin composer to Version 1
## 1.3.3
* *Bugfix:* Fix return type of convert on error
## 1.3.2
* *Bugfix:* Fix xml schema reference to pass magento static tests
## 1.3.0 / 1.3.1
* *Feature:* Add Magento 2.4 support
* *Feature:* Add phpUnit 9 support
## 1.2.4
* *Feature:* Enable PHP 7.2 support
* *Feature:* Enable PHP 7.3 support
* *Feature:* Add command to add blocks and pages
## 1.2.2 / 1.2.3
* *Bugfix:* `composer.json` blocked installation of the module in Magento 2.2
......
......@@ -7,14 +7,18 @@ declare(strict_types=1);
namespace Firegento\ContentProvisioning\Controller\Adminhtml\Block;
use Exception;
use Firegento\ContentProvisioning\Model\Command\ApplyBlockEntry;
use Firegento\ContentProvisioning\Model\Query\GetBlockEntryByBlock;
use Magento\Backend\App\Action\Context;
use Magento\Backend\Model\View\Result\Redirect;
use Magento\Cms\Api\BlockRepositoryInterface;
use Magento\Cms\Model\Block;
use Magento\Cms\Model\BlockFactory;
use Magento\Framework\App\Action\HttpPostActionInterface;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\App\Request\DataPersistorInterface;
use Magento\Framework\Controller\ResultInterface;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\Registry;
......@@ -66,9 +70,9 @@ class Save extends \Magento\Cms\Controller\Adminhtml\Block implements HttpPostAc
) {
$this->dataPersistor = $dataPersistor;
$this->blockFactory = $blockFactory
?: \Magento\Framework\App\ObjectManager::getInstance()->get(BlockFactory::class);
?: ObjectManager::getInstance()->get(BlockFactory::class);
$this->blockRepository = $blockRepository
?: \Magento\Framework\App\ObjectManager::getInstance()->get(BlockRepositoryInterface::class);
?: ObjectManager::getInstance()->get(BlockRepositoryInterface::class);
parent::__construct($context, $coreRegistry);
$this->getBlockEntryByBlock = $getBlockEntryByBlock;
$this->applyBlockEntry = $applyBlockEntry;
......@@ -78,11 +82,11 @@ class Save extends \Magento\Cms\Controller\Adminhtml\Block implements HttpPostAc
* Save action
*
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
* @return \Magento\Framework\Controller\ResultInterface
* @return ResultInterface
*/
public function execute()
{
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
/** @var Redirect $resultRedirect */
$resultRedirect = $this->resultRedirectFactory->create();
$data = $this->getRequest()->getPostValue();
if ($data) {
......@@ -93,7 +97,7 @@ class Save extends \Magento\Cms\Controller\Adminhtml\Block implements HttpPostAc
$data['block_id'] = null;
}
/** @var \Magento\Cms\Model\Block $model */
/** @var Block $model */
$model = $this->blockFactory->create();
$id = $this->getRequest()->getParam('block_id');
......@@ -115,7 +119,7 @@ class Save extends \Magento\Cms\Controller\Adminhtml\Block implements HttpPostAc
return $this->processBlockReturn($model, $data, $resultRedirect);
} catch (LocalizedException $e) {
$this->messageManager->addErrorMessage($e->getMessage());
} catch (\Exception $e) {
} catch (Exception $e) {
$this->messageManager->addExceptionMessage($e, __('Something went wrong while saving the block.'));
}
......@@ -128,11 +132,11 @@ class Save extends \Magento\Cms\Controller\Adminhtml\Block implements HttpPostAc
/**
* Process and set the block return
*
* @param \Magento\Cms\Model\Block $model
* @param Block $model
* @param array $data
* @param \Magento\Framework\Controller\ResultInterface $resultRedirect
* @param ResultInterface $resultRedirect
*
* @return \Magento\Framework\Controller\ResultInterface
* @return ResultInterface
* @throws LocalizedException
*/
private function processBlockReturn($model, $data, $resultRedirect)
......
......@@ -7,19 +7,26 @@ declare(strict_types=1);
namespace Firegento\ContentProvisioning\Controller\Adminhtml\Page;
use Exception;
use Firegento\ContentProvisioning\Model\Command\ApplyPageEntry;
use Firegento\ContentProvisioning\Model\Query\GetPageEntryByPage;
use Magento\Backend\App\Action;
use Magento\Backend\Model\View\Result\Redirect;
use Magento\Cms\Api\Data\PageInterface;
use Magento\Cms\Api\PageRepositoryInterface;
use Magento\Cms\Controller\Adminhtml\Page\PostDataProcessor;
use Magento\Cms\Model\Page;
use Magento\Cms\Model\PageFactory;
use Magento\Framework\App\Action\HttpPostActionInterface;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\App\Request\DataPersistorInterface;
use Magento\Framework\Controller\ResultInterface;
use Magento\Framework\Exception\LocalizedException;
/**
* Save CMS page action.
*/
class Save extends \Magento\Backend\App\Action implements HttpPostActionInterface
class Save extends Action implements HttpPostActionInterface
{
/**
* Authorization level of a basic admin session
......@@ -39,12 +46,12 @@ class Save extends \Magento\Backend\App\Action implements HttpPostActionInterfac
protected $dataPersistor;
/**
* @var \Magento\Cms\Model\PageFactory
* @var PageFactory
*/
private $pageFactory;
/**
* @var \Magento\Cms\Api\PageRepositoryInterface
* @var PageRepositoryInterface
*/
private $pageRepository;
......@@ -62,8 +69,8 @@ class Save extends \Magento\Backend\App\Action implements HttpPostActionInterfac
* @param Action\Context $context
* @param PostDataProcessor $dataProcessor
* @param DataPersistorInterface $dataPersistor
* @param \Magento\Cms\Model\PageFactory|null $pageFactory
* @param \Magento\Cms\Api\PageRepositoryInterface|null $pageRepository
* @param PageFactory|null $pageFactory
* @param PageRepositoryInterface|null $pageRepository
*/
public function __construct(
Action\Context $context,
......@@ -71,16 +78,16 @@ class Save extends \Magento\Backend\App\Action implements HttpPostActionInterfac
DataPersistorInterface $dataPersistor,
GetPageEntryByPage $getPageEntryByPage,
ApplyPageEntry $applyPageEntry,
\Magento\Cms\Model\PageFactory $pageFactory = null,
\Magento\Cms\Api\PageRepositoryInterface $pageRepository = null
PageFactory $pageFactory = null,
PageRepositoryInterface $pageRepository = null
) {
$this->dataProcessor = $dataProcessor;
$this->dataPersistor = $dataPersistor;
$this->pageFactory = $pageFactory
?: \Magento\Framework\App\ObjectManager::getInstance()->get(\Magento\Cms\Model\PageFactory::class);
?: ObjectManager::getInstance()->get(PageFactory::class);
$this->pageRepository = $pageRepository
?: \Magento\Framework\App\ObjectManager::getInstance()
->get(\Magento\Cms\Api\PageRepositoryInterface::class);
?: ObjectManager::getInstance()
->get(PageRepositoryInterface::class);
parent::__construct($context);
$this->getPageEntryByPage = $getPageEntryByPage;
$this->applyPageEntry = $applyPageEntry;
......@@ -90,12 +97,12 @@ class Save extends \Magento\Backend\App\Action implements HttpPostActionInterfac
* Save action
*
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
* @return \Magento\Framework\Controller\ResultInterface
* @return ResultInterface
*/
public function execute()
{
$data = $this->getRequest()->getPostValue();
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
/** @var Redirect $resultRedirect */
$resultRedirect = $this->resultRedirectFactory->create();
if ($data) {
$data = $this->dataProcessor->filter($data);
......@@ -106,7 +113,7 @@ class Save extends \Magento\Backend\App\Action implements HttpPostActionInterfac
$data['page_id'] = null;
}
/** @var \Magento\Cms\Model\Page $model */
/** @var Page $model */
$model = $this->pageFactory->create();
$id = $this->getRequest()->getParam('page_id');
......@@ -136,7 +143,7 @@ class Save extends \Magento\Backend\App\Action implements HttpPostActionInterfac
return $this->processResultRedirect($model, $resultRedirect, $data);
} catch (LocalizedException $e) {
$this->messageManager->addExceptionMessage($e->getPrevious() ?: $e);
} catch (\Exception $e) {
} catch (Exception $e) {
$this->messageManager->addExceptionMessage($e, __('Something went wrong while saving the page.'));
}
......@@ -149,10 +156,10 @@ class Save extends \Magento\Backend\App\Action implements HttpPostActionInterfac
/**
* Process result redirect
*
* @param \Magento\Cms\Api\Data\PageInterface $model
* @param \Magento\Backend\Model\View\Result\Redirect $resultRedirect
* @param PageInterface $model
* @param Redirect $resultRedirect
* @param array $data
* @return \Magento\Backend\Model\View\Result\Redirect
* @return Redirect
* @throws LocalizedException
*/
private function processResultRedirect($model, $resultRedirect, $data)
......
......@@ -3,6 +3,7 @@ declare(strict_types=1);
namespace Firegento\ContentProvisioning\Model;
use Exception;
use Firegento\ContentProvisioning\Model\Command\ApplyBlockEntry;
use Firegento\ContentProvisioning\Model\Command\ApplyMediaFiles;
use Firegento\ContentProvisioning\Model\Query\GetBlockEntryList;
......@@ -70,7 +71,7 @@ class BlockInstaller
$this->applyBlockEntry->execute($blockEntry);
$this->applyMediaFiles->execute($blockEntry);
}
} catch (\Exception $exception) {
} catch (Exception $exception) {
$this->logger->error(sprintf(
'An error appeared while applying cms block content: %s',
$exception->getMessage()
......
......@@ -3,6 +3,7 @@ declare(strict_types=1);
namespace Firegento\ContentProvisioning\Model\Config;
use Exception;
use Magento\Framework\Config\ConverterInterface;
use Magento\Framework\Exception\LocalizedException;
use Psr\Log\LoggerInterface;
......@@ -50,7 +51,7 @@ class Converter implements ConverterInterface
'pages' => $this->pageNodeConverter->convert($source),
'blocks' => $this->blockNodeConverter->convert($source),
];
} catch (\Exception $exception) {
} catch (Exception $exception) {
$this->logger->error($exception->getMessage(), $exception->getTrace());
}
return [];
......
......@@ -3,9 +3,11 @@ declare(strict_types=1);
namespace Firegento\ContentProvisioning\Model\Config;
use Magento\Framework\Config\SchemaLocatorInterface;
use Magento\Framework\Module\Dir;
use Magento\Framework\Module\Dir\Reader;
class SchemaLocator implements \Magento\Framework\Config\SchemaLocatorInterface
class SchemaLocator implements SchemaLocatorInterface
{
/**
* Path to corresponding XSD file with validation rules for merged config
......@@ -27,7 +29,7 @@ class SchemaLocator implements \Magento\Framework\Config\SchemaLocatorInterface
public function __construct(Reader $moduleReader)
{
$etcDir = $moduleReader->getModuleDir(
\Magento\Framework\Module\Dir::MODULE_ETC_DIR,
Dir::MODULE_ETC_DIR,
'Firegento_ContentProvisioning'
);
$this->_schema = $etcDir . '/content_provisioning.xsd';
......
......@@ -3,6 +3,7 @@ declare(strict_types=1);
namespace Firegento\ContentProvisioning\Model;
use Exception;
use Firegento\ContentProvisioning\Model\Command\ApplyMediaFiles;
use Firegento\ContentProvisioning\Model\Command\ApplyPageEntry;
use Firegento\ContentProvisioning\Model\Query\GetPageEntryList;
......@@ -70,7 +71,7 @@ class PageInstaller
$this->applyPageEntry->execute($pageEntry);
$this->applyMediaFiles->execute($pageEntry);
}
} catch (\Exception $exception) {
} catch (Exception $exception) {
$this->logger->error(sprintf(
'An error appeared while applying cms page content: %s',
$exception->getMessage()
......
......@@ -33,7 +33,7 @@ composer require firegento/magento2-content-provisioning
## How it works
After installing this module you can create own `content_provisioning.xml` in each of your modules.
After installing this module you can create your own `content_provisioning.xml` in each of your modules.
## Example configurations
......
......@@ -10,6 +10,8 @@ use Firegento\ContentProvisioning\Model\Query\GetBlockEntryList;
use Firegento\ContentProvisioning\Model\Query\GetFirstBlockByBlockEntry;
use Magento\Cms\Api\Data\BlockInterface;
use Magento\Framework\App\ResourceConnection;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\Exception\NoSuchEntityException;
use Magento\Store\Model\StoreManagerInterface;
use Magento\TestFramework\Helper\Bootstrap;
use PHPUnit\Framework\MockObject\MockObject;
......@@ -118,8 +120,8 @@ class TestCase extends \PHPUnit\Framework\TestCase
/**
* @param BlockEntryInterface $entry
* @return BlockInterface
* @throws \Magento\Framework\Exception\NoSuchEntityException
* @throws \Magento\Framework\Exception\LocalizedException
* @throws NoSuchEntityException
* @throws LocalizedException
*/
protected function getBlockByBlockEntry(BlockEntryInterface $entry): BlockInterface
{
......
......@@ -3,10 +3,13 @@ declare(strict_types=1);
namespace Firegento\ContentProvisioning\Test\Integration\Model\Config;
use DOMDocument;
use Firegento\ContentProvisioning\Model\Config\Converter;
use Magento\Framework\Exception\ConfigurationMismatchException;
use Magento\TestFramework\Helper\Bootstrap;
use PHPUnit\Framework\TestCase;
class ConverterTest extends \PHPUnit\Framework\TestCase
class ConverterTest extends TestCase
{
/**
* @var Converter
......@@ -15,7 +18,7 @@ class ConverterTest extends \PHPUnit\Framework\TestCase
protected function setUp(): void
{
$this->model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
$this->model = Bootstrap::getObjectManager()
->create(Converter::class);
}
......@@ -24,7 +27,7 @@ class ConverterTest extends \PHPUnit\Framework\TestCase
$pathFiles = __DIR__ . '/../../_files';
$expectedResult = require $pathFiles . '/result.php';
$path = $pathFiles . '/content_provisioning.xml';
$domDocument = new \DOMDocument();
$domDocument = new DOMDocument();
$domDocument->load($path);
$result = $this->model->convert($domDocument);
$this->assertEquals($expectedResult, $result);
......
......@@ -5,9 +5,11 @@ namespace Firegento\ContentProvisioning\Test\Integration\Model\Config\Parser\Que
use Firegento\ContentProvisioning\Api\MediaFilesParserInterface;
use Firegento\ContentProvisioning\Model\Config\Parser\Query\FetchMediaFilesChain;
use Magento\TestFramework\Helper\Bootstrap;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
class FetchMediaFilesChainTest extends \PHPUnit\Framework\TestCase
class FetchMediaFilesChainTest extends TestCase
{
/**
* @var FetchMediaFilesChain
......@@ -34,7 +36,7 @@ class FetchMediaFilesChainTest extends \PHPUnit\Framework\TestCase
->disableOriginalConstructor()
->getMock();
$this->chain = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
$this->chain = Bootstrap::getObjectManager()
->create(FetchMediaFilesChain::class, ['parsers' => [
$this->parser1,
$this->parser2,
......
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Firegento/ContentProvisioning/etc/content_provisioning.xsd">
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Firegento_ContentProvisioning:etc/content_provisioning.xsd">
<page key="test.page.1" identifier="test-page-1" maintained="true" active="true">
<title>Test Page 1</title>
<content type="file">Firegento_ContentProvisioning::Test/Integration/Model/Config/_files/test-files/file-1.html</content>
......
......@@ -10,6 +10,8 @@ use Firegento\ContentProvisioning\Model\Query\GetFirstPageByPageEntry;
use Firegento\ContentProvisioning\Model\Query\GetPageEntryList;
use Magento\Cms\Api\Data\PageInterface;
use Magento\Framework\App\ResourceConnection;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\Exception\NoSuchEntityException;
use Magento\Store\Model\StoreManagerInterface;
use Magento\TestFramework\Helper\Bootstrap;
use PHPUnit\Framework\MockObject\MockObject;
......@@ -159,8 +161,8 @@ class TestCase extends \PHPUnit\Framework\TestCase
/**
* @param PageEntryInterface $entry
* @return PageInterface
* @throws \Magento\Framework\Exception\NoSuchEntityException
* @throws \Magento\Framework\Exception\LocalizedException
* @throws NoSuchEntityException
* @throws LocalizedException
*/
protected function getPageByPageEntry(PageEntryInterface $entry): PageInterface
{
......
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Firegento/ContentProvisioning/etc/content_provisioning.xsd">
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Firegento_ContentProvisioning:etc/content_provisioning.xsd">
<page key="test.page.1" identifier="test-page-1" maintained="true" active="true">
<title>Test Page 1</title>
<content type="file">Firegento_ContentProvisioning::Test/Integration/_files/content/file-1.html</content>
......
......@@ -4,6 +4,8 @@
* See COPYING.txt for license details.
*/
use Magento\TestFramework\Bootstrap;
return [
'db-host' => '127.0.0.1',
'db-user' => 'root',
......@@ -11,11 +13,11 @@ return [
'db-name' => 'magento_integration_tests',
'db-prefix' => 'trv_',
'backend-frontname' => 'backend',
'admin-user' => \Magento\TestFramework\Bootstrap::ADMIN_NAME,
'admin-password' => \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD,
'admin-email' => \Magento\TestFramework\Bootstrap::ADMIN_EMAIL,
'admin-firstname' => \Magento\TestFramework\Bootstrap::ADMIN_FIRSTNAME,
'admin-lastname' => \Magento\TestFramework\Bootstrap::ADMIN_LASTNAME,
'admin-user' => Bootstrap::ADMIN_NAME,
'admin-password' => Bootstrap::ADMIN_PASSWORD,
'admin-email' => Bootstrap::ADMIN_EMAIL,
'admin-firstname' => Bootstrap::ADMIN_FIRSTNAME,
'admin-lastname' => Bootstrap::ADMIN_LASTNAME,
'amqp-host' => 'localhost',
'amqp-port' => '5672',
'amqp-user' => 'guest',
......
......@@ -4,6 +4,8 @@
* See COPYING.txt for license details.
*/
use Magento\TestFramework\Bootstrap;
return [
'db-host' => '127.0.0.1',
'db-user' => 'root',
......@@ -11,11 +13,11 @@ return [
'db-name' => 'magento_integration_tests',
'db-prefix' => 'trv_',
'backend-frontname' => 'backend',
'admin-user' => \Magento\TestFramework\Bootstrap::ADMIN_NAME,
'admin-password' => \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD,
'admin-email' => \Magento\TestFramework\Bootstrap::ADMIN_EMAIL,
'admin-firstname' => \Magento\TestFramework\Bootstrap::ADMIN_FIRSTNAME,
'admin-lastname' => \Magento\TestFramework\Bootstrap::ADMIN_LASTNAME,
'admin-user' => Bootstrap::ADMIN_NAME,
'admin-password' => Bootstrap::ADMIN_PASSWORD,
'admin-email' => Bootstrap::ADMIN_EMAIL,
'admin-firstname' => Bootstrap::ADMIN_FIRSTNAME,
'admin-lastname' => Bootstrap::ADMIN_LASTNAME,
'amqp-host' => 'localhost',
'amqp-port' => '5672',
'amqp-user' => 'guest',
......
<?php
declare(strict_types=1);
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(
ComponentRegistrar::MODULE,
'Firegento_ContentProvisioning',
__DIR__
);
<?php
/** @var \Firegento\ContentProvisioning\Block\MaintainedContentWarning $block */
/** @var MaintainedContentWarning $block */
use Firegento\ContentProvisioning\Block\MaintainedContentWarning;
?>
<?php if ($block->isMaintained()): ?>
<div class="message-system-short">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment