diff --git a/app/code/Magento/Backend/Console/Command/AbstractCacheCommand.php b/app/code/Magento/Backend/Console/Command/AbstractCacheCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..55cecac162335817125de204e9657bf4be3868fc
--- /dev/null
+++ b/app/code/Magento/Backend/Console/Command/AbstractCacheCommand.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Console\Command;
+
+use Magento\Framework\App\Cache\Manager;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputOption;
+
+abstract class AbstractCacheCommand extends Command
+{
+ /**
+ * Input option bootsrap
+ */
+ const INPUT_KEY_BOOTSTRAP = 'bootstrap';
+
+ /**
+ * CacheManager
+ *
+ * @var Manager
+ */
+ protected $cacheManager;
+
+ /**
+ * Constructor
+ *
+ * @param Manager $cacheManager
+ */
+ public function __construct(Manager $cacheManager)
+ {
+ $this->cacheManager = $cacheManager;
+ parent::__construct();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->addOption(
+ self::INPUT_KEY_BOOTSTRAP,
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'add or override parameters of the bootstrap'
+ );
+ }
+}
diff --git a/app/code/Magento/Backend/Console/Command/AbstractCacheManageCommand.php b/app/code/Magento/Backend/Console/Command/AbstractCacheManageCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..0644e7d41de44aee1d95449a8bc68eb63363b7fd
--- /dev/null
+++ b/app/code/Magento/Backend/Console/Command/AbstractCacheManageCommand.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Console\Command;
+
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+
+abstract class AbstractCacheManageCommand extends AbstractCacheCommand
+{
+ /**
+ * Input argument types
+ */
+ const INPUT_KEY_TYPES = 'types';
+
+ /**
+ * Input key all
+ */
+ const INPUT_KEY_ALL = 'all';
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->addArgument(
+ self::INPUT_KEY_TYPES,
+ InputArgument::IS_ARRAY,
+ 'List of cache types, space separated. If omitted, all caches will be affected'
+ );
+ $this->addOption(
+ self::INPUT_KEY_ALL,
+ null,
+ InputOption::VALUE_NONE,
+ 'All cache types'
+ );
+ parent::configure();
+ }
+
+
+ /**
+ * Get requested cache types
+ *
+ * @param InputInterface $input
+ * @return array
+ */
+ protected function getRequestedTypes(InputInterface $input)
+ {
+ $requestedTypes = [];
+ if ($input->getArgument(self::INPUT_KEY_TYPES)) {
+ $requestedTypes = $input->getArgument(self::INPUT_KEY_TYPES);
+ $requestedTypes = array_filter(array_map('trim', $requestedTypes), 'strlen');
+ }
+ if (empty($requestedTypes)) {
+ return [];
+ } else {
+ $availableTypes = $this->cacheManager->getAvailableTypes();
+ $unsupportedTypes = array_diff($requestedTypes, $availableTypes);
+ if ($unsupportedTypes) {
+ throw new \InvalidArgumentException(
+ "The following requested cache types are not supported: '" . join("', '", $unsupportedTypes)
+ . "'." . PHP_EOL . 'Supported types: ' . join(", ", $availableTypes)
+ );
+ }
+ return array_values(array_intersect($availableTypes, $requestedTypes));
+ }
+ }
+}
diff --git a/app/code/Magento/Backend/Console/Command/AbstractCacheSetCommand.php b/app/code/Magento/Backend/Console/Command/AbstractCacheSetCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..b1330c0de2d05f840c84c3b7f0135d1489cd5847
--- /dev/null
+++ b/app/code/Magento/Backend/Console/Command/AbstractCacheSetCommand.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Console\Command;
+
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+abstract class AbstractCacheSetCommand extends AbstractCacheManageCommand
+{
+ /**
+ * Is enable cache or not
+ *
+ * @return bool
+ */
+ abstract protected function isEnable();
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $isEnable = $this->isEnable();
+ if ($input->getOption(self::INPUT_KEY_ALL)) {
+ $types = $this->cacheManager->getAvailableTypes();
+ } else {
+ $types = $this->getRequestedTypes($input);
+ }
+ $changedTypes = $this->cacheManager->setEnabled($types, $isEnable);
+ if ($changedTypes) {
+ $output->writeln('Changed cache status:');
+ foreach ($changedTypes as $type) {
+ $output->writeln(sprintf('%30s: %d -> %d', $type, !$isEnable, $isEnable));
+ }
+ } else {
+ $output->writeln('There is nothing to change in cache status');
+ }
+ if (!empty($changedTypes) && $isEnable) {
+ $this->cacheManager->clean($changedTypes);
+ $output->writeln('Cleaned cache types:');
+ $output->writeln(join(PHP_EOL, $changedTypes));
+ }
+ }
+}
diff --git a/app/code/Magento/Backend/Console/Command/AbstractCacheTypeManageCommand.php b/app/code/Magento/Backend/Console/Command/AbstractCacheTypeManageCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..79583c2f08a2a6bcd62a0619192d179316bf8fb0
--- /dev/null
+++ b/app/code/Magento/Backend/Console/Command/AbstractCacheTypeManageCommand.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Console\Command;
+
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+abstract class AbstractCacheTypeManageCommand extends AbstractCacheManageCommand
+{
+ /**
+ * Perform a cache management action on cache types
+ *
+ * @param array $cacheTypes
+ * @return void
+ */
+ abstract protected function performAction(array $cacheTypes);
+
+ /**
+ * Get display message
+ *
+ * @return string
+ */
+ abstract protected function getDisplayMessage();
+
+ /**
+ * Perform cache management action
+ *
+ * @param InputInterface $input
+ * @param OutputInterface $output
+ * @return void
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ if ($input->getOption(self::INPUT_KEY_ALL)) {
+ $types = $this->cacheManager->getAvailableTypes();
+ } else {
+ $types = $this->getRequestedTypes($input);
+ }
+ $this->performAction($types);
+ $output->writeln($this->getDisplayMessage());
+ $output->writeln(join(PHP_EOL, $types));
+ }
+}
diff --git a/app/code/Magento/Backend/Console/Command/CacheCleanCommand.php b/app/code/Magento/Backend/Console/Command/CacheCleanCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..ab57f0ff7b578611ee3a64402650aa07ba52219e
--- /dev/null
+++ b/app/code/Magento/Backend/Console/Command/CacheCleanCommand.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Console\Command;
+
+/**
+ * Command for cleaning cache
+ */
+class CacheCleanCommand extends AbstractCacheTypeManageCommand
+{
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('cache:clean');
+ $this->setDescription('Cleans cache type(s)');
+ parent::configure();
+ }
+
+ /**
+ * Cleans cache types
+ *
+ * @param array $cacheTypes
+ * @return void
+ */
+ protected function performAction(array $cacheTypes)
+ {
+ $this->cacheManager->clean($cacheTypes);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function getDisplayMessage()
+ {
+ return 'Cleaned cache types:';
+ }
+}
diff --git a/app/code/Magento/Backend/Console/Command/CacheDisableCommand.php b/app/code/Magento/Backend/Console/Command/CacheDisableCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..a3d94e0b44cc3871d29a24537e427f59ed0bbaef
--- /dev/null
+++ b/app/code/Magento/Backend/Console/Command/CacheDisableCommand.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Console\Command;
+
+/**
+ * Command for disabling cache
+ */
+class CacheDisableCommand extends AbstractCacheSetCommand
+{
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('cache:disable');
+ $this->setDescription('Disables cache type(s)');
+ parent::configure();
+ }
+
+ /**
+ * Is Disable cache
+ *
+ * @return bool
+ */
+ protected function isEnable()
+ {
+ return false;
+ }
+}
diff --git a/app/code/Magento/Backend/Console/Command/CacheEnableCommand.php b/app/code/Magento/Backend/Console/Command/CacheEnableCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..3109cd650e793e23d04992d6836c6078d2bf015a
--- /dev/null
+++ b/app/code/Magento/Backend/Console/Command/CacheEnableCommand.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Console\Command;
+
+/**
+ * Command for enabling cache
+ */
+class CacheEnableCommand extends AbstractCacheSetCommand
+{
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('cache:enable');
+ $this->setDescription('Enables cache type(s)');
+ parent::configure();
+ }
+
+ /**
+ * Is enable cache
+ *
+ * @return bool
+ */
+ protected function isEnable()
+ {
+ return true;
+ }
+}
diff --git a/app/code/Magento/Backend/Console/Command/CacheFlushCommand.php b/app/code/Magento/Backend/Console/Command/CacheFlushCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..c847204de9043e84ded25607e890273441ec0e4e
--- /dev/null
+++ b/app/code/Magento/Backend/Console/Command/CacheFlushCommand.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Console\Command;
+
+/**
+ * Command for flushing cache
+ */
+class CacheFlushCommand extends AbstractCacheTypeManageCommand
+{
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('cache:flush');
+ $this->setDescription('Flushes cache storage used by cache type(s)');
+ parent::configure();
+ }
+
+ /**
+ * Flushes cache types
+ *
+ * @param array $cacheTypes
+ * @return void
+ */
+ protected function performAction(array $cacheTypes)
+ {
+ $this->cacheManager->flush($cacheTypes);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function getDisplayMessage()
+ {
+ return 'Flushed cache types:';
+ }
+}
diff --git a/app/code/Magento/Backend/Console/Command/CacheStatusCommand.php b/app/code/Magento/Backend/Console/Command/CacheStatusCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..445cf42a4cd016cb0d8924e6fdf47fd8aa1c153c
--- /dev/null
+++ b/app/code/Magento/Backend/Console/Command/CacheStatusCommand.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Console\Command;
+
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * Command for checking cache status
+ */
+class CacheStatusCommand extends AbstractCacheCommand
+{
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('cache:status');
+ $this->setDescription('Checks cache status');
+ parent::configure();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $output->writeln('Current status:');
+ foreach ($this->cacheManager->getStatus() as $cache => $status) {
+ $output->writeln(sprintf('%30s: %d', $cache, $status));
+ }
+ }
+}
diff --git a/app/code/Magento/Backend/Test/Unit/Console/Command/CacheCleanCommandTest.php b/app/code/Magento/Backend/Test/Unit/Console/Command/CacheCleanCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..5177df7711e43ef9a90f1072ebfe5b482abe0e1c
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Unit/Console/Command/CacheCleanCommandTest.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Test\Unit\Console\Command;
+
+use Magento\Backend\Console\Command\CacheCleanCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class CacheCleanCommandTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @var \Magento\Framework\App\Cache\Manager|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $cacheManager;
+
+ /**
+ * @var CacheCleanCommand
+ */
+ private $command;
+
+ public function setUp()
+ {
+ $this->cacheManager = $this->getMock('Magento\Framework\App\Cache\Manager', [], [], '', false);
+ $this->command = new CacheCleanCommand($this->cacheManager);
+ }
+
+ public function testExecute()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $this->cacheManager->expects($this->once())->method('clean')->with(['A', 'B']);
+ $param = ['types' => ['A', 'B']];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+ $expect = 'Cleaned cache types:' . PHP_EOL . 'A' . PHP_EOL . 'B' . PHP_EOL;
+ $this->assertEquals($expect, $commandTester->getDisplay());
+ }
+
+ /**
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage The following requested cache types are not supported:
+ */
+ public function testExecuteInvalidCacheType()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $param = ['types' => ['A', 'D']];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+ }
+
+ public function testExecuteAllCacheType()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $this->cacheManager->expects($this->once())->method('clean')->with(['A', 'B', 'C']);
+ $param = ['--all' => true];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+ $expect = 'Cleaned cache types:' . PHP_EOL . 'A' . PHP_EOL . 'B' . PHP_EOL . 'C' . PHP_EOL;
+ $this->assertEquals($expect, $commandTester->getDisplay());
+ }
+}
diff --git a/app/code/Magento/Backend/Test/Unit/Console/Command/CacheDisableCommandTest.php b/app/code/Magento/Backend/Test/Unit/Console/Command/CacheDisableCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..82a477ad924571be565534cc9976e80e0ce2b1ab
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Unit/Console/Command/CacheDisableCommandTest.php
@@ -0,0 +1,97 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Test\Unit\Console\Command;
+
+use Magento\Backend\Console\Command\CacheDisableCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class CacheDisableCommandTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @var \Magento\Framework\App\Cache\Manager|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $cacheManager;
+
+ /**
+ * @var CacheDisableCommand
+ */
+ private $command;
+
+ public function setUp()
+ {
+ $this->cacheManager = $this->getMock('Magento\Framework\App\Cache\Manager', [], [], '', false);
+ $this->command = new CacheDisableCommand($this->cacheManager);
+ }
+
+ public function testExecute()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $this->cacheManager
+ ->expects($this->once())
+ ->method('setEnabled')
+ ->with(['A', 'B'], false)
+ ->willReturn(['A', 'B']);
+ $param = ['types' => ['A', 'B']];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+
+ $expect = 'Changed cache status:' . PHP_EOL;
+ foreach (['A', 'B'] as $cacheType) {
+ $expect .= sprintf('%30s: %d -> %d', $cacheType, true, false) . PHP_EOL;
+ }
+
+ $this->assertEquals($expect, $commandTester->getDisplay());
+ }
+
+ public function testExecuteAll()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $this->cacheManager
+ ->expects($this->once())
+ ->method('setEnabled')
+ ->with(['A', 'B', 'C'], false)
+ ->willReturn(['A', 'B', 'C']);
+ $param = ['--all' => true];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+
+ $expect = 'Changed cache status:' . PHP_EOL;
+ foreach (['A', 'B', 'C'] as $cacheType) {
+ $expect .= sprintf('%30s: %d -> %d', $cacheType, true, false) . PHP_EOL;
+ }
+ $this->assertEquals($expect, $commandTester->getDisplay());
+ }
+
+ public function testExecuteNoChanges()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $this->cacheManager
+ ->expects($this->once())
+ ->method('setEnabled')
+ ->with(['A', 'B'], false)
+ ->willReturn([]);
+ $this->cacheManager->expects($this->never())->method('clean');
+ $param = ['types' => ['A', 'B']];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+
+ $expect = 'There is nothing to change in cache status' . PHP_EOL;
+ $this->assertEquals($expect, $commandTester->getDisplay());
+ }
+
+ /**
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage The following requested cache types are not supported:
+ */
+ public function testExecuteInvalidCacheType()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $param = ['types' => ['A', 'D']];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+ }
+}
diff --git a/app/code/Magento/Backend/Test/Unit/Console/Command/CacheEnableCommandTest.php b/app/code/Magento/Backend/Test/Unit/Console/Command/CacheEnableCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..f5b9ea8e8ec4fa5a88b2aa6a6a7a9fb51b219308
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Unit/Console/Command/CacheEnableCommandTest.php
@@ -0,0 +1,102 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Test\Unit\Console\Command;
+
+use Magento\Backend\Console\Command\CacheEnableCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class CacheEnableCommandTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @var \Magento\Framework\App\Cache\Manager|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $cacheManager;
+
+ /**
+ * @var CacheEnableCommand
+ */
+ private $command;
+
+ public function setUp()
+ {
+ $this->cacheManager = $this->getMock('Magento\Framework\App\Cache\Manager', [], [], '', false);
+ $this->command = new CacheEnableCommand($this->cacheManager);
+ }
+
+ public function testExecute()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $this->cacheManager
+ ->expects($this->once())
+ ->method('setEnabled')
+ ->with(['A', 'B'], true)
+ ->willReturn(['A', 'B']);
+ $this->cacheManager->expects($this->once())->method('clean')->with(['A', 'B']);
+ $param = ['types' => ['A', 'B']];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+
+ $expect = 'Changed cache status:' . PHP_EOL;
+ foreach (['A', 'B'] as $cacheType) {
+ $expect .= sprintf('%30s: %d -> %d', $cacheType, false, true) . PHP_EOL;
+ }
+ $expect .= 'Cleaned cache types:' . PHP_EOL;
+ $expect .= 'A' . PHP_EOL . 'B' . PHP_EOL;
+ $this->assertEquals($expect, $commandTester->getDisplay());
+ }
+
+ public function testExecuteAll()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $this->cacheManager
+ ->expects($this->once())
+ ->method('setEnabled')
+ ->with(['A', 'B', 'C'], true)
+ ->willReturn(['A', 'B', 'C']);
+ $this->cacheManager->expects($this->once())->method('clean')->with(['A', 'B', 'C']);
+ $param = ['--all' => true];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+
+ $expect = 'Changed cache status:' . PHP_EOL;
+ foreach (['A', 'B', 'C'] as $cacheType) {
+ $expect .= sprintf('%30s: %d -> %d', $cacheType, false, true) . PHP_EOL;
+ }
+ $expect .= 'Cleaned cache types:' . PHP_EOL;
+ $expect .= 'A' . PHP_EOL . 'B' . PHP_EOL . 'C' . PHP_EOL;
+ $this->assertEquals($expect, $commandTester->getDisplay());
+ }
+
+ public function testExecuteNoChanges()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $this->cacheManager
+ ->expects($this->once())
+ ->method('setEnabled')
+ ->with(['A', 'B'], true)
+ ->willReturn([]);
+ $this->cacheManager->expects($this->never())->method('clean');
+ $param = ['types' => ['A', 'B']];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+
+ $expect = 'There is nothing to change in cache status' . PHP_EOL;
+ $this->assertEquals($expect, $commandTester->getDisplay());
+ }
+
+ /**
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage The following requested cache types are not supported:
+ */
+ public function testExecuteInvalidCacheType()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $param = ['types' => ['A', 'D']];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+ }
+}
diff --git a/app/code/Magento/Backend/Test/Unit/Console/Command/CacheFlushCommandTest.php b/app/code/Magento/Backend/Test/Unit/Console/Command/CacheFlushCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..b443efd1a93e0c07eeb9e8ea526e4d0812e7e913
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Unit/Console/Command/CacheFlushCommandTest.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Test\Unit\Console\Command;
+
+use Magento\Backend\Console\Command\CacheFlushCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class CacheFlushCommandTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @var \Magento\Framework\App\Cache\Manager|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $cacheManager;
+
+ /**
+ * @var CacheFlushCommand
+ */
+ private $command;
+
+ public function setUp()
+ {
+ $this->cacheManager = $this->getMock('Magento\Framework\App\Cache\Manager', [], [], '', false);
+ $this->command = new CacheFlushCommand($this->cacheManager);
+ }
+
+ public function testExecute()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $this->cacheManager->expects($this->once())->method('flush')->with(['A', 'B']);
+ $param = ['types' => ['A', 'B']];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+ $expect = 'Flushed cache types:' . PHP_EOL . 'A' . PHP_EOL . 'B' . PHP_EOL;
+ $this->assertEquals($expect, $commandTester->getDisplay());
+ }
+
+ /**
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage The following requested cache types are not supported:
+ */
+ public function testExecuteInvalidCacheType()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $param = ['types' => ['A', 'D']];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+ }
+
+ public function testExecuteAllCacheType()
+ {
+ $this->cacheManager->expects($this->once())->method('getAvailableTypes')->willReturn(['A', 'B', 'C']);
+ $this->cacheManager->expects($this->once())->method('flush')->with(['A', 'B', 'C']);
+ $param = ['--all' => true];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($param);
+ $expect = 'Flushed cache types:' . PHP_EOL . 'A' . PHP_EOL . 'B' . PHP_EOL . 'C' . PHP_EOL;
+ $this->assertEquals($expect, $commandTester->getDisplay());
+ }
+}
diff --git a/app/code/Magento/Backend/Test/Unit/Console/Command/CacheStatusCommandTest.php b/app/code/Magento/Backend/Test/Unit/Console/Command/CacheStatusCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..158c2a7783c906bc0ec6181e91985cbd18cc9b6f
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Unit/Console/Command/CacheStatusCommandTest.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Backend\Test\Unit\Console\Command;
+
+use Magento\Backend\Console\Command\CacheStatusCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class CacheStatusCommandTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @var \Magento\Framework\App\Cache\Manager|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $cacheManager;
+
+ /**
+ * @var CacheStatusCommand
+ */
+ private $command;
+
+ public function setUp()
+ {
+ $this->cacheManager = $this->getMock('Magento\Framework\App\Cache\Manager', [], [], '', false);
+ $this->command = new CacheStatusCommand($this->cacheManager);
+ }
+
+ public function testExecute()
+ {
+ $cacheTypes = ['A' => 0, 'B' => 1, 'C' => 1];
+ $this->cacheManager->expects($this->once())->method('getStatus')->willReturn($cacheTypes);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute([]);
+ $expect = 'Current status:' . PHP_EOL;
+ foreach ($cacheTypes as $cacheType => $status) {
+ $expect .= sprintf('%30s: %d', $cacheType, $status) . PHP_EOL;
+ }
+ $this->assertEquals($expect, $commandTester->getDisplay());
+ }
+}
diff --git a/app/code/Magento/Backend/etc/di.xml b/app/code/Magento/Backend/etc/di.xml
index 7660919372b99c4f6b1b7128a8faac43d07b2a1a..a0617b8e645a4ac8bbcfadba57fcb8e139d5a639 100644
--- a/app/code/Magento/Backend/etc/di.xml
+++ b/app/code/Magento/Backend/etc/di.xml
@@ -149,4 +149,15 @@
<argument name="storage" xsi:type="object">Magento\Backend\Model\Session\Quote\Storage</argument>
</arguments>
</type>
+ <type name="Magento\Framework\Console\CommandList">
+ <arguments>
+ <argument name="commands" xsi:type="array">
+ <item name="cacheEnableCommand" xsi:type="object">Magento\Backend\Console\Command\CacheEnableCommand</item>
+ <item name="cacheDisableCommand" xsi:type="object">Magento\Backend\Console\Command\CacheDisableCommand</item>
+ <item name="cacheFlushCommand" xsi:type="object">Magento\Backend\Console\Command\CacheFlushCommand</item>
+ <item name="cacheCleanCommand" xsi:type="object">Magento\Backend\Console\Command\CacheCleanCommand</item>
+ <item name="cacheStatusCommand" xsi:type="object">Magento\Backend\Console\Command\CacheStatusCommand</item>
+ </argument>
+ </arguments>
+ </type>
</config>
diff --git a/app/code/Magento/Developer/Console/Command/CssDeployCommand.php b/app/code/Magento/Developer/Console/Command/CssDeployCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..cb9a34ae543cab553d8ed8a992022df83f75e961
--- /dev/null
+++ b/app/code/Magento/Developer/Console/Command/CssDeployCommand.php
@@ -0,0 +1,235 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Developer\Console\Command;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Magento\Framework\Filesystem;
+use Magento\Framework\View\Asset\Source;
+use Magento\Framework\App\State;
+use Magento\Framework\View\Asset\Repository;
+use Magento\Framework\ObjectManagerInterface;
+use Magento\Framework\App\ObjectManager\ConfigLoader;
+use Magento\Framework\View\Asset\SourceFileGeneratorPool;
+use Magento\Framework\View\Asset\PreProcessor\ChainFactoryInterface;
+use Magento\Framework\App\Filesystem\DirectoryList;
+
+/**
+ * Class CssDeployCommand - collects, processes and publishes source files like LESS or SASS
+ * @SuppressWarnings("PMD.CouplingBetweenObjects")
+ */
+class CssDeployCommand extends Command
+{
+ /**
+ * Locale option key
+ */
+ const LOCALE_OPTION = 'locale';
+
+ /**
+ * Area option key
+ */
+ const AREA_OPTION = 'area';
+
+ /**
+ * Theme option key
+ */
+ const THEME_OPTION = 'theme';
+
+ /**
+ * Type argument key
+ */
+ const TYPE_ARGUMENT = 'type';
+
+ /**
+ * Files argument key
+ */
+ const FILE_ARGUMENT = 'file';
+
+ /**
+ * @var ObjectManagerInterface
+ */
+ private $objectManager;
+
+ /**
+ * @var Repository
+ */
+ private $assetRepo;
+
+ /**
+ * @var ConfigLoader
+ */
+ private $configLoader;
+
+ /**
+ * @var State
+ */
+ private $state;
+
+ /**
+ * @var SourceFileGeneratorPool
+ */
+ private $sourceFileGeneratorPool;
+
+ /**
+ * @var Source
+ */
+ private $assetSource;
+
+ /**
+ * @var ChainFactoryInterface
+ */
+ private $chainFactory;
+
+ /**
+ * @var Filesystem
+ */
+ private $filesystem;
+
+ /**
+ * Inject dependencies
+ *
+ * @param ObjectManagerInterface $objectManager
+ * @param Repository $assetRepo
+ * @param ConfigLoader $configLoader
+ * @param State $state
+ * @param Source $assetSource
+ * @param SourceFileGeneratorPool $sourceFileGeneratorPoll
+ * @param ChainFactoryInterface $chainFactory
+ * @param Filesystem $filesystem
+ */
+ public function __construct(
+ ObjectManagerInterface $objectManager,
+ Repository $assetRepo,
+ ConfigLoader $configLoader,
+ State $state,
+ Source $assetSource,
+ SourceFileGeneratorPool $sourceFileGeneratorPoll,
+ ChainFactoryInterface $chainFactory,
+ Filesystem $filesystem
+ ) {
+ $this->state = $state;
+ $this->objectManager = $objectManager;
+ $this->configLoader = $configLoader;
+ $this->assetRepo = $assetRepo;
+ $this->sourceFileGeneratorPool = $sourceFileGeneratorPoll;
+ $this->assetSource = $assetSource;
+ $this->chainFactory = $chainFactory;
+ $this->filesystem = $filesystem;
+
+ parent::__construct();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('dev:css:deploy')
+ ->setDescription('Collects, processes and publishes source files like LESS or SASS')
+ ->setDefinition([
+ new InputArgument(
+ self::TYPE_ARGUMENT,
+ InputArgument::REQUIRED,
+ 'Type of dynamic stylesheet language: [less|sass]'
+ ),
+ new InputArgument(
+ self::FILE_ARGUMENT,
+ InputArgument::IS_ARRAY,
+ 'Files to pre-process (file should be specified without extension)',
+ ['css/styles-m']
+ ),
+ new InputOption(
+ self::LOCALE_OPTION,
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'Locale',
+ 'en_US'
+ ),
+ new InputOption(
+ self::AREA_OPTION,
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'Area, one of [frontend|adminhtml|doc]',
+ 'frontend'
+ ),
+ new InputOption(
+ self::THEME_OPTION,
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'Theme in format Vendor/theme',
+ 'Magento/blank'
+ ),
+
+ ]);
+
+ parent::configure();
+ }
+
+ /**
+ * {@inheritdoc}
+ * @throws \InvalidArgumentException
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $locale = $input->getOption(self::LOCALE_OPTION);
+
+ if (!preg_match('/^[a-z]{2}_[A-Z]{2}$/', $locale)) {
+ throw new \InvalidArgumentException(
+ $locale . ' argument has invalid value format'
+ );
+ }
+
+ $area = $input->getOption(self::AREA_OPTION);
+ $theme = $input->getOption(self::THEME_OPTION);
+
+ $type = $input->getArgument(self::TYPE_ARGUMENT);
+
+ $this->state->setAreaCode($area);
+ $this->objectManager->configure($this->configLoader->load($area));
+
+ $sourceFileGenerator = $this->sourceFileGeneratorPool->create($type);
+
+ foreach ($input->getArgument(self::FILE_ARGUMENT) as $file) {
+ $file .= '.' . $type;
+
+ $output->writeln("<info>Gathering {$file} sources.</info>");
+
+ $asset = $this->assetRepo->createAsset(
+ $file,
+ [
+ 'area' => $area,
+ 'theme' => $theme,
+ 'locale' => $locale,
+ ]
+ );
+
+ $sourceFile = $this->assetSource->findSource($asset);
+ $content = \file_get_contents($sourceFile);
+
+ $chain = $this->chainFactory->create(
+ [
+ 'asset' => $asset,
+ 'origContent' => $content,
+ 'origContentType' => $asset->getContentType()
+ ]
+ );
+
+ $processedCoreFile = $sourceFileGenerator->generateFileTree($chain);
+
+ $targetDir = $this->filesystem->getDirectoryWrite(DirectoryList::STATIC_VIEW);
+ $rootDir = $this->filesystem->getDirectoryWrite(DirectoryList::ROOT);
+ $source = $rootDir->getRelativePath($processedCoreFile);
+ $destination = $asset->getPath();
+ $rootDir->copyFile($source, $destination, $targetDir);
+
+ $output->writeln("<info>Successfully processed LESS and/or SASS files</info>");
+ }
+ }
+}
diff --git a/app/code/Magento/Developer/Console/Command/DevTestsRunCommand.php b/app/code/Magento/Developer/Console/Command/DevTestsRunCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..a5f5ecf2b744fce4565f49368898371763ff090f
--- /dev/null
+++ b/app/code/Magento/Developer/Console/Command/DevTestsRunCommand.php
@@ -0,0 +1,148 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Developer\Console\Command;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * Class DevTestsRunCommand
+ *
+ * Runs tests (unit, static, integration, etc.)
+ */
+class DevTestsRunCommand extends Command
+{
+ /**
+ * input parameter parameter
+ */
+ const INPUT_ARG_TYPE = 'type';
+
+ /**
+ * command name
+ */
+ const COMMAND_NAME = 'dev:tests:run';
+
+ /**
+ * Maps types (from user input) to phpunit test names
+ *
+ * @var array
+ */
+ private $types;
+
+ /**
+ * Maps phpunit test names to directory and target name
+ *
+ * @var array
+ */
+ private $commands;
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setupTestInfo();
+ $this->setName(self::COMMAND_NAME)
+ ->setDescription('Runs tests');
+
+ $this->addArgument(
+ self::INPUT_ARG_TYPE,
+ InputArgument::OPTIONAL,
+ 'Type of test to run. Available types: ' . implode(', ', array_keys($this->types)),
+ 'default'
+ );
+
+ parent::configure();
+ }
+
+ /**
+ * Run the tests
+ *
+ * @param InputInterface $input
+ * @param OutputInterface $output
+ * @return int Non zero if invalid type, 0 otherwise
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ /* Validate type argument is valid */
+ $type = $input->getArgument(self::INPUT_ARG_TYPE);
+ if (!isset($this->types[$type])) {
+ $output->writeln(
+ 'Invalid type: "' . $type . '". Available types: ' . implode(', ', array_keys($this->types))
+ );
+ return 1;
+ }
+
+ $vendorDir = require BP . '/app/etc/vendor_path.php';
+
+ $failures = [];
+ $runCommands = $this->types[$type];
+ foreach ($runCommands as $key) {
+ list($dir, $options) = $this->commands[$key];
+ $dirName = realpath(BP . '/dev/tests/' . $dir);
+ chdir($dirName);
+ $command = 'php '. BP . '/' . $vendorDir . '/phpunit/phpunit/phpunit ' . $options;
+ $message = $dirName . '> ' . $command;
+ $output->writeln(['', str_pad("---- {$message} ", 70, '-'), '']);
+ passthru($command, $returnVal);
+ if ($returnVal) {
+ $failures[] = $message;
+ }
+ }
+
+ $output->writeln(str_repeat('-', 70));
+ if ($failures) {
+ $output->writeln("FAILED - " . count($failures) . ' of ' . count($runCommands) . ":");
+ foreach ($failures as $message) {
+ $output->writeln(' - ' . $message);
+ }
+ } else {
+ $output->writeln('PASSED (' . count($runCommands) . ')');
+ }
+ return 0;
+ }
+
+ /**
+ * Fills in arrays that link test types to php unit tests and directories.
+ *
+ * @return void
+ */
+ private function setupTestInfo()
+ {
+ $this->commands = [
+ 'unit' => ['../tests/unit', ''],
+ 'unit-performance' => ['../tests/performance/framework/tests/unit', ''],
+ 'unit-static' => ['../tests/static/framework/tests/unit', ''],
+ 'unit-integration' => ['../tests/integration/framework/tests/unit', ''],
+ 'integration' => ['../tests/integration', ''],
+ 'integration-integrity' => ['../tests/integration', ' testsuite/Magento/Test/Integrity'],
+ 'static-default' => ['../tests/static', ''],
+ 'static-legacy' => ['../tests/static', ' testsuite/Magento/Test/Legacy'],
+ 'static-integration-php' => ['../tests/static', ' testsuite/Magento/Test/Php/Exemplar'],
+ 'static-integration-js' => ['../tests/static', ' testsuite/Magento/Test/Js/Exemplar'],
+ ];
+ $this->types = [
+ 'all' => array_keys($this->commands),
+ 'unit' => ['unit', 'unit-performance', 'unit-static', 'unit-integration'],
+ 'integration' => ['integration'],
+ 'integration-all' => ['integration', 'integration-integrity'],
+ 'static' => ['static-default'],
+ 'static-all' => ['static-default', 'static-legacy', 'static-integration-php', 'static-integration-js'],
+ 'integrity' => ['static-default', 'static-legacy', 'integration-integrity'],
+ 'legacy' => ['static-legacy'],
+ 'default' => [
+ 'unit',
+ 'unit-performance',
+ 'unit-static',
+ 'unit-integration',
+ 'integration',
+ 'static-default',
+ ],
+ ];
+ }
+}
diff --git a/app/code/Magento/Developer/Test/Unit/Console/Command/CssDeployCommandTest.php b/app/code/Magento/Developer/Test/Unit/Console/Command/CssDeployCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..e740800579f632a6be6df09193a32dce67e62c82
--- /dev/null
+++ b/app/code/Magento/Developer/Test/Unit/Console/Command/CssDeployCommandTest.php
@@ -0,0 +1,164 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Developer\Test\Unit\Console\Command;
+
+use Magento\Framework\Filesystem;
+use Magento\Framework\View\Asset\Source;
+use Magento\Framework\App\State;
+use Magento\Framework\View\Asset\Repository;
+use Magento\Framework\ObjectManagerInterface;
+use Magento\Framework\App\ObjectManager\ConfigLoader;
+use Magento\Framework\View\Asset\SourceFileGeneratorPool;
+use Magento\Framework\View\Asset\PreProcessor\ChainFactoryInterface;
+use Magento\Developer\Console\Command\CssDeployCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class CssDeployCommandTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @var CssDeployCommand
+ */
+ private $command;
+
+ /**
+ * @var ObjectManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $objectManager;
+
+ /**
+ * @var Repository|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $assetRepo;
+
+ /**
+ * @var ConfigLoader|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $configLoader;
+
+ /**
+ * @var State|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $state;
+
+ /**
+ * @var SourceFileGeneratorPool|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $sourceFileGeneratorPool;
+
+ /**
+ * @var Source|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $assetSource;
+
+ /**
+ * @var ChainFactoryInterface|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $chainFactory;
+
+ /**
+ * @var Filesystem|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $filesystem;
+
+ public function setUp()
+ {
+ $this->objectManager = $this->getMockForAbstractClass('Magento\Framework\ObjectManagerInterface');
+ $this->assetRepo = $this->getMock('Magento\Framework\View\Asset\Repository', [], [], '', false);
+ $this->configLoader = $this->getMock('Magento\Framework\App\ObjectManager\ConfigLoader', [], [], '', false);
+ $this->state = $this->getMock('Magento\Framework\App\State', [], [], '', false);
+ $this->assetSource = $this->getMock('Magento\Framework\View\Asset\Source', [], [], '', false);
+ $this->sourceFileGeneratorPool = $this->getMock(
+ 'Magento\Framework\View\Asset\SourceFileGeneratorPool',
+ [],
+ [],
+ '',
+ false
+ );
+ $this->chainFactory = $this->getMockForAbstractClass(
+ 'Magento\Framework\View\Asset\PreProcessor\ChainFactoryInterface'
+ );
+ $this->filesystem = $this->getMock('Magento\Framework\Filesystem', [], [], '', false);
+
+ $this->command = new CssDeployCommand(
+ $this->objectManager,
+ $this->assetRepo,
+ $this->configLoader,
+ $this->state,
+ $this->assetSource,
+ $this->sourceFileGeneratorPool,
+ $this->chainFactory,
+ $this->filesystem
+ );
+ }
+
+ public function testExecute()
+ {
+ $file = 'css/styles-m' . '.less';
+
+ $this->configLoader->expects($this->once())->method('load')->with('frontend')->willReturn([]);
+ $this->objectManager->expects($this->once())->method('configure');
+ $this->sourceFileGeneratorPool->expects($this->once())
+ ->method('create')
+ ->with('less')
+ ->willReturn($this->getMock('Magento\Framework\Less\FileGenerator', [], [], '', false));
+ $this->assetRepo->expects($this->once())
+ ->method('createAsset')
+ ->with(
+ $file,
+ [
+ 'area' => 'frontend',
+ 'theme' => 'Magento/blank',
+ 'locale' => 'en_US'
+ ]
+ )
+ ->willReturn(
+ $this->getMockForAbstractClass('Magento\Framework\View\Asset\LocalInterface')
+ );
+ $this->assetSource->expects($this->once())->method('findSource')->willReturn('/dev/null');
+
+ $this->chainFactory->expects($this->once())->method('create')->willReturn(
+ $this->getMock('Magento\Framework\View\Asset\PreProcessor\Chain', [], [], '', false)
+ );
+
+ $this->filesystem->expects($this->atLeastOnce())->method('getDirectoryWrite')->willReturn(
+ $this->getMock('\Magento\Framework\Filesystem\Directory\WriteInterface', [], [], '', false)
+ );
+
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute(
+ [
+ 'type' => 'less'
+ ]
+ );
+ $this->assertContains('Successfully processed LESS and/or SASS files', $commandTester->getDisplay());
+ }
+
+ /**
+ * @expectedException \RuntimeException
+ * @expectedExceptionMessage Not enough arguments
+ */
+ public function testExecuteWithoutParameters()
+ {
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute([]);
+ }
+
+ /**
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage WRONG_LOCALE argument has invalid value format
+ */
+ public function testExecuteWithWrongFormat()
+ {
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute(
+ [
+ 'type' => 'less',
+ '--locale' => 'WRONG_LOCALE'
+ ]
+ );
+ }
+}
diff --git a/app/code/Magento/Developer/Test/Unit/Console/Command/DevTestsRunCommandTest.php b/app/code/Magento/Developer/Test/Unit/Console/Command/DevTestsRunCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..d5db9dc5a65fbeb5e2f3611832ec470c5874205f
--- /dev/null
+++ b/app/code/Magento/Developer/Test/Unit/Console/Command/DevTestsRunCommandTest.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Developer\Test\Unit\Console\Command;
+
+use Magento\Developer\Console\Command\DevTestsRunCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+/**
+ * Class DevTestsRunCommandTest
+ *
+ * Tests dev:tests:run command. Only tests error case because DevTestsRunCommand calls phpunit with
+ * passthru, so there is no good way to mock out running the tests.
+ */
+class DevTestsRunCommandTest extends \PHPUnit_Framework_TestCase
+{
+
+ /**
+ * @var DevTestsRunCommand
+ */
+ private $command;
+
+ public function setUp()
+ {
+ $this->command = new DevTestsRunCommand();
+ }
+
+ public function testExecuteBadType()
+ {
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute([DevTestsRunCommand::INPUT_ARG_TYPE => 'bad']);
+ $this->assertContains('Invalid type: "bad"', $commandTester->getDisplay());
+ }
+}
diff --git a/app/code/Magento/Developer/etc/di.xml b/app/code/Magento/Developer/etc/di.xml
index 1a21f191e09094fc0f9275ddabd632807fbdc1ff..94be2446cc1404c4c37cc2c1a740773ba7ba84f1 100644
--- a/app/code/Magento/Developer/etc/di.xml
+++ b/app/code/Magento/Developer/etc/di.xml
@@ -26,4 +26,12 @@
</argument>
</arguments>
</type>
+ <type name="Magento\Framework\Console\CommandList">
+ <arguments>
+ <argument name="commands" xsi:type="array">
+ <item name="dev_tests_run" xsi:type="object">Magento\Developer\Console\Command\DevTestsRunCommand</item>
+ <item name="dev_css_deploy" xsi:type="object">Magento\Developer\Console\Command\CssDeployCommand</item>
+ </argument>
+ </arguments>
+ </type>
</config>
diff --git a/app/code/Magento/Indexer/App/Shell.php b/app/code/Magento/Indexer/App/Shell.php
deleted file mode 100644
index 4fc81d4145176d652472e2f08fc49c4d809620c5..0000000000000000000000000000000000000000
--- a/app/code/Magento/Indexer/App/Shell.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Indexer\App;
-
-use Magento\Framework\App\Bootstrap;
-
-class Shell implements \Magento\Framework\AppInterface
-{
- /**
- * Filename of the entry point script
- *
- * @var string
- */
- protected $entryFileName;
-
- /**
- * @var \Magento\Framework\App\Console\Response
- */
- protected $response;
-
- /**
- * @var \Magento\Indexer\Model\ShellFactory
- */
- protected $shellFactory;
-
- /**
- * @param string $entryFileName
- * @param \Magento\Indexer\Model\ShellFactory $shellFactory
- * @param \Magento\Framework\App\Console\Response $response
- */
- public function __construct(
- $entryFileName,
- \Magento\Indexer\Model\ShellFactory $shellFactory,
- \Magento\Framework\App\Console\Response $response
- ) {
- $this->entryFileName = $entryFileName;
- $this->shellFactory = $shellFactory;
- $this->response = $response;
- }
-
- /**
- * Run application
- *
- * @return \Magento\Framework\App\ResponseInterface
- */
- public function launch()
- {
- /** @var $shell \Magento\Indexer\Model\Shell */
- $shell = $this->shellFactory->create(['entryPoint' => $this->entryFileName]);
- $shell->run();
- if ($shell->hasErrors()) {
- $this->response->setCode(-1);
- } else {
- $this->response->setCode(0);
- }
- return $this->response;
- }
-
- /**
- * {@inheritdoc}
- */
- public function catchException(Bootstrap $bootstrap, \Exception $exception)
- {
- return false;
- }
-}
diff --git a/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php b/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..36f9ec1dd5b273cb2b94efaa0266afb2495e09e8
--- /dev/null
+++ b/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php
@@ -0,0 +1,67 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Console\Command;
+
+use Symfony\Component\Console\Command\Command;
+use Magento\Indexer\Model\IndexerFactory;
+use Magento\Indexer\Model\Indexer\CollectionFactory;
+use Magento\Indexer\Model\IndexerInterface;
+use Magento\Indexer\Model\Indexer;
+use Magento\Store\Model\StoreManager;
+use Magento\Framework\App\ObjectManagerFactory;
+
+/**
+ * An Abstract class for Indexer related commands.
+ */
+abstract class AbstractIndexerCommand extends Command
+{
+ /**#@+
+ * Names of input arguments or options
+ */
+ const INPUT_KEY_ALL = 'all';
+ const INPUT_KEY_INDEXERS = 'index';
+ /**#@- */
+
+ /**
+ * Collection of Indexers factory
+ *
+ * @var CollectionFactory
+ */
+ protected $collectionFactory;
+
+ /**
+ * Indexer factory
+ *
+ * @var IndexerFactory
+ */
+ protected $indexerFactory;
+
+ /**
+ * Constructor
+ * @param ObjectManagerFactory $objectManagerFactory
+ */
+ public function __construct(ObjectManagerFactory $objectManagerFactory)
+ {
+ $params = $_SERVER;
+ $params[StoreManager::PARAM_RUN_CODE] = 'admin';
+ $params[StoreManager::PARAM_RUN_TYPE] = 'store';
+ $objectManager = $objectManagerFactory->create($params);
+ $this->collectionFactory = $objectManager->create('Magento\Indexer\Model\Indexer\CollectionFactory');
+ $this->indexerFactory = $objectManager->create('Magento\Indexer\Model\IndexerFactory');
+ parent::__construct();
+ }
+
+ /**
+ * Returns all indexers
+ *
+ * @return IndexerInterface[]
+ */
+ protected function getAllIndexers()
+ {
+ /** @var Indexer[] $indexers */
+ return $this->collectionFactory->create()->getItems();
+ }
+}
diff --git a/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php b/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..0105728d25404c8673aa2221f7f0e6cf6cc38753
--- /dev/null
+++ b/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Console\Command;
+
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Input\InputArgument;
+use Magento\Indexer\Model\IndexerInterface;
+
+/**
+ * An Abstract class for all Indexer related commands.
+ */
+abstract class AbstractIndexerManageCommand extends AbstractIndexerCommand
+{
+ /**
+ * Gets list of indexers
+ *
+ * @param InputInterface $input
+ * @param OutputInterface $output
+ * @return IndexerInterface[]
+ */
+ protected function getIndexers(InputInterface $input, OutputInterface $output)
+ {
+ $inputArguments = $input->getArgument(self::INPUT_KEY_INDEXERS);
+ if (isset($inputArguments) && sizeof($inputArguments)>0) {
+ $indexers = [];
+ foreach ($inputArguments as $code) {
+ $indexer = $this->indexerFactory->create();
+ try {
+ $indexer->load($code);
+ $indexers[] = $indexer;
+ } catch (\Exception $e) {
+ $output->writeln('Warning: Unknown indexer with code ' . trim($code));
+ }
+ }
+ } else {
+ $indexers = $this->getAllIndexers();
+ }
+ return $indexers;
+ }
+
+ /**
+ * Get list of options and arguments for the command
+ *
+ * @return mixed
+ */
+ public function getInputList()
+ {
+ return [
+ new InputOption(self::INPUT_KEY_ALL, 'a', InputOption::VALUE_NONE, 'All Indexes'),
+ new InputArgument(
+ self::INPUT_KEY_INDEXERS,
+ InputArgument::OPTIONAL | InputArgument::IS_ARRAY,
+ 'List of Indexes'
+ ),
+ ];
+ }
+}
diff --git a/app/code/Magento/Indexer/Console/Command/IndexerInfoCommand.php b/app/code/Magento/Indexer/Console/Command/IndexerInfoCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..e0b724a2b1e82e098d15e6ad19ea8a45ca1a3421
--- /dev/null
+++ b/app/code/Magento/Indexer/Console/Command/IndexerInfoCommand.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Console\Command;
+
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * Command for displaying information related to indexers.
+ */
+class IndexerInfoCommand extends AbstractIndexerCommand
+{
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('indexer:info')->setDescription('Shows allowed Indexers');
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $indexers = $this->getAllIndexers();
+ foreach ($indexers as $indexer) {
+ $output->writeln(sprintf('%-40s %s', $indexer->getId(), $indexer->getTitle()));
+ }
+ }
+}
diff --git a/app/code/Magento/Indexer/Console/Command/IndexerReindexCommand.php b/app/code/Magento/Indexer/Console/Command/IndexerReindexCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..b52d1da6154e1288a14c414d8b2765a2afcb653d
--- /dev/null
+++ b/app/code/Magento/Indexer/Console/Command/IndexerReindexCommand.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Console\Command;
+
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * Command for reindexing indexers.
+ */
+class IndexerReindexCommand extends AbstractIndexerManageCommand
+{
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('indexer:reindex')
+ ->setDescription(
+ 'Reindexes Data'
+ )->setDefinition($this->getInputList());
+ parent::configure();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $indexers = $this->getIndexers($input, $output);
+ foreach ($indexers as $indexer) {
+ try {
+ $startTime = microtime(true);
+ $indexer->reindexAll();
+ $resultTime = microtime(true) - $startTime;
+ $output->writeln(
+ $indexer->getTitle() . ' index has been rebuilt successfully in ' . gmdate('H:i:s', $resultTime)
+ );
+ } catch (\Magento\Framework\Exception\LocalizedException $e) {
+ $output->writeln($e->getMessage());
+ } catch (\Exception $e) {
+ $output->writeln($indexer->getTitle() . ' indexer process unknown error:');
+ $output->writeln($e->getMessage());
+ }
+ }
+ }
+}
diff --git a/app/code/Magento/Indexer/Console/Command/IndexerSetModeCommand.php b/app/code/Magento/Indexer/Console/Command/IndexerSetModeCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..e5901edc53d588da92892863b25d821298df3064
--- /dev/null
+++ b/app/code/Magento/Indexer/Console/Command/IndexerSetModeCommand.php
@@ -0,0 +1,110 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Console\Command;
+
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Input\InputArgument;
+
+/**
+ * Command for setting index mode for indexers.
+ */
+class IndexerSetModeCommand extends AbstractIndexerManageCommand
+{
+ /**#@+
+ * Names of input arguments or options
+ */
+ const INPUT_KEY_MODE = 'mode';
+ const INPUT_KEY_REALTIME = 'realtime';
+ const INPUT_KEY_SCHEDULE = 'schedule';
+ /**#@- */
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('indexer:set-mode')
+ ->setDescription(
+ 'Sets index mode type'
+ )->setDefinition($this->getInputList());
+ parent::configure();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $errors = $this->validate($input);
+ if ($errors) {
+ throw new \InvalidArgumentException(implode("\n", $errors));
+ }
+
+ $indexers = $this->getIndexers($input, $output);
+
+ foreach ($indexers as $indexer) {
+ try {
+ $previousStatus = $indexer->isScheduled() ? 'Update by Schedule' : 'Update on Save';
+ $indexer->setScheduled($input->getArgument(self::INPUT_KEY_MODE) === self::INPUT_KEY_SCHEDULE);
+ $currentStatus = $indexer->isScheduled() ? 'Update by Schedule' : 'Update on Save';
+ if ($previousStatus !== $currentStatus) {
+ $output->writeln(
+ 'Index mode for Indexer ' . $indexer->getTitle() . ' was changed from \''
+ . $previousStatus . '\' to \'' . $currentStatus . '\''
+ );
+ } else {
+ $output->writeln('Index mode for Indexer ' . $indexer->getTitle() . ' has not been changed');
+ }
+ } catch (\Magento\Framework\Exception\LocalizedException $e) {
+ $output->writeln($e->getMessage() . PHP_EOL);
+ } catch (\Exception $e) {
+ $output->writeln($indexer->getTitle() . " indexer process unknown error:" . PHP_EOL);
+ $output->writeln($e->getMessage() . PHP_EOL);
+ }
+ }
+
+ return $this;
+ }
+
+ /**
+ * Get list of arguments for the command
+ *
+ * @return InputOption[]
+ */
+ public function getInputList()
+ {
+ $modeOptions[] = new InputArgument(
+ self::INPUT_KEY_MODE,
+ InputArgument::OPTIONAL,
+ 'Indexer mode type ['. self::INPUT_KEY_REALTIME . '|' . self::INPUT_KEY_SCHEDULE .']'
+ );
+ $optionsList = array_merge($modeOptions, parent::getInputList());
+ return $optionsList;
+ }
+
+ /**
+ * Check if all admin options are provided
+ *
+ * @param InputInterface $input
+ * @return string[]
+ */
+ public function validate(InputInterface $input)
+ {
+ $errors = [];
+ $acceptedValues = ' Accepted values for ' . self::INPUT_KEY_MODE . ' are \''
+ . self::INPUT_KEY_REALTIME . '\' or \'' . self::INPUT_KEY_SCHEDULE . '\'';
+
+ $inputMode = $input->getArgument(self::INPUT_KEY_MODE);
+ if (!$inputMode) {
+ $errors[] = 'Missing argument \'' . self::INPUT_KEY_MODE .'\'.' . $acceptedValues;
+ } elseif (!in_array($inputMode, [self::INPUT_KEY_REALTIME, self::INPUT_KEY_SCHEDULE])) {
+ $errors[] = $acceptedValues;
+ }
+ return $errors;
+ }
+}
diff --git a/app/code/Magento/Indexer/Console/Command/IndexerShowModeCommand.php b/app/code/Magento/Indexer/Console/Command/IndexerShowModeCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..35c3886de1e72fff56b3ec7013a599cab4956282
--- /dev/null
+++ b/app/code/Magento/Indexer/Console/Command/IndexerShowModeCommand.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Console\Command;
+
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * Command for displaying current index mode for indexers.
+ */
+class IndexerShowModeCommand extends AbstractIndexerManageCommand
+{
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('indexer:show-mode')
+ ->setDescription('Shows Index Mode')
+ ->setDefinition($this->getInputList());
+ parent::configure();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $indexers = $this->getIndexers($input, $output);
+ foreach ($indexers as $indexer) {
+ $status = $indexer->isScheduled() ? 'Update by Schedule' : 'Update on Save';
+ $output->writeln(sprintf('%-50s ', $indexer->getTitle() . ':') . $status);
+ }
+ }
+}
diff --git a/app/code/Magento/Indexer/Console/Command/IndexerStatusCommand.php b/app/code/Magento/Indexer/Console/Command/IndexerStatusCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..6eda0f852453d7278c818c85f23628b817c31143
--- /dev/null
+++ b/app/code/Magento/Indexer/Console/Command/IndexerStatusCommand.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Console\Command;
+
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * Command for displaying status of indexers.
+ */
+class IndexerStatusCommand extends AbstractIndexerManageCommand
+{
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('indexer:status')
+ ->setDescription('Shows status of Indexer')
+ ->setDefinition($this->getInputList());
+ parent::configure();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $indexers = $this->getIndexers($input, $output);
+ foreach ($indexers as $indexer) {
+ $status = 'unknown';
+ switch ($indexer->getStatus()) {
+ case \Magento\Indexer\Model\Indexer\State::STATUS_VALID:
+ $status = 'Ready';
+ break;
+ case \Magento\Indexer\Model\Indexer\State::STATUS_INVALID:
+ $status = 'Reindex required';
+ break;
+ case \Magento\Indexer\Model\Indexer\State::STATUS_WORKING:
+ $status = 'Processing';
+ break;
+ }
+ $output->writeln(sprintf('%-50s ', $indexer->getTitle() . ':') . $status);
+ }
+ }
+}
diff --git a/app/code/Magento/Indexer/Model/Shell.php b/app/code/Magento/Indexer/Model/Shell.php
deleted file mode 100644
index 37509102c38f05e49c954d9465b455b62cbf9f69..0000000000000000000000000000000000000000
--- a/app/code/Magento/Indexer/Model/Shell.php
+++ /dev/null
@@ -1,248 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Indexer\Model;
-
-class Shell extends \Magento\Framework\App\AbstractShell
-{
- /**
- * Error status - whether errors have happened
- *
- * @var bool
- */
- protected $hasErrors = false;
-
- /**
- * @var Indexer\CollectionFactory
- */
- protected $indexersFactory;
-
- /**
- * @var IndexerFactory
- */
- protected $indexerFactory;
-
- /**
- * @param \Magento\Framework\Filesystem $filesystem
- * @param string $entryPoint
- * @param Indexer\CollectionFactory $indexersFactory
- * @param IndexerFactory $indexerFactory
- */
- public function __construct(
- \Magento\Framework\Filesystem $filesystem,
- $entryPoint,
- Indexer\CollectionFactory $indexersFactory,
- IndexerFactory $indexerFactory
- ) {
- $this->indexersFactory = $indexersFactory;
- $this->indexerFactory = $indexerFactory;
- parent::__construct($filesystem, $entryPoint);
- }
-
- /**
- * Run this model, assumed to be run by command-line
- *
- * @return \Magento\Indexer\Model\Shell
- */
- public function run()
- {
- if ($this->_showHelp()) {
- return $this;
- }
-
- if ($this->getArg('info')) {
- $this->runShowInfo();
- } elseif ($this->getArg('status') || $this->getArg('mode')) {
- $this->runShowStatusOrMode();
- } elseif ($this->getArg('mode-realtime') || $this->getArg('mode-schedule')) {
- $this->runSetMode();
- } elseif ($this->getArg('reindex') || $this->getArg('reindexall')) {
- $this->runReindex();
- } else {
- echo $this->getUsageHelp();
- }
-
- return $this;
- }
-
- /**
- * Show information about indexes
- *
- * @return \Magento\Indexer\Model\Shell
- */
- protected function runShowInfo()
- {
- $indexers = $this->parseIndexerString('all');
- foreach ($indexers as $indexer) {
- echo sprintf('%-40s', $indexer->getId());
- echo $indexer->getTitle() . PHP_EOL;
- }
-
- return $this;
- }
-
- /**
- * Show information about statuses or modes
- *
- * @return \Magento\Indexer\Model\Shell
- */
- protected function runShowStatusOrMode()
- {
- if ($this->getArg('status')) {
- $indexers = $this->parseIndexerString($this->getArg('status'));
- } else {
- $indexers = $this->parseIndexerString($this->getArg('mode'));
- }
-
- foreach ($indexers as $indexer) {
- $status = 'unknown';
- if ($this->getArg('status')) {
- switch ($indexer->getStatus()) {
- case \Magento\Indexer\Model\Indexer\State::STATUS_VALID:
- $status = 'Ready';
- break;
- case \Magento\Indexer\Model\Indexer\State::STATUS_INVALID:
- $status = 'Reindex required';
- break;
- case \Magento\Indexer\Model\Indexer\State::STATUS_WORKING:
- $status = 'Processing';
- break;
- }
- } else {
- $status = $indexer->isScheduled() ? 'Update by Schedule' : 'Update on Save';
- }
- echo sprintf('%-50s ', $indexer->getTitle() . ':') . $status . PHP_EOL;
- }
-
- return $this;
- }
-
- /**
- * Set new mode for indexers
- *
- * @return \Magento\Indexer\Model\Shell
- */
- protected function runSetMode()
- {
- if ($this->getArg('mode-realtime')) {
- $method = 'turnViewOff';
- $indexers = $this->parseIndexerString($this->getArg('mode-realtime'));
- } else {
- $method = 'turnViewOn';
- $indexers = $this->parseIndexerString($this->getArg('mode-schedule'));
- }
-
- foreach ($indexers as $indexer) {
- try {
- $indexer->{$method}();
- echo $indexer->getTitle() . " indexer was successfully changed index mode" . PHP_EOL;
- } catch (\Magento\Framework\Exception\LocalizedException $e) {
- echo $e->getMessage() . PHP_EOL;
- $this->hasErrors = true;
- } catch (\Exception $e) {
- echo $indexer->getTitle() . " indexer process unknown error:" . PHP_EOL;
- echo $e . PHP_EOL;
- $this->hasErrors = true;
- }
- }
-
- return $this;
- }
-
- /**
- * Reindex indexer(s)
- *
- * @return \Magento\Indexer\Model\Shell
- */
- protected function runReindex()
- {
- if ($this->getArg('reindex')) {
- $indexers = $this->parseIndexerString($this->getArg('reindex'));
- } else {
- $indexers = $this->parseIndexerString('all');
- }
-
- foreach ($indexers as $indexer) {
- try {
- $startTime = microtime(true);
- $indexer->reindexAll();
- $resultTime = microtime(true) - $startTime;
- echo $indexer->getTitle() . ' index has been rebuilt successfully in '
- . gmdate('H:i:s', $resultTime) . PHP_EOL;
- } catch (\Magento\Framework\Exception\LocalizedException $e) {
- echo $e->getMessage() . PHP_EOL;
- $this->hasErrors = true;
- } catch (\Exception $e) {
- echo $indexer->getTitle() . ' indexer process unknown error:' . PHP_EOL;
- echo $e . PHP_EOL;
- $this->hasErrors = true;
- }
- }
-
- return $this;
- }
-
- /**
- * Parses string with indexers and return array of indexer instances
- *
- * @param string $string
- * @return IndexerInterface[]
- */
- protected function parseIndexerString($string)
- {
- $indexers = [];
- if ($string == 'all') {
- /** @var Indexer[] $indexers */
- $indexers = $this->indexersFactory->create()->getItems();
- } elseif (!empty($string)) {
- $codes = explode(',', $string);
- foreach ($codes as $code) {
- $indexer = $this->indexerFactory->create();
- try {
- $indexer->load($code);
- $indexers[] = $indexer;
- } catch (\Exception $e) {
- echo 'Warning: Unknown indexer with code ' . trim($code) . PHP_EOL;
- $this->hasErrors = true;
- }
- }
- }
- return $indexers;
- }
-
- /**
- * Return whether there errors have happened
- *
- * @return bool
- */
- public function hasErrors()
- {
- return $this->hasErrors;
- }
-
- /**
- * Retrieves usage help message
- *
- * @return string
- */
- public function getUsageHelp()
- {
- return <<<USAGE
-Usage: php -f {$this->_entryPoint} -- [options]
-
- --status <indexer> Show Indexer(s) Status
- --mode <indexer> Show Indexer(s) Index Mode
- --mode-realtime <indexer> Set index mode type "Update on Save"
- --mode-schedule <indexer> Set index mode type "Update by Schedule"
- --reindex <indexer> Reindex Data
- info Show allowed indexers
- reindexall Reindex Data by all indexers
- help This help
-
- <indexer> Comma separated indexer codes or value "all" for all indexers
-
-USAGE;
- }
-}
diff --git a/app/code/Magento/Indexer/Test/Unit/App/ShellTest.php b/app/code/Magento/Indexer/Test/Unit/App/ShellTest.php
deleted file mode 100644
index d86b89477a9e78a8da96bc3f70d6c469fc39d099..0000000000000000000000000000000000000000
--- a/app/code/Magento/Indexer/Test/Unit/App/ShellTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Indexer\Test\Unit\App;
-
-class ShellTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var \Magento\Indexer\App\Shell
- */
- protected $entryPoint;
-
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $shellFactoryMock;
-
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $responseMock;
-
- protected function setUp()
- {
- $this->shellFactoryMock = $this->getMock(
- 'Magento\Indexer\Model\ShellFactory',
- ['create'],
- [],
- '',
- false
- );
- $this->responseMock = $this->getMock('Magento\Framework\App\Console\Response', [], [], '', false);
- $this->entryPoint = new \Magento\Indexer\App\Shell(
- 'indexer.php',
- $this->shellFactoryMock,
- $this->responseMock
- );
- }
-
- /**
- * @param boolean $shellHasErrors
- * @dataProvider processRequestDataProvider
- */
- public function testProcessRequest($shellHasErrors)
- {
- $shell = $this->getMock('Magento\Indexer\Model\Shell', [], [], '', false);
- $shell->expects($this->once())->method('hasErrors')->will($this->returnValue($shellHasErrors));
- $shell->expects($this->once())->method('run');
- $this->shellFactoryMock->expects($this->any())->method('create')->will($this->returnValue($shell));
-
- $this->entryPoint->launch();
- }
-
- /**
- * @return array
- */
- public function processRequestDataProvider()
- {
- return [[true], [false]];
- }
-
- public function testCatchException()
- {
- $bootstrap = $this->getMock('Magento\Framework\App\Bootstrap', [], [], '', false);
- $this->assertFalse($this->entryPoint->catchException($bootstrap, new \Exception()));
- }
-}
diff --git a/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerCommandCommonTestSetup.php b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerCommandCommonTestSetup.php
new file mode 100644
index 0000000000000000000000000000000000000000..323e8c9be7a45d5520311a6fc00e13d07073ef56
--- /dev/null
+++ b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerCommandCommonTestSetup.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Test\Unit\Console\Command;
+
+use Magento\Framework\App\ObjectManagerFactory;
+
+class IndexerCommandCommonTestSetup extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @var \PHPUnit_Framework_MockObject_MockObject|IndexerFactory
+ */
+ protected $indexerFactory;
+
+ /**
+ * @var \PHPUnit_Framework_MockObject_MockObject|CollectionFactory
+ */
+ protected $collectionFactory;
+
+ /**
+ * @var \PHPUnit_Framework_MockObject_MockObject|ObjectManagerFactory
+ */
+ protected $objectManagerFactory;
+
+ protected function setUp()
+ {
+ $this->objectManagerFactory = $this->getMock('Magento\Framework\App\ObjectManagerFactory', [], [], '', false);
+ $objectManager = $this->getMockForAbstractClass('Magento\Framework\ObjectManagerInterface');
+
+ $this->collectionFactory = $this->getMock(
+ 'Magento\Indexer\Model\Indexer\CollectionFactory',
+ [],
+ [],
+ '',
+ false
+ );
+ $this->indexerFactory = $this->getMock('Magento\Indexer\Model\IndexerFactory', [], [], '', false);
+
+ $objectManager
+ ->expects($this->exactly(2))
+ ->method('create')
+ ->will($this->returnValueMap([
+ ['Magento\Indexer\Model\Indexer\CollectionFactory', [], $this->collectionFactory],
+ ['Magento\Indexer\Model\IndexerFactory', [], $this->indexerFactory],
+ ]));
+
+ $this->objectManagerFactory->expects($this->once())->method('create')->willReturn($objectManager);
+ }
+}
diff --git a/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerInfoCommandTest.php b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerInfoCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..2f6da06042dd634065895283c8250a8234684180
--- /dev/null
+++ b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerInfoCommandTest.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Test\Unit\Console\Command;
+
+use Magento\Indexer\Console\Command\IndexerInfoCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class IndexerInfoCommandTest extends IndexerCommandCommonTestSetup
+{
+ /**
+ * Command being tested
+ *
+ * @var IndexerInfoCommand
+ */
+ private $command;
+
+ public function testExecute()
+ {
+ $collection = $this->getMock('Magento\Indexer\Model\Indexer\Collection', [], [], '', false);
+ $indexerOne = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerOne->expects($this->once())->method('getId')->willReturn('id_indexerOne');
+ $indexerOne->expects($this->once())->method('getTitle')->willReturn('Title_indexerOne');
+ $collection->expects($this->once())->method('getItems')->willReturn([$indexerOne]);
+
+ $this->collectionFactory->expects($this->once())->method('create')->will($this->returnValue($collection));
+ $this->indexerFactory->expects($this->never())->method('create');
+ $this->command = new IndexerInfoCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute([]);
+ $actualValue = $commandTester->getDisplay();
+ $this->assertSame(sprintf('%-40s %s', 'id_indexerOne', 'Title_indexerOne') . PHP_EOL, $actualValue);
+ }
+}
diff --git a/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerReindexCommandTest.php b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerReindexCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..80eb1d9c2f84fc87da14881672f91c48be33e90e
--- /dev/null
+++ b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerReindexCommandTest.php
@@ -0,0 +1,110 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Test\Unit\Console\Command;
+
+use Magento\Indexer\Console\Command\IndexerReindexCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class IndexerReindexCommandTest extends IndexerCommandCommonTestSetup
+{
+ /**
+ * Command being tested
+ *
+ * @var IndexerReindexCommand
+ */
+ private $command;
+
+ public function testGetOptions()
+ {
+ $this->command = new IndexerReindexCommand($this->objectManagerFactory);
+ $optionsList = $this->command->getInputList();
+ $this->assertSame(2, sizeof($optionsList));
+ $this->assertSame('all', $optionsList[0]->getName());
+ $this->assertSame('index', $optionsList[1]->getName());
+ }
+
+ public function testExecuteAll()
+ {
+ $collection = $this->getMock('Magento\Indexer\Model\Indexer\Collection', [], [], '', false);
+ $indexerOne = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerOne->expects($this->once())->method('getTitle')->willReturn('Title_indexerOne');
+ $collection->expects($this->once())->method('getItems')->willReturn([$indexerOne]);
+
+ $this->collectionFactory->expects($this->once())->method('create')->will($this->returnValue($collection));
+ $this->indexerFactory->expects($this->never())->method('create');
+ $this->command = new IndexerReindexCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute([]);
+ $actualValue = $commandTester->getDisplay();
+ $this->assertStringStartsWith('Title_indexerOne index has been rebuilt successfully in', $actualValue);
+ }
+
+ public function testExecuteWithIndex()
+ {
+ $indexerOne = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerOne->expects($this->once())->method('reindexAll');
+ $indexerOne->expects($this->once())->method('getTitle')->willReturn('Title_indexerOne');
+ $indexerOne->expects($this->once())->method('load')->with('id_indexerOne')->willReturn($indexerOne);
+
+ $indexerTwo = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerTwo->expects($this->once())->method('reindexAll');
+ $indexerTwo->expects($this->once())->method('getTitle')->willReturn('Title_indexerTwo');
+ $indexerTwo->expects($this->once())->method('load')->with('id_indexerTwo')->willReturn($indexerTwo);
+
+ $this->collectionFactory->expects($this->never())->method('create');
+ $this->indexerFactory->expects($this->at(0))->method('create')->willReturn($indexerOne);
+ $this->indexerFactory->expects($this->at(1))->method('create')->willReturn($indexerTwo);
+ $this->command = new IndexerReindexCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute(['index' => ['id_indexerOne', 'id_indexerTwo']]);
+ $actualValue = $commandTester->getDisplay();
+ $this->assertStringStartsWith('Title_indexerOne index has been rebuilt successfully in', $actualValue);
+ }
+
+ public function testExecuteWithLocalizedException()
+ {
+ $indexerOne = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $localizedException = new \Magento\Framework\Exception\LocalizedException(__('Some Exception Message'));
+ $indexerOne->expects($this->once())->method('reindexAll')->will($this->throwException($localizedException));
+ $this->collectionFactory->expects($this->never())->method('create');
+ $this->indexerFactory->expects($this->once())->method('create')->willReturn($indexerOne);
+ $this->command = new IndexerReindexCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute(['index' => ['id_indexerOne']]);
+ $actualValue = $commandTester->getDisplay();
+ $this->assertStringStartsWith('Some Exception Message', $actualValue);
+ }
+
+ public function testExecuteWithException()
+ {
+ $indexerOne = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $exception = new \Exception();
+ $indexerOne->expects($this->once())->method('reindexAll')->will($this->throwException($exception));
+ $indexerOne->expects($this->once())->method('getTitle')->willReturn('Title_indexerOne');
+ $this->collectionFactory->expects($this->never())->method('create');
+ $this->indexerFactory->expects($this->once())->method('create')->willReturn($indexerOne);
+ $this->command = new IndexerReindexCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute(['index' => ['id_indexerOne']]);
+ $actualValue = $commandTester->getDisplay();
+ $this->assertStringStartsWith('Title_indexerOne indexer process unknown error:', $actualValue);
+ }
+
+ public function testExecuteWithExceptionInLoad()
+ {
+ $indexerOne = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $exception = new \Exception();
+ $indexerOne->expects($this->once())->method('load')->will($this->throwException($exception));
+ $indexerOne->expects($this->never())->method('getTitle');
+ $this->collectionFactory->expects($this->never())->method('create');
+ $this->indexerFactory->expects($this->once())->method('create')->willReturn($indexerOne);
+ $this->command = new IndexerReindexCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute(['index' => ['id_indexerOne']]);
+ $actualValue = $commandTester->getDisplay();
+ $this->assertStringStartsWith('Warning: Unknown indexer with code', $actualValue);
+ }
+}
diff --git a/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerSetModeCommandTest.php b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerSetModeCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..dcd345dc6ffe505a1f3049c48faff5f784d39fcb
--- /dev/null
+++ b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerSetModeCommandTest.php
@@ -0,0 +1,176 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Test\Unit\Console\Command;
+
+use Magento\Indexer\Console\Command\IndexerSetModeCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+/**
+ * Command for updating installed application after the code base has changed
+ */
+class IndexerSetModeCommandTest extends IndexerCommandCommonTestSetup
+{
+ /**
+ * Command being tested
+ *
+ * @var IndexerSetModeCommand
+ */
+ private $command;
+
+ public function testGetOptions()
+ {
+ $this->command = new IndexerSetModeCommand($this->objectManagerFactory);
+ $optionsList = $this->command->getInputList();
+ $this->assertSame(3, sizeof($optionsList));
+ $this->assertSame('mode', $optionsList[0]->getName());
+ $this->assertSame('all', $optionsList[1]->getName());
+ $this->assertSame('index', $optionsList[2]->getName());
+ }
+
+ /**
+ * @expectedException InvalidArgumentException
+ * @expectedExceptionMessage Missing argument 'mode'. Accepted values for mode are 'realtime' or 'schedule'
+ */
+ public function testExecuteInvalidArgument()
+ {
+ $this->command = new IndexerSetModeCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute([]);
+ }
+
+ /**
+ * @expectedException InvalidArgumentException
+ * @expectedExceptionMessage Accepted values for mode are 'realtime' or 'schedule'
+ */
+ public function testExecuteInvalidMode()
+ {
+ $this->command = new IndexerSetModeCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute(['mode' => 'wrong_mode']);
+ }
+
+ public function testExecuteAll()
+ {
+ $collection = $this->getMock('Magento\Indexer\Model\Indexer\Collection', [], [], '', false);
+ $indexerOne = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+
+ $indexerOne->expects($this->at(0))->method('isScheduled')->willReturn(true);
+ $indexerOne->expects($this->at(2))->method('isScheduled')->willReturn(false);
+
+ $indexerOne->expects($this->once())->method('setScheduled')->with(false);
+ $indexerOne->expects($this->once())->method('getTitle')->willReturn('Title_indexerOne');
+ $collection->expects($this->once())->method('getItems')->willReturn([$indexerOne]);
+
+ $this->collectionFactory->expects($this->once())->method('create')->will($this->returnValue($collection));
+ $this->indexerFactory->expects($this->never())->method('create');
+ $this->command = new IndexerSetModeCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute(['mode' => 'realtime']);
+ $actualValue = $commandTester->getDisplay();
+ $this->assertSame(
+ 'Index mode for Indexer Title_indexerOne was changed from '. '\'Update by Schedule\' to \'Update on Save\''
+ . PHP_EOL,
+ $actualValue
+ );
+ }
+
+ /**
+ * @param bool $isScheduled
+ * @param bool $previous
+ * @param bool $current
+ * @param string $mode
+ * @param $expectedValue
+ * @dataProvider executeWithIndexDataProvider
+ */
+ public function testExecuteWithIndex($isScheduled, $previous, $current, $mode, $expectedValue)
+ {
+ $indexerOne = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerOne->expects($this->once())->method('getTitle')->willReturn('Title_indexerOne');
+ $indexerOne->expects($this->once())->method('load')->with('id_indexerOne')->willReturn($indexerOne);
+ $indexerOne->expects($this->once())->method('setScheduled')->with($isScheduled);
+ $indexerOne->expects($this->at(1))->method('isScheduled')->willReturn($previous);
+ $indexerOne->expects($this->at(3))->method('isScheduled')->willReturn($current);
+
+ $this->collectionFactory->expects($this->never())->method('create');
+ $this->indexerFactory->expects($this->once())->method('create')->willReturn($indexerOne);
+
+ $this->command = new IndexerSetModeCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute(['mode' => $mode, 'index' => ['id_indexerOne']]);
+ $actualValue = $commandTester->getDisplay();
+ $this->assertSame($expectedValue, $actualValue);
+ }
+
+ /**
+ * @return array
+ */
+ public function executeWithIndexDataProvider()
+ {
+ return [
+ [
+ false,
+ true,
+ false,
+ 'realtime',
+ 'Index mode for Indexer Title_indexerOne was changed from \'Update by Schedule\' to \'Update on Save\''
+ . PHP_EOL
+ ],
+ [
+ false,
+ false,
+ false,
+ 'realtime',
+ 'Index mode for Indexer Title_indexerOne has not been changed'
+ . PHP_EOL
+ ],
+ [
+ true,
+ true,
+ true,
+ 'schedule',
+ 'Index mode for Indexer Title_indexerOne has not been changed'
+ . PHP_EOL
+ ],
+ [
+ true,
+ false,
+ true,
+ 'schedule',
+ 'Index mode for Indexer Title_indexerOne was changed from \'Update on Save\' to \'Update by Schedule\''
+ . PHP_EOL
+ ],
+ ];
+ }
+
+ public function testExecuteWithLocalizedException()
+ {
+ $indexerOne = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $localizedException = new \Magento\Framework\Exception\LocalizedException(__('Some Exception Message'));
+ $indexerOne->expects($this->once())->method('setScheduled')->will($this->throwException($localizedException));
+ $this->collectionFactory->expects($this->never())->method('create');
+ $this->indexerFactory->expects($this->once())->method('create')->willReturn($indexerOne);
+ $this->command = new IndexerSetModeCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute(['mode' => 'schedule', 'index' => ['id_indexerOne']]);
+ $actualValue = $commandTester->getDisplay();
+ $this->assertStringStartsWith('Some Exception Message', $actualValue);
+ }
+
+ public function testExecuteWithException()
+ {
+ $indexerOne = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $exception = new \Exception();
+ $indexerOne->expects($this->once())->method('setScheduled')->will($this->throwException($exception));
+ $indexerOne->expects($this->once())->method('getTitle')->willReturn('Title_indexerOne');
+ $this->collectionFactory->expects($this->never())->method('create');
+ $this->indexerFactory->expects($this->once())->method('create')->willReturn($indexerOne);
+ $this->command = new IndexerSetModeCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute(['mode' => 'schedule', 'index' => ['id_indexerOne']]);
+ $actualValue = $commandTester->getDisplay();
+ $this->assertStringStartsWith('Title_indexerOne indexer process unknown error:', $actualValue);
+ }
+}
diff --git a/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerShowModeCommandTest.php b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerShowModeCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..8c7a527ae4392a66f3e0b350099e2e73a5e472ef
--- /dev/null
+++ b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerShowModeCommandTest.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Test\Unit\Console\Command;
+
+use Magento\Indexer\Console\Command\IndexerShowModeCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class IndexerShowModeCommandTest extends IndexerCommandCommonTestSetup
+{
+ /**
+ * Command being tested
+ *
+ * @var IndexerShowModeCommand
+ */
+ private $command;
+
+ public function testGetOptions()
+ {
+ $this->command = new IndexerShowModeCommand($this->objectManagerFactory);
+ $optionsList = $this->command->getInputList();
+ $this->assertSame(2, sizeof($optionsList));
+ $this->assertSame('all', $optionsList[0]->getName());
+ $this->assertSame('index', $optionsList[1]->getName());
+ }
+
+ public function testExecuteAll()
+ {
+
+ $collection = $this->getMock('Magento\Indexer\Model\Indexer\Collection', [], [], '', false);
+ $indexerOne = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerOne->expects($this->once())->method('getTitle')->willReturn('Title_indexerOne');
+ $indexerOne->expects($this->once())->method('isScheduled')->willReturn(true);
+ $indexerTwo = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerTwo->expects($this->once())->method('getTitle')->willReturn('Title_indexerTwo');
+ $indexerTwo->expects($this->once())->method('isScheduled')->willReturn(false);
+ $collection->expects($this->once())->method('getItems')->willReturn([$indexerOne, $indexerTwo]);
+
+ $this->collectionFactory->expects($this->once())->method('create')->will($this->returnValue($collection));
+ $this->indexerFactory->expects($this->never())->method('create');
+
+ $this->command = new IndexerShowModeCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute([]);
+ $actualValue = $commandTester->getDisplay();
+ $expectedValue = sprintf('%-50s ', 'Title_indexerOne' . ':') . 'Update by Schedule' . PHP_EOL
+ . sprintf('%-50s ', 'Title_indexerTwo' . ':') . 'Update on Save';
+ $this->assertStringStartsWith($expectedValue, $actualValue);
+ }
+
+ public function testExecuteWithIndex()
+ {
+ $indexerOne = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerOne->expects($this->once())->method('getTitle')->willReturn('Title_indexerOne');
+ $indexerOne->expects($this->once())->method('isScheduled')->willReturn(true);
+ $indexerTwo = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerTwo->expects($this->once())->method('getTitle')->willReturn('Title_indexerTwo');
+ $indexerTwo->expects($this->once())->method('isScheduled')->willReturn(false);
+ $indexerThree = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerThree->expects($this->never())->method('getTitle')->willReturn('Title_indexer3');
+ $indexerThree->expects($this->never())->method('isScheduled')->willReturn(false);
+
+ $this->collectionFactory->expects($this->never())->method('create');
+ $this->indexerFactory->expects($this->at(0))->method('create')->willReturn($indexerOne);
+ $this->indexerFactory->expects($this->at(1))->method('create')->willReturn($indexerTwo);
+
+ $this->command = new IndexerShowModeCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute(['index' => ['id_indexerOne', 'id_indexerTwo']]);
+ $actualValue = $commandTester->getDisplay();
+ $expectedValue = sprintf('%-50s ', 'Title_indexerOne' . ':') . 'Update by Schedule' . PHP_EOL
+ . sprintf('%-50s ', 'Title_indexerTwo' . ':') . 'Update on Save';
+ $this->assertStringStartsWith($expectedValue, $actualValue);
+ }
+}
diff --git a/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusCommandTest.php b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..b5fd291e330c07b5080b74e3764927d739d03bd3
--- /dev/null
+++ b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusCommandTest.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Test\Unit\Console\Command;
+
+use Magento\Indexer\Console\Command\IndexerStatusCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class IndexerStatusCommandTest extends IndexerCommandCommonTestSetup
+{
+ /**
+ * Command being tested
+ *
+ * @var IndexerStatusCommand
+ */
+ private $command;
+
+ public function testExecuteAll()
+ {
+ $collection = $this->getMock('Magento\Indexer\Model\Indexer\Collection', [], [], '', false);
+ $indexerOne = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerOne->expects($this->once())->method('getTitle')->willReturn('Title_indexerOne');
+ $indexerOne
+ ->expects($this->once())
+ ->method('getStatus')
+ ->willReturn(\Magento\Indexer\Model\Indexer\State::STATUS_VALID);
+ $indexerTwo = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerTwo->expects($this->once())->method('getTitle')->willReturn('Title_indexerTwo');
+ $indexerTwo
+ ->expects($this->once())
+ ->method('getStatus')
+ ->willReturn(\Magento\Indexer\Model\Indexer\State::STATUS_INVALID);
+ $indexerThree = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerThree->expects($this->once())->method('getTitle')->willReturn('Title_indexerThree');
+ $indexerThree
+ ->expects($this->once())
+ ->method('getStatus')
+ ->willReturn(\Magento\Indexer\Model\Indexer\State::STATUS_WORKING);
+ $indexerFour = $this->getMock('Magento\Indexer\Model\Indexer', [], [], '', false);
+ $indexerFour->expects($this->once())->method('getTitle')->willReturn('Title_indexerFour');
+ $collection
+ ->expects($this->once())
+ ->method('getItems')
+ ->willReturn([$indexerOne, $indexerTwo, $indexerThree, $indexerFour]);
+
+ $this->collectionFactory->expects($this->once())->method('create')->will($this->returnValue($collection));
+ $this->indexerFactory->expects($this->never())->method('create');
+ $this->command = new IndexerStatusCommand($this->objectManagerFactory);
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute([]);
+ $actualValue = $commandTester->getDisplay();
+ $expectedValue = sprintf('%-50s ', 'Title_indexerOne' . ':') . 'Ready' . PHP_EOL
+ . sprintf('%-50s ', 'Title_indexerTwo' . ':') . 'Reindex required' . PHP_EOL
+ . sprintf('%-50s ', 'Title_indexerThree' . ':') . 'Processing' . PHP_EOL
+ . sprintf('%-50s ', 'Title_indexerFour' . ':') . 'unknown' . PHP_EOL;
+
+ $this->assertStringStartsWith($expectedValue, $actualValue);
+ }
+}
diff --git a/app/code/Magento/Indexer/Test/Unit/Model/ShellTest.php b/app/code/Magento/Indexer/Test/Unit/Model/ShellTest.php
deleted file mode 100644
index 1a73b3de682eda8c3c754a201db7e1aee38b473e..0000000000000000000000000000000000000000
--- a/app/code/Magento/Indexer/Test/Unit/Model/ShellTest.php
+++ /dev/null
@@ -1,226 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Indexer\Test\Unit\Model;
-
-class ShellTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var \Magento\Indexer\Model\Shell
- */
- protected $model;
-
- /**
- * @var \Magento\Framework\Filesystem|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $filesystemMock;
-
- /**
- * @var \Magento\Indexer\Model\Indexer\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $indexersFactoryMock;
-
- /**
- * @var \Magento\Indexer\Model\IndexerFactory|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $indexerFactoryMock;
-
- /**
- * Set up test
- */
- protected function setUp()
- {
- $entryPoint = '';
-
- $this->filesystemMock = $this->getMock(
- '\Magento\Framework\Filesystem',
- ['getDirectoryRead'],
- [],
- '',
- false
- );
- $this->indexerFactoryMock = $this->getMock(
- 'Magento\Indexer\Model\IndexerFactory',
- ['create', 'load', 'reindexAll', 'getTitle'],
- [],
- '',
- false
- );
- $this->indexersFactoryMock = $this->getMock(
- 'Magento\Indexer\Model\Indexer\CollectionFactory',
- ['create', 'getItems'],
- [],
- '',
- false
- );
- $readInterfaceMock = $this->getMockForAbstractClass(
- '\Magento\Framework\Filesystem\Directory\ReadInterface',
- [],
- '',
- false,
- false,
- true,
- []
- );
-
- $this->filesystemMock->expects($this->once())->method('getDirectoryRead')->will(
- $this->returnValue($readInterfaceMock)
- );
-
- $this->model = new \Magento\Indexer\Model\Shell(
- $this->filesystemMock,
- $entryPoint,
- $this->indexersFactoryMock,
- $this->indexerFactoryMock
- );
- }
-
- /**
- * @param string $args
- * @param string $status
- * @dataProvider runDataProvider
- */
- public function testRun($args, $status = null)
- {
- $withItems = [
- 'info',
- 'status',
- 'mode',
- '--mode-realtime',
- '--mode-schedule',
- 'reindex',
- 'reindexall'
- ];
- $this->model->setRawArgs(['testme.php', '--', $args]);
-
- $indexerMock = $this->getMock(
- '\Magento\Indexer\Model\Indexer',
- ['getStatus', 'isScheduled', 'reindexAll', 'turnViewOff', 'turnViewOn'],
- [],
- '',
- false
- );
-
- if (in_array($args, $withItems)) {
- if ($args == 'status') {
- $indexerMock->expects($this->any())->method('getStatus')->will(
- $this->returnValue($status)
- );
- }
- $this->indexersFactoryMock->expects($this->once())->method('create')->will($this->returnSelf());
- $this->indexersFactoryMock->expects($this->once())->method('getItems')->will(
- $this->returnValue([$indexerMock])
- );
- }
- if ($args == '--reindex=price') {
- $this->indexerFactoryMock->expects($this->once())->method('create')->will($this->returnSelf());
- $this->indexerFactoryMock->expects($this->any())->method('load')->will(
- $this->returnValue($indexerMock)
- );
- }
-
- ob_start();
- $this->assertInstanceOf('\Magento\Indexer\Model\Shell', $this->model->run());
- ob_end_clean();
- }
-
- /**
- * @return array
- */
- public function runDataProvider()
- {
- return [
- ['h'],
- ['info'],
- ['mode'],
- ['status', \Magento\Indexer\Model\Indexer\State::STATUS_VALID],
- ['status', \Magento\Indexer\Model\Indexer\State::STATUS_INVALID],
- ['status', \Magento\Indexer\Model\Indexer\State::STATUS_WORKING],
- ['--mode-realtime'],
- ['--mode-schedule'],
- ['reindex'],
- ['reindexall'],
- ['--reindex=price'],
- ['other']
- ];
- }
-
- /**
- * @param string $args
- * @dataProvider runExceptionDataProvider
- */
- public function testRunException($args)
- {
- $indexerMock = $this->getMock(
- '\Magento\Indexer\Model\Indexer',
- ['reindexAll', 'turnViewOff', 'turnViewOn'],
- [],
- '',
- false
- );
-
- $this->model->setRawArgs(['testme.php', '--', $args]);
-
- if ($args == 'reindex') {
- $indexerMock->expects($this->any())->method('reindexAll')->will(
- $this->throwException(new \Exception())
- );
- }
- if ($args == '--mode-realtime') {
- $indexerMock->expects($this->any())->method('turnViewOff')->will(
- $this->throwException(new \Exception())
- );
- }
- if ($args == 'reindexall') {
- $indexerMock->expects($this->any())->method('reindexAll')->will(
- $this->throwException(
- new \Magento\Framework\Exception\LocalizedException(
- __('Something went wrong during reindexing all.')
- )
- )
- );
- }
- if ($args == '--mode-schedule') {
- $indexerMock->expects($this->any())->method('turnViewOn')->will(
- $this->throwException(
- new \Magento\Framework\Exception\LocalizedException(
- __('Something went wrong during turning view on.')
- )
- )
- );
- }
- if ($args == '--reindex=price') {
- $this->indexerFactoryMock->expects($this->once())->method('create')->will($this->returnSelf());
- $this->indexerFactoryMock->expects($this->any())->method('load')->will(
- $this->throwException(new \Exception())
- );
- } else {
- $this->indexersFactoryMock->expects($this->once())->method('create')->will($this->returnSelf());
- $this->indexersFactoryMock->expects($this->once())->method('getItems')->will(
- $this->returnValue([$indexerMock])
- );
- }
-
- ob_start();
- $this->assertInstanceOf('\Magento\Indexer\Model\Shell', $this->model->run());
- ob_end_clean();
-
- $this->assertEquals(true, $this->model->hasErrors());
- }
-
- /**
- * @return array
- */
- public function runExceptionDataProvider()
- {
- return [
- ['reindex'],
- ['reindexall'],
- ['--mode-realtime'],
- ['--mode-schedule'],
- ['--reindex=price']
- ];
- }
-}
diff --git a/app/code/Magento/Indexer/composer.json b/app/code/Magento/Indexer/composer.json
index dc50f4ea54aa7305e118a771a6a57ce857a7d7ee..b346637038367b28a5ad2c08d5d57e1bed717eaa 100644
--- a/app/code/Magento/Indexer/composer.json
+++ b/app/code/Magento/Indexer/composer.json
@@ -3,6 +3,7 @@
"description": "N/A",
"require": {
"php": "~5.5.0|~5.6.0",
+ "magento/module-store": "0.74.0-beta7",
"magento/module-backend": "0.74.0-beta7",
"magento/module-page-cache": "0.74.0-beta7",
"magento/framework": "0.74.0-beta7",
diff --git a/app/code/Magento/Indexer/etc/di.xml b/app/code/Magento/Indexer/etc/di.xml
index 496e19449aecfc297fd63babe067af151dc7a9aa..8c6730dffb5c959d732d78f590c366eae74ef1bb 100644
--- a/app/code/Magento/Indexer/etc/di.xml
+++ b/app/code/Magento/Indexer/etc/di.xml
@@ -34,4 +34,16 @@
<plugin name="page-cache-indexer-reindex-invalidate"
type="Magento\Indexer\Model\Processor\InvalidateCache" sortOrder="10"/>
</type>
+
+ <type name="Magento\Framework\Console\CommandList">
+ <arguments>
+ <argument name="commands" xsi:type="array">
+ <item name="info" xsi:type="object">Magento\Indexer\Console\Command\IndexerInfoCommand</item>
+ <item name="reindex" xsi:type="object">Magento\Indexer\Console\Command\IndexerReindexCommand</item>
+ <item name="set-mode" xsi:type="object">Magento\Indexer\Console\Command\IndexerSetModeCommand</item>
+ <item name="show-mode" xsi:type="object">Magento\Indexer\Console\Command\IndexerShowModeCommand</item>
+ <item name="status" xsi:type="object">Magento\Indexer\Console\Command\IndexerStatusCommand</item>
+ </argument>
+ </arguments>
+ </type>
</config>
diff --git a/app/code/Magento/Log/App/Shell.php b/app/code/Magento/Log/App/Shell.php
deleted file mode 100644
index 1941350d0a182ef6099ba8f43480e5c6e89cb0d9..0000000000000000000000000000000000000000
--- a/app/code/Magento/Log/App/Shell.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-/**
- * Log shell application
- *
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Log\App;
-
-use Magento\Framework\App\Bootstrap;
-use Magento\Framework\App\Console\Response;
-use Magento\Framework\AppInterface;
-
-class Shell implements AppInterface
-{
- /**
- * Filename of the entry point script
- *
- * @var string
- */
- protected $_entryFileName;
-
- /**
- * @var \Magento\Log\Model\ShellFactory
- */
- protected $_shellFactory;
-
- /**
- * @var \Magento\Framework\App\Console\Response
- */
- protected $_response;
-
- /**
- * @param string $entryFileName
- * @param \Magento\Log\Model\ShellFactory $shellFactory
- * @param Response $response
- */
- public function __construct($entryFileName, \Magento\Log\Model\ShellFactory $shellFactory, Response $response)
- {
- $this->_entryFileName = $entryFileName;
- $this->_shellFactory = $shellFactory;
- $this->_response = $response;
- }
-
- /**
- * Run application
- *
- * @return \Magento\Framework\App\ResponseInterface
- */
- public function launch()
- {
- /** @var $shell \Magento\Log\Model\Shell */
- $shell = $this->_shellFactory->create(['entryPoint' => $this->_entryFileName]);
- $shell->run();
- $this->_response->setCode(0);
- return $this->_response;
- }
-
- /**
- * {@inheritdoc}
- */
- public function catchException(Bootstrap $bootstrap, \Exception $exception)
- {
- return false;
- }
-}
diff --git a/app/code/Magento/Log/Console/Command/AbstractLogCommand.php b/app/code/Magento/Log/Console/Command/AbstractLogCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..d158c1538cd638ea1a85f7e7915963f45ec89d8c
--- /dev/null
+++ b/app/code/Magento/Log/Console/Command/AbstractLogCommand.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Log\Console\Command;
+
+use Symfony\Component\Console\Command\Command;
+use Magento\Store\Model\StoreManager;
+use Magento\Framework\App\DeploymentConfig;
+use Magento\Framework\App\ObjectManagerFactory;
+use Magento\Framework\App\ObjectManager;
+
+/**
+ * Abstract class for commands related to manage Magento logs
+ */
+abstract class AbstractLogCommand extends Command
+{
+ /**
+ * Object Manager
+ *
+ * @var ObjectManager
+ */
+ protected $objectManager;
+
+ /**
+ * Constructor
+ *
+ * @param ObjectManagerFactory $objectManagerFactory
+ */
+ public function __construct(ObjectManagerFactory $objectManagerFactory)
+ {
+ $params = $_SERVER;
+ $params[StoreManager::PARAM_RUN_CODE] = 'admin';
+ $params[StoreManager::PARAM_RUN_TYPE] = 'store';
+ $this->objectManager = $objectManagerFactory->create($params);
+ parent::__construct();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ parent::configure();
+ }
+}
diff --git a/app/code/Magento/Log/Console/Command/LogCleanCommand.php b/app/code/Magento/Log/Console/Command/LogCleanCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..00827c20b96c856520aa5b859e32dc73317058c5
--- /dev/null
+++ b/app/code/Magento/Log/Console/Command/LogCleanCommand.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Log\Console\Command;
+
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Input\InputOption;
+
+/**
+ * Command for displaying status of Magento logs
+ */
+class LogCleanCommand extends AbstractLogCommand
+{
+ /**
+ * Name of input option
+ */
+ const INPUT_KEY_DAYS = 'days';
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $options = [
+ new InputOption(
+ self::INPUT_KEY_DAYS,
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'Save log for specified number of days',
+ '1'
+ ),
+ ];
+ $this->setName('log:clean')
+ ->setDescription('Cleans Logs')
+ ->setDefinition($options);
+ parent::configure();
+ }
+
+ /**
+ * {@inheritdoc}
+ * @throws \InvalidArgumentException
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $errorMsg = 'Invalid value for option "' . self::INPUT_KEY_DAYS
+ . '". It should be a whole number greater than 0.';
+ $days = $input->getOption(self::INPUT_KEY_DAYS);
+ if (!is_numeric($days) || (strpos($days, '.') !== false)) {
+ $output->writeln('<error>' . $errorMsg . '</error>');
+ return;
+ }
+ $days = (int) $days;
+ if ($days <= 0) {
+ $output->writeln('<error>' . $errorMsg . '</error>');
+ return;
+ }
+ /** @var \Magento\Framework\App\Config\MutableScopeConfigInterface $mutableConfig */
+ $mutableConfig = $this->objectManager->create('Magento\Framework\App\Config\MutableScopeConfigInterface');
+ $mutableConfig->setValue(
+ \Magento\Log\Model\Log::XML_LOG_CLEAN_DAYS,
+ $days,
+ \Magento\Store\Model\ScopeInterface::SCOPE_STORE
+ );
+ /** @var \Magento\Log\Model\LogFactory $logFactory */
+ $logFactory = $this->objectManager->create('Magento\Log\Model\LogFactory');
+ /** @var \Magento\Log\Model\Log $model */
+ $model = $logFactory->create();
+ $model->clean();
+ $output->writeln('<info>' . 'Log cleaned.' . '</info>');
+ }
+}
diff --git a/app/code/Magento/Log/Model/Shell/Command/Status.php b/app/code/Magento/Log/Console/Command/LogStatusCommand.php
similarity index 52%
rename from app/code/Magento/Log/Model/Shell/Command/Status.php
rename to app/code/Magento/Log/Console/Command/LogStatusCommand.php
index 8ac5c4817bf6b13b69e28bee9218a3591f1e5dd8..8ae090f76f9a67ac942db7735b13d0c4bb8f0d30 100644
--- a/app/code/Magento/Log/Model/Shell/Command/Status.php
+++ b/app/code/Magento/Log/Console/Command/LogStatusCommand.php
@@ -3,28 +3,76 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Log\Model\Shell\Command;
-class Status implements \Magento\Log\Model\Shell\CommandInterface
-{
- /**
- * @var \Magento\Log\Model\Resource\ShellFactory
- */
- protected $_resourceFactory;
+namespace Magento\Log\Console\Command;
+
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+/**
+ * Command for displaying status of Magento logs
+ */
+class LogStatusCommand extends AbstractLogCommand
+{
/**
* Output data
*
* @var array
*/
- protected $_output = [];
+ private $output = [];
/**
- * @param \Magento\Log\Model\Resource\ShellFactory $resourceFactory
+ * {@inheritdoc}
*/
- public function __construct(\Magento\Log\Model\Resource\ShellFactory $resourceFactory)
+ protected function configure()
{
- $this->_resourceFactory = $resourceFactory;
+ $this->setName('log:status')->setDescription('Displays statistics per log tables');
+ parent::configure();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ /** @var \Magento\Log\Model\Resource\ShellFactory $resourceFactory */
+ $resourceFactory = $this->objectManager->create('Magento\Log\Model\Resource\ShellFactory');
+ /** @var \Magento\Log\Model\Resource\Shell $resource */
+ $resource = $resourceFactory->create();
+ $tables = $resource->getTablesInfo();
+
+ $this->addRowDelimiter();
+ $line = sprintf('%-35s|', 'Table Name');
+ $line .= sprintf(' %-11s|', 'Rows');
+ $line .= sprintf(' %-11s|', 'Data Size');
+ $line .= sprintf(' %-11s|', 'Index Size');
+ $this->addOutput($line);
+ $this->addRowDelimiter();
+
+ $rows = 0;
+ $dataLength = 0;
+ $indexLength = 0;
+ foreach ($tables as $table) {
+ $rows += $table['rows'];
+ $dataLength += $table['data_length'];
+ $indexLength += $table['index_length'];
+
+ $line = sprintf('%-35s|', $table['name']);
+ $line .= sprintf(' %-11s|', $this->humanCount($table['rows']));
+ $line .= sprintf(' %-11s|', $this->humanSize($table['data_length']));
+ $line .= sprintf(' %-11s|', $this->humanSize($table['index_length']));
+ $this->addOutput($line);
+ }
+
+ $this->addRowDelimiter();
+ $line = sprintf('%-35s|', 'Total');
+ $line .= sprintf(' %-11s|', $this->humanCount($rows));
+ $line .= sprintf(' %-11s|', $this->humanSize($dataLength));
+ $line .= sprintf(' %-11s|', $this->humanSize($indexLength));
+ $this->addOutput($line);
+ $this->addRowDelimiter();
+
+ $output->writeln('<info>' . $this->getOutput() . '</info>');
}
/**
@@ -33,9 +81,9 @@ class Status implements \Magento\Log\Model\Shell\CommandInterface
* @param string $output
* @return void
*/
- protected function _addOutput($output)
+ private function addOutput($output)
{
- $this->_output[] = $output;
+ $this->output[] = $output;
}
/**
@@ -43,9 +91,9 @@ class Status implements \Magento\Log\Model\Shell\CommandInterface
*
* @return string
*/
- protected function _getOutput()
+ private function getOutput()
{
- return implode("\n", $this->_output);
+ return implode("\n", $this->output);
}
/**
@@ -54,7 +102,7 @@ class Status implements \Magento\Log\Model\Shell\CommandInterface
* @param int $number
* @return string
*/
- protected function _humanCount($number)
+ private function humanCount($number)
{
if ($number < 1000) {
return $number;
@@ -73,7 +121,7 @@ class Status implements \Magento\Log\Model\Shell\CommandInterface
* @param int $number
* @return string
*/
- protected function _humanSize($number)
+ private function humanSize($number)
{
if ($number < 1024) {
return sprintf('%d b', $number);
@@ -91,53 +139,8 @@ class Status implements \Magento\Log\Model\Shell\CommandInterface
*
* @return void
*/
- protected function _addRowDelimiter()
+ private function addRowDelimiter()
{
- $this->_addOutput('-----------------------------------+------------+------------+------------+');
- }
-
- /**
- * Execute command
- *
- * @return string
- */
- public function execute()
- {
- /** @var $resource \Magento\Log\Model\Resource\Shell */
- $resource = $this->_resourceFactory->create();
- $tables = $resource->getTablesInfo();
-
- $this->_addRowDelimiter();
- $line = sprintf('%-35s|', 'Table Name');
- $line .= sprintf(' %-11s|', 'Rows');
- $line .= sprintf(' %-11s|', 'Data Size');
- $line .= sprintf(' %-11s|', 'Index Size');
- $this->_addOutput($line);
- $this->_addRowDelimiter();
-
- $rows = 0;
- $dataLength = 0;
- $indexLength = 0;
- foreach ($tables as $table) {
- $rows += $table['rows'];
- $dataLength += $table['data_length'];
- $indexLength += $table['index_length'];
-
- $line = sprintf('%-35s|', $table['name']);
- $line .= sprintf(' %-11s|', $this->_humanCount($table['rows']));
- $line .= sprintf(' %-11s|', $this->_humanSize($table['data_length']));
- $line .= sprintf(' %-11s|', $this->_humanSize($table['index_length']));
- $this->_addOutput($line);
- }
-
- $this->_addRowDelimiter();
- $line = sprintf('%-35s|', 'Total');
- $line .= sprintf(' %-11s|', $this->_humanCount($rows));
- $line .= sprintf(' %-11s|', $this->_humanSize($dataLength));
- $line .= sprintf(' %-11s|', $this->_humanSize($indexLength));
- $this->_addOutput($line);
- $this->_addRowDelimiter();
-
- return $this->_getOutput();
+ $this->addOutput('-----------------------------------+------------+------------+------------+');
}
}
diff --git a/app/code/Magento/Log/Model/Shell.php b/app/code/Magento/Log/Model/Shell.php
deleted file mode 100644
index 30a1cf875d740cf651103974f86ab21fe717121b..0000000000000000000000000000000000000000
--- a/app/code/Magento/Log/Model/Shell.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Log\Model;
-
-/**
- * Shell model, used to work with logs via command line
- *
- * @author Magento Core Team <core@magentocommerce.com>
- */
-class Shell extends \Magento\Framework\App\AbstractShell
-{
- /**
- * @var \Magento\Log\Model\Shell\Command\Factory
- */
- protected $_commandFactory;
-
- /**
- * @param \Magento\Framework\Filesystem $filesystem
- * @param string $entryPoint
- * @param \Magento\Log\Model\Shell\Command\Factory $commandFactory
- */
- public function __construct(
- \Magento\Framework\Filesystem $filesystem,
- $entryPoint,
- \Magento\Log\Model\Shell\Command\Factory $commandFactory
- ) {
- parent::__construct($filesystem, $entryPoint);
- $this->_commandFactory = $commandFactory;
- }
-
- /**
- * Runs script
- *
- * @return $this
- */
- public function run()
- {
- if ($this->_showHelp()) {
- return $this;
- }
-
- if ($this->getArg('clean')) {
- $output = $this->_commandFactory->createCleanCommand($this->getArg('days'))->execute();
- } elseif ($this->getArg('status')) {
- $output = $this->_commandFactory->createStatusCommand()->execute();
- } else {
- $output = $this->getUsageHelp();
- }
-
- echo $output;
-
- return $this;
- }
-
- /**
- * Retrieves usage help message
- *
- * @return string
- */
- public function getUsageHelp()
- {
- return <<<USAGE
-Usage: php -f {$this->_entryPoint} -- [options]
- php -f {$this->_entryPoint} -- clean --days 1
-
- clean Clean Logs
- --days <days> Save log, days. (Minimum 1 day, if defined - ignoring system value)
- status Display statistics per log tables
- help This help
-
-USAGE;
- }
-}
diff --git a/app/code/Magento/Log/Model/Shell/Command/Clean.php b/app/code/Magento/Log/Model/Shell/Command/Clean.php
deleted file mode 100644
index 65415c82f489bacadaf34c2dd2fae709f859d77a..0000000000000000000000000000000000000000
--- a/app/code/Magento/Log/Model/Shell/Command/Clean.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Log\Model\Shell\Command;
-
-use Magento\Log\Model\LogFactory;
-
-class Clean implements \Magento\Log\Model\Shell\CommandInterface
-{
- /**
- * Mutable Config
- *
- * @var \Magento\Framework\App\Config\MutableScopeConfigInterface
- */
- protected $_mutableConfig;
-
- /**
- * @var LogFactory
- */
- protected $_logFactory;
-
- /**
- * Clean after days count
- *
- * @var int
- */
- protected $_days;
-
- /**
- * @param \Magento\Framework\App\Config\MutableScopeConfigInterface $mutableConfig
- * @param LogFactory $logFactory
- * @param int $days
- */
- public function __construct(
- \Magento\Framework\App\Config\MutableScopeConfigInterface $mutableConfig,
- LogFactory $logFactory,
- $days
- ) {
- $this->_mutableConfig = $mutableConfig;
- $this->_logFactory = $logFactory;
- $this->_days = $days;
- }
-
- /**
- * Execute command
- *
- * @return string
- */
- public function execute()
- {
- if ($this->_days > 0) {
- $this->_mutableConfig->setValue(
- \Magento\Log\Model\Log::XML_LOG_CLEAN_DAYS,
- $this->_days,
- \Magento\Store\Model\ScopeInterface::SCOPE_STORE
- );
- }
- /** @var $model \Magento\Log\Model\Log */
- $model = $this->_logFactory->create();
- $model->clean();
- return "Log cleaned\n";
- }
-}
diff --git a/app/code/Magento/Log/Model/Shell/Command/Factory.php b/app/code/Magento/Log/Model/Shell/Command/Factory.php
deleted file mode 100644
index 96363024cd1023374efb9c38f6a599d94126c586..0000000000000000000000000000000000000000
--- a/app/code/Magento/Log/Model/Shell/Command/Factory.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Log\Model\Shell\Command;
-
-class Factory
-{
- /**
- * @var \Magento\Framework\ObjectManagerInterface
- */
- protected $_objectManager;
-
- /**
- * @param \Magento\Framework\ObjectManagerInterface $objectManager
- */
- public function __construct(\Magento\Framework\ObjectManagerInterface $objectManager)
- {
- $this->_objectManager = $objectManager;
- }
-
- /**
- * Create clean command
- *
- * @param int $days
- * @return \Magento\Log\Model\Shell\CommandInterface
- */
- public function createCleanCommand($days)
- {
- return $this->_objectManager->create('Magento\Log\Model\Shell\Command\Clean', ['days' => $days]);
- }
-
- /**
- * Create status command
- *
- * @return \Magento\Log\Model\Shell\CommandInterface
- */
- public function createStatusCommand()
- {
- return $this->_objectManager->create('Magento\Log\Model\Shell\Command\Status');
- }
-}
diff --git a/app/code/Magento/Log/Model/Shell/CommandInterface.php b/app/code/Magento/Log/Model/Shell/CommandInterface.php
deleted file mode 100644
index 84ccdf5dde23cd0df1f9135a7f3c6af66f7aa18d..0000000000000000000000000000000000000000
--- a/app/code/Magento/Log/Model/Shell/CommandInterface.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Log\Model\Shell;
-
-interface CommandInterface
-{
- /**
- * Execute command
- *
- * @return string
- */
- public function execute();
-}
diff --git a/app/code/Magento/Log/Test/Unit/App/ShellTest.php b/app/code/Magento/Log/Test/Unit/App/ShellTest.php
deleted file mode 100644
index b9f28ad53b12bf80297bbee56601e975ff3a93cd..0000000000000000000000000000000000000000
--- a/app/code/Magento/Log/Test/Unit/App/ShellTest.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Log\Test\Unit\App;
-
-class ShellTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var \Magento\Log\App\Shell
- */
- protected $_model;
-
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_shellFactoryMock;
-
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_responseMock;
-
- protected function setUp()
- {
- $this->_shellFactoryMock = $this->getMock(
- 'Magento\Log\Model\ShellFactory',
- ['create'],
- [],
- '',
- false
- );
- $this->_responseMock = $this->getMock('Magento\Framework\App\Console\Response', [], [], '', false);
- $this->_model = new \Magento\Log\App\Shell('shell.php', $this->_shellFactoryMock, $this->_responseMock);
- }
-
- public function testProcessRequest()
- {
- $shellMock = $this->getMock('Magento\Log\App\Shell', ['run'], [], '', false);
- $this->_shellFactoryMock->expects(
- $this->once()
- )->method(
- 'create'
- )->with(
- ['entryPoint' => 'shell.php']
- )->will(
- $this->returnValue($shellMock)
- );
- $shellMock->expects($this->once())->method('run');
- $this->assertEquals($this->_responseMock, $this->_model->launch());
- }
-
- public function testCatchException()
- {
- $bootstrap = $this->getMock('Magento\Framework\App\Bootstrap', [], [], '', false);
- $this->assertFalse($this->_model->catchException($bootstrap, new \Exception()));
- }
-}
diff --git a/app/code/Magento/Log/Test/Unit/Console/Command/LogCleanCommandTest.php b/app/code/Magento/Log/Test/Unit/Console/Command/LogCleanCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..0db32a17c32950dec9a9ea4ab20f6ed4827c31cd
--- /dev/null
+++ b/app/code/Magento/Log/Test/Unit/Console/Command/LogCleanCommandTest.php
@@ -0,0 +1,81 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Log\Test\Unit\Console\Command;
+
+use Magento\Log\Console\Command\LogCleanCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+use Magento\Framework\App\ObjectManager;
+
+class LogCleanCommandTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @var ObjectManager|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $objectManager;
+
+ /**
+ * @var CommandTester
+ */
+ private $commandTester;
+
+ public function setUp()
+ {
+ $this->objectManager = $this->getMock('Magento\Framework\App\ObjectManager', [], [], '', false);
+ $objectManagerFactory = $this->getMock('Magento\Framework\App\ObjectManagerFactory', [], [], '', false);
+ $objectManagerFactory->expects($this->once())->method('create')->willReturn($this->objectManager);
+ $this->commandTester = new CommandTester(new LogCleanCommand($objectManagerFactory));
+ }
+
+ public function testExecute()
+ {
+ $mutableConfig = $this->getMock('Magento\Framework\App\Config\MutableScopeConfigInterface', [], [], '', false);
+ $logFactory = $this->getMock('Magento\Log\Model\LogFactory', [], [], '', false);
+ $returnValueMap = [
+ [
+ 'Magento\Framework\App\Config\MutableScopeConfigInterface',
+ [],
+ $mutableConfig,
+ ],
+ [
+ 'Magento\Log\Model\LogFactory',
+ [],
+ $logFactory,
+ ],
+ ];
+ $this->objectManager
+ ->expects($this->exactly(2))->method('create')
+ ->will($this->returnValueMap($returnValueMap));
+ $mutableConfig->expects($this->once())->method('setValue');
+ $log = $this->getMock('Magento\Log\Model\Log', [], [], '', false);
+ $logFactory->expects($this->once())->method('create')->willReturn($log);
+ $log->expects($this->once())->method('clean');
+ $this->commandTester->execute(['--days' => '1']);
+ $this->assertEquals('Log cleaned.' . PHP_EOL, $this->commandTester->getDisplay());
+ }
+
+ /**
+ *
+ * @param string $days
+ * @dataProvider daysDataProvider
+ */
+ public function testExecuteInvalidNegativeDays($days)
+ {
+ $this->commandTester->execute(['--days' => $days]);
+ //Invalid value for option "days". It should be a whole number greater than 0.
+ $this->assertEquals(
+ 'Invalid value for option "days". It should be a whole number greater than 0.' . PHP_EOL,
+ $this->commandTester->getDisplay()
+ );
+ }
+
+ /**
+ * @return array
+ */
+ public function daysDataProvider()
+ {
+ return [['-1'], ['5.5'], ['test']];
+ }
+}
diff --git a/app/code/Magento/Log/Test/Unit/Console/Command/LogStatusCommandTest.php b/app/code/Magento/Log/Test/Unit/Console/Command/LogStatusCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..7a7df444bb6a1f88ec83718be29276d2e73872b5
--- /dev/null
+++ b/app/code/Magento/Log/Test/Unit/Console/Command/LogStatusCommandTest.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Log\Test\Unit\Console\Command;
+
+use Magento\Log\Console\Command\LogStatusCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class LogStatusCommandTest extends \PHPUnit_Framework_TestCase
+{
+ public function testExecute()
+ {
+ $objectManagerFactory = $this->getMock('Magento\Framework\App\ObjectManagerFactory', [], [], '', false);
+ $objectManager = $this->getMock('Magento\Framework\App\ObjectManager', [], [], '', false);
+ $resourceFactory = $this->getMock('Magento\Log\Model\Resource\ShellFactory', [], [], '', false);
+ $objectManager->expects($this->once())->method('create')->willReturn($resourceFactory);
+ $resource = $this->getMock('Magento\Log\Model\Resource\Shell', [], [], '', false);
+ $resourceFactory->expects($this->once())->method('create')->willReturn($resource);
+ $resource->expects($this->once())->method('getTablesInfo')->willReturn(
+ [['name' => 'log_customer', 'rows' => '1', 'data_length' => '16384', 'index_length' => '1024']]
+ );
+ $objectManagerFactory->expects($this->once())->method('create')->willReturn($objectManager);
+ $commandTester = new CommandTester(new LogStatusCommand($objectManagerFactory));
+ $commandTester->execute([]);
+ $expectedMsg = '-----------------------------------+------------+------------+------------+' . PHP_EOL
+ . 'Table Name | Rows | Data Size | Index Size |' . PHP_EOL
+ . '-----------------------------------+------------+------------+------------+' . PHP_EOL
+ . 'log_customer | 1 | 16.00Kb | 1.00Kb |' . PHP_EOL
+ . '-----------------------------------+------------+------------+------------+' . PHP_EOL
+ . 'Total | 1 | 16.00Kb | 1.00Kb |' . PHP_EOL
+ . '-----------------------------------+------------+------------+------------+%w';
+ $this->assertStringMatchesFormat($expectedMsg, $commandTester->getDisplay());
+ }
+}
diff --git a/app/code/Magento/Log/Test/Unit/Model/Shell/Command/CleanTest.php b/app/code/Magento/Log/Test/Unit/Model/Shell/Command/CleanTest.php
deleted file mode 100644
index 1438ec7b080e134a810a1914e73c1dfb3866cc60..0000000000000000000000000000000000000000
--- a/app/code/Magento/Log/Test/Unit/Model/Shell/Command/CleanTest.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Log\Test\Unit\Model\Shell\Command;
-
-class CleanTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_mutableConfigMock;
-
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_logFactoryMock;
-
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_logMock;
-
- protected function setUp()
- {
- $this->_mutableConfigMock = $this->getMock('Magento\Framework\App\Config\MutableScopeConfigInterface');
- $this->_logFactoryMock = $this->getMock('Magento\Log\Model\LogFactory', ['create'], [], '', false);
- $this->_logMock = $this->getMock('Magento\Log\Model\Log', [], [], '', false);
- $this->_logFactoryMock->expects($this->once())->method('create')->will($this->returnValue($this->_logMock));
- }
-
- public function testExecuteWithoutDaysOffset()
- {
- $model = new \Magento\Log\Model\Shell\Command\Clean($this->_mutableConfigMock, $this->_logFactoryMock, 0);
- $this->_mutableConfigMock->expects($this->never())->method('setValue');
- $this->_logMock->expects($this->once())->method('clean');
- $this->assertStringStartsWith('Log cleaned', $model->execute());
- }
-
- public function testExecuteWithDaysOffset()
- {
- $model = new \Magento\Log\Model\Shell\Command\Clean($this->_mutableConfigMock, $this->_logFactoryMock, 10);
- $this->_mutableConfigMock->expects($this->once())
- ->method('setValue')
- ->with(
- \Magento\Log\Model\Log::XML_LOG_CLEAN_DAYS,
- 10,
- \Magento\Store\Model\ScopeInterface::SCOPE_STORE
- );
-
- $this->_logMock->expects($this->once())->method('clean');
- $this->assertStringStartsWith('Log cleaned', $model->execute());
- }
-}
diff --git a/app/code/Magento/Log/Test/Unit/Model/Shell/Command/FactoryTest.php b/app/code/Magento/Log/Test/Unit/Model/Shell/Command/FactoryTest.php
deleted file mode 100644
index 0f4435fbc907dd1b6b1bda248afeb942e9c26d10..0000000000000000000000000000000000000000
--- a/app/code/Magento/Log/Test/Unit/Model/Shell/Command/FactoryTest.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Log\Test\Unit\Model\Shell\Command;
-
-class FactoryTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_objectManagerMock;
-
- /**
- * @var \Magento\Log\Model\Shell\Command\Factory
- */
- protected $_model;
-
- protected function setUp()
- {
- $this->_objectManagerMock = $this->getMock('Magento\Framework\ObjectManagerInterface');
- $this->_model = new \Magento\Log\Model\Shell\Command\Factory($this->_objectManagerMock);
- }
-
- public function testCreateCleanCommand()
- {
- $this->_objectManagerMock->expects(
- $this->once()
- )->method(
- 'create'
- )->with(
- 'Magento\Log\Model\Shell\Command\Clean',
- ['days' => 1]
- )->will(
- $this->returnValue($this->getMock('Magento\Log\Model\Shell\Command\Clean', [], [], '', false))
- );
- $this->isInstanceOf('Magento\Log\Model\Shell\CommandInterface', $this->_model->createCleanCommand(1));
- }
-
- public function testCreateStatusCommand()
- {
- $this->_objectManagerMock->expects(
- $this->once()
- )->method(
- 'create'
- )->with(
- 'Magento\Log\Model\Shell\Command\Status'
- )->will(
- $this->returnValue($this->getMock('Magento\Log\Model\Shell\Command\Status', [], [], '', false))
- );
- $this->isInstanceOf('Magento\Log\Model\Shell\CommandInterface', $this->_model->createStatusCommand());
- }
-}
diff --git a/app/code/Magento/Log/Test/Unit/Model/Shell/Command/StatusTest.php b/app/code/Magento/Log/Test/Unit/Model/Shell/Command/StatusTest.php
deleted file mode 100644
index 0482cd7faecb5aa68f8ade580b6a1e383ca92135..0000000000000000000000000000000000000000
--- a/app/code/Magento/Log/Test/Unit/Model/Shell/Command/StatusTest.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Log\Test\Unit\Model\Shell\Command;
-
-class StatusTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_factoryMock;
-
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_shellMock;
-
- /**
- * @var \Magento\Log\Model\Shell\Command\Status
- */
- protected $_model;
-
- protected function setUp()
- {
- $this->_factoryMock = $this->getMock(
- 'Magento\Log\Model\Resource\ShellFactory',
- ['create'],
- [],
- '',
- false
- );
- $this->_shellMock = $this->getMock('Magento\Log\Model\Resource\Shell', [], [], '', false);
- $this->_factoryMock->expects($this->once())->method('create')->will($this->returnValue($this->_shellMock));
- $this->_model = new \Magento\Log\Model\Shell\Command\Status($this->_factoryMock);
- }
-
- public function testExecuteWithoutDataTotalAndHeadLinesFormatting()
- {
- $data = [];
- $this->_shellMock->expects($this->once())->method('getTablesInfo')->will($this->returnValue($data));
- $output = $this->_model->execute();
- $total = '/Total( )+\|( )+0( )+\|( )+0 b( )+\|( )+0 b( )+\|/';
- $this->assertRegExp($total, $output, 'Incorrect Total Line');
-
- $head = '/Table Name( )+\|( )+Rows( )+\|( )+Data Size( )+\|( )+Index Size( )+\|/';
- $this->assertRegExp($head, $output, 'Incorrect Head Line');
- }
-
- /**
- * @param array $tableData
- * @param string $expected
- * @dataProvider executeDataFormatDataProvider
- */
- public function testExecuteWithData($tableData, $expected)
- {
- $data = [$tableData];
- $this->_shellMock->expects($this->once())->method('getTablesInfo')->will($this->returnValue($data));
- $this->assertRegExp($expected, $this->_model->execute());
- }
-
- public function executeDataFormatDataProvider()
- {
- return [
- [
- ['name' => 'table_1', 'rows' => 1500, 'data_length' => 1000, 'index_length' => 1024 * 1024],
- '/table_1( )+\|( )+1\.50K( )+\|( )+1000 b( )+\|( )+1\.00Mb( )+\|/',
- ],
- [
- [
- 'name' => 'table_2',
- 'rows' => 1500000,
- 'data_length' => 1024 * 1024 * 1024,
- 'index_length' => 1024 * 1024 * 1024 * 500,
- ],
- '/table_2( )+\|( )+1\.50M( )+\|( )+1\.00Gb( )+\|( )+500\.00Gb( )+\|/'
- ]
- ];
- }
-}
diff --git a/app/code/Magento/Log/Test/Unit/Model/ShellTest.php b/app/code/Magento/Log/Test/Unit/Model/ShellTest.php
deleted file mode 100644
index 2b7071cd7a061b8ceb6a23c655c20e93f5087c19..0000000000000000000000000000000000000000
--- a/app/code/Magento/Log/Test/Unit/Model/ShellTest.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Log\Test\Unit\Model;
-
-class ShellTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_factoryMock;
-
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_shellMock;
-
- /**
- * @var \Magento\Log\Model\Shell
- */
- protected $_model;
-
- protected function setUp()
- {
- $this->_factoryMock = $this->getMock('Magento\Log\Model\Shell\Command\Factory', [], [], '', false);
- $filesystemMock = $this->getMock('Magento\Framework\Filesystem', [], [], '', false);
- $this->_model = $this->getMock(
- 'Magento\Log\Model\Shell',
- ['_applyPhpVariables'],
- [$filesystemMock, 'entryPoint.php', $this->_factoryMock]
- );
- }
-
- public function testRunWithShowHelp()
- {
- $this->expectOutputRegex('/Usage\: php -f entryPoint\.php/');
- $this->_model->setRawArgs(['h']);
- $this->_factoryMock->expects($this->never())->method('createCleanCommand');
- $this->_factoryMock->expects($this->never())->method('createStatusCommand');
- $this->_model->run();
- }
-
- public function testRunWithCleanCommand()
- {
- $this->expectOutputRegex('/clean command message/');
- $this->_model->setRawArgs(['clean', '--days', 10]);
- $commandMock = $this->getMock('Magento\Log\Model\Shell\CommandInterface');
- $this->_factoryMock->expects(
- $this->once()
- )->method(
- 'createCleanCommand'
- )->with(
- 10
- )->will(
- $this->returnValue($commandMock)
- );
- $commandMock->expects($this->once())->method('execute')->will($this->returnValue('clean command message'));
- $this->_factoryMock->expects($this->never())->method('createStatusCommand');
- $this->_model->run();
- }
-
- public function testRunWithStatusCommand()
- {
- $this->expectOutputRegex('/status command message/');
- $this->_model->setRawArgs(['status']);
- $commandMock = $this->getMock('Magento\Log\Model\Shell\CommandInterface');
- $this->_factoryMock->expects(
- $this->once()
- )->method(
- 'createStatusCommand'
- )->will(
- $this->returnValue($commandMock)
- );
- $commandMock->expects($this->once())->method('execute')->will($this->returnValue('status command message'));
- $this->_factoryMock->expects($this->never())->method('createCleanCommand');
- $this->_model->run();
- }
-
- public function testRunWithoutCommand()
- {
- $this->expectOutputRegex('/Usage\: php -f entryPoint\.php/');
- $this->_factoryMock->expects($this->never())->method('createStatusCommand');
- $this->_factoryMock->expects($this->never())->method('createCleanCommand');
- $this->_model->run();
- }
-}
diff --git a/app/code/Magento/Log/etc/di.xml b/app/code/Magento/Log/etc/di.xml
index 078c0d6e4a283a5d92161651e52e0fd1c405d885..ff051483d833a93d6cd55b226558fedba642815f 100644
--- a/app/code/Magento/Log/etc/di.xml
+++ b/app/code/Magento/Log/etc/di.xml
@@ -11,4 +11,12 @@
<argument name="storeManager" xsi:type="object">Magento\Store\Model\StoreManager\Proxy</argument>
</arguments>
</type>
+ <type name="Magento\Framework\Console\CommandList">
+ <arguments>
+ <argument name="commands" xsi:type="array">
+ <item name="logStatusCommand" xsi:type="object">Magento\Log\Console\Command\LogStatusCommand</item>
+ <item name="logCleanCommand" xsi:type="object">Magento\Log\Console\Command\LogCleanCommand</item>
+ </argument>
+ </arguments>
+ </type>
</config>
diff --git a/dev/shell/cache.php b/dev/shell/cache.php
deleted file mode 100644
index 9c44a5914daa6e255fe74d66ca587da01cd4ed35..0000000000000000000000000000000000000000
--- a/dev/shell/cache.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-/**
- * A CLI tool for managing Magento application caches
- *
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Framework\App;
-
-use Magento\Framework\App\Cache\ManagerApp;
-use Magento\Framework\Shell\ComplexParameter;
-
-require __DIR__ . '/../../app/bootstrap.php';
-
-$usage = 'Usage: php -f cache.php -- [--' . ManagerApp::KEY_SET . '=1|0]'
- . ' [--' . ManagerApp::KEY_CLEAN . ']'
- . ' [--' . ManagerApp::KEY_STATUS . ']'
- . ' [--' . ManagerApp::KEY_FLUSH . ']'
- . ' [--' . ManagerApp::KEY_TYPES . '=<type1>,<type2>,...]'
- . ' [--bootstrap=' . escapeshellarg('INIT_PARAM=foo&ANOTHER_PARAM[key]=bar') . ']
- --' . ManagerApp::KEY_TYPES . ' - list of cache types, comma-separated. If omitted, all caches will be affected
- --' . ManagerApp::KEY_SET . ' - enable or disable the specified cache types
- --' . ManagerApp::KEY_CLEAN . ' - clean data of the specified cache types
- --' . ManagerApp::KEY_STATUS . ' - display current status for each cache type
- --' . ManagerApp::KEY_FLUSH . ' - destroy all data in storage that the specified cache types reside on
- --bootstrap - add or override parameters of the bootstrap' . PHP_EOL;
-$longOpts = [
- ManagerApp::KEY_SET . '::',
- ManagerApp::KEY_CLEAN,
- ManagerApp::KEY_STATUS,
- ManagerApp::KEY_FLUSH,
- ManagerApp::KEY_TYPES . '::',
- 'bootstrap::',
-];
-$opt = getopt('', $longOpts);
-if (empty($opt)) {
- echo $usage;
-}
-
-try {
- $bootstrapParam = new ComplexParameter('bootstrap');
- $params = $bootstrapParam->mergeFromArgv($_SERVER, $_SERVER);
- $params[Bootstrap::PARAM_REQUIRE_MAINTENANCE] = null;
- $bootstrap = Bootstrap::create(BP, $params);
- /** @var ManagerApp $app */
- $app = $bootstrap->createApplication('Magento\Framework\App\Cache\ManagerApp', ['requestArgs' => $opt]);
- $bootstrap->run($app);
-} catch (\Exception $e) {
- echo $e;
- exit(1);
-}
diff --git a/dev/shell/indexer.php b/dev/shell/indexer.php
deleted file mode 100644
index 08c6cbe77d70f0f9ef0cebc7cd720f91fa74d669..0000000000000000000000000000000000000000
--- a/dev/shell/indexer.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-use Magento\Framework\App\Bootstrap;
-use Magento\Store\Model\StoreManager;
-
-require __DIR__ . '/../../app/bootstrap.php';
-$params = $_SERVER;
-$params[StoreManager::PARAM_RUN_CODE] = 'admin';
-$params[StoreManager::PARAM_RUN_TYPE] = 'store';
-$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
-/** @var \Magento\Indexer\App\Shell $application */
-$app = $bootstrap->createApplication('Magento\Indexer\App\Shell', ['entryFileName' => basename(__FILE__)]);
-$bootstrap->run($app);
diff --git a/dev/shell/log.php b/dev/shell/log.php
deleted file mode 100644
index 181b07ac06f9f1444d5527d4d0c34ddd143f44b1..0000000000000000000000000000000000000000
--- a/dev/shell/log.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-use Magento\Framework\App\Bootstrap;
-use Magento\Store\Model\StoreManager;
-
-require __DIR__ . '/../../app/bootstrap.php';
-$params = $_SERVER;
-$params[StoreManager::PARAM_RUN_CODE] = 'admin';
-$params[StoreManager::PARAM_RUN_TYPE] = 'store';
-$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
-/** @var \Magento\Log\App\Shell $app */
-$app = $bootstrap->createApplication('Magento\Log\App\Shell', ['entryFileName' => basename(__FILE__)]);
-$bootstrap->run($app);
diff --git a/dev/tests/integration/framework/Magento/TestFramework/Application.php b/dev/tests/integration/framework/Magento/TestFramework/Application.php
index 8059a1bf86d1e987bf7da8d5c22f547c90c5e910..41e57ac4359e8c8547ba425e15b15c8ba514571a 100644
--- a/dev/tests/integration/framework/Magento/TestFramework/Application.php
+++ b/dev/tests/integration/framework/Magento/TestFramework/Application.php
@@ -428,18 +428,18 @@ class Application
);
// enable only specified list of caches
- $cacheScript = BP . '/dev/shell/cache.php';
$initParamsQuery = $this->getInitParamsQuery();
- $this->_shell->execute('php -f %s -- --set=0 --bootstrap=%s', [$cacheScript, $initParamsQuery]);
- $cacheTypes = [
- \Magento\Framework\App\Cache\Type\Config::TYPE_IDENTIFIER,
- \Magento\Framework\App\Cache\Type\Layout::TYPE_IDENTIFIER,
- \Magento\Framework\App\Cache\Type\Translate::TYPE_IDENTIFIER,
- \Magento\Eav\Model\Cache\Type::TYPE_IDENTIFIER,
- ];
+ $this->_shell->execute('php -f %s cache:disable --all --bootstrap=%s', [BP . '/bin/magento', $initParamsQuery]);
$this->_shell->execute(
- 'php -f %s -- --set=1 --types=%s --bootstrap=%s',
- [$cacheScript, implode(',', $cacheTypes), $initParamsQuery]
+ 'php -f %s cache:enable %s %s %s %s --bootstrap=%s',
+ [
+ BP . '/bin/magento',
+ \Magento\Framework\App\Cache\Type\Config::TYPE_IDENTIFIER,
+ \Magento\Framework\App\Cache\Type\Layout::TYPE_IDENTIFIER,
+ \Magento\Framework\App\Cache\Type\Translate::TYPE_IDENTIFIER,
+ \Magento\Eav\Model\Cache\Type::TYPE_IDENTIFIER,
+ $initParamsQuery,
+ ]
);
// right after a clean installation, store DB dump for future reuse in tests or running the test suite again
diff --git a/dev/tests/integration/testsuite/Magento/Framework/View/Asset/MinifierTest.php b/dev/tests/integration/testsuite/Magento/Framework/View/Asset/MinifierTest.php
index da5a86c47a1496652cf53df739c93389f1c1e58c..9e64e9345c6fa2d84885c4ec01e469ed1df7277c 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/View/Asset/MinifierTest.php
+++ b/dev/tests/integration/testsuite/Magento/Framework/View/Asset/MinifierTest.php
@@ -208,9 +208,8 @@ class MinifierTest extends \PHPUnit_Framework_TestCase
->method('create')
->will($this->returnValue($this->objectManager));
- $logger = $this->objectManager->create(
- 'Magento\Tools\View\Deployer\Log',
- ['verbosity' => \Magento\Tools\View\Deployer\Log::SILENT]
+ $output = $this->objectManager->create(
+ 'Symfony\Component\Console\Output\ConsoleOutput'
);
$filesUtil = $this->getMock('\Magento\Framework\App\Utility\Files', [], [], '', false);
@@ -230,10 +229,10 @@ class MinifierTest extends \PHPUnit_Framework_TestCase
]
));
- /** @var \Magento\Tools\View\Deployer $deployer */
+ /** @var \Magento\Setup\ModelDeployer $deployer */
$deployer = $this->objectManager->create(
- 'Magento\Tools\View\Deployer',
- ['filesUtil' => $filesUtil, 'logger' => $logger, 'isDryRun' => false]
+ 'Magento\Setup\Model\Deployer',
+ ['filesUtil' => $filesUtil, 'output' => $output, 'isDryRun' => false]
);
$deployer->deploy($omFactory, ['en_US']);
diff --git a/dev/tests/integration/testsuite/Magento/Indexer/Model/ShellTest.php b/dev/tests/integration/testsuite/Magento/Indexer/Model/ShellTest.php
deleted file mode 100644
index 9d2a1e7d0e183992397f5fa7dba6d1354dc6b1de..0000000000000000000000000000000000000000
--- a/dev/tests/integration/testsuite/Magento/Indexer/Model/ShellTest.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Indexer\Model;
-
-class ShellTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * Returns prepared model
- *
- * @param string $entryPoint
- * @return \Magento\Indexer\Model\Shell
- */
- protected function getModel($entryPoint = 'fake.php')
- {
- return \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
- 'Magento\Indexer\Model\Shell',
- ['entryPoint' => $entryPoint]
- );
- }
-
- /**
- * Returns result of running model - can be real model or mocked one
- *
- * @param \Magento\Indexer\Model\Shell $model Can be mock
- * @return string
- */
- protected function runModel($model)
- {
- ob_start();
- $model->run();
- $result = ob_get_contents();
- ob_end_clean();
- return $result;
- }
-
- public function testGetUsageHelp()
- {
- $model = $this->getModel('testme.php');
- $this->assertContains('testme.php', $model->getUsageHelp());
- }
-
- public function testRunWithoutParams()
- {
- $model = $this->getModel('testme.php');
- $result = $this->runModel($model);
- $this->assertContains('testme.php', $result);
- $this->assertContains('index', $result); // Something about indexes
- }
-
- public function testRunIndexList()
- {
- $model = $this->getModel('testme.php');
- $model->setRawArgs(['testme.php', '--', 'status']);
- $result = $this->runModel($model);
-
- $this->assertNotContains('testme.php', $result);
- $this->assertNotContains('Usage:', $result);
-
- /** @var \Magento\Indexer\Model\Indexer\Collection $indexerCollection */
- $indexerCollection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
- 'Magento\Indexer\Model\Indexer\Collection'
- );
- foreach ($indexerCollection->getItems() as $indexer) {
- /** @var \Magento\Indexer\Model\IndexerInterface $indexer */
- $this->assertContains((string)$indexer->getTitle(), $result);
- }
- }
-
- /**
- * @param string $param
- * @param bool $expectedHasErrors
- *
- * @dataProvider hasErrorsDataProvider
- */
- public function testHasErrors($param, $expectedHasErrors)
- {
- $model = $this->getModel('testme.php');
- $model->setRawArgs(['testme.php', '--', $param]);
- $this->runModel($model);
-
- $this->assertEquals($expectedHasErrors, $model->hasErrors());
- }
-
- /**
- * @return array
- */
- public function hasErrorsDataProvider()
- {
- return [
- 'execution without issues' => ['info', false],
- 'issue with wrong index' => ['--reindex=wrong_index_code', true]
- ];
- }
-}
diff --git a/dev/tests/integration/testsuite/Magento/Log/Model/ShellTest.php b/dev/tests/integration/testsuite/Magento/Log/Model/ShellTest.php
deleted file mode 100644
index 8e9159d002ec0b048fd8304cfa462518b36bc75b..0000000000000000000000000000000000000000
--- a/dev/tests/integration/testsuite/Magento/Log/Model/ShellTest.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Log\Model;
-
-class ShellTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * Returns prepared model
- *
- * @param string $entryPoint
- * @return \Magento\Log\Model\Shell
- */
- protected function _getModel($entryPoint = 'fake.php')
- {
- return \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
- 'Magento\Log\Model\Shell',
- ['entryPoint' => $entryPoint]
- );
- }
-
- /**
- * Returns result of running model - can be real model or mocked one
- *
- * @param \Magento\Log\Model\Shell $model Can be mock
- * @return string
- */
- protected function _run($model)
- {
- ob_start();
- $model->run();
- $result = ob_get_contents();
- ob_end_clean();
- return $result;
- }
-
- public function testGetUsageHelp()
- {
- $model = $this->_getModel('testme.php');
- $this->assertContains('testme.php', $model->getUsageHelp());
- }
-
- public function testRunWithoutParams()
- {
- $model = $this->_getModel('testme.php');
- $result = $this->_run($model);
- $this->assertContains('testme.php', $result);
- $this->assertContains('log', $result); // Something about logs
- }
-
- public function testRunLogStatus()
- {
- $model = $this->_getModel('testme.php');
- $model->setRawArgs(['testme.php', 'status']);
- $result = $this->_run($model);
-
- $this->assertNotContains('testme.php', $result);
- $this->assertNotContains('Usage:', $result);
- $this->assertContains('Table', $result);
- $this->assertContains('Total', $result);
- $this->assertContains('Rows', $result);
- }
-}
diff --git a/dev/tests/integration/testsuite/Magento/Setup/Console/Command/I18nCollectPhrasesCommandTest.php b/dev/tests/integration/testsuite/Magento/Setup/Console/Command/I18nCollectPhrasesCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..924853df6bc0c75cb219ec88afb42317c33d4f1d
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Setup/Console/Command/I18nCollectPhrasesCommandTest.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Setup\Console\Command;
+
+use Symfony\Component\Console\Tester\CommandTester;
+
+class I18nCollectPhrasesCommandTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @var I18nCollectPhrasesCommand
+ */
+ private $command;
+
+ /**
+ * @var CommandTester
+ */
+ private $tester;
+
+ public function setUp()
+ {
+ $this->command = new I18nCollectPhrasesCommand();
+ $this->tester = new CommandTester($this->command);
+ }
+
+ public function tearDown()
+ {
+ $property = new \ReflectionProperty('\Magento\Setup\Module\I18n\ServiceLocator', '_dictionaryGenerator');
+ $property->setAccessible(true);
+ $property->setValue(null);
+ $property->setAccessible(false);
+ }
+
+ public function testExecuteConsoleOutput()
+ {
+ $this->tester->execute(
+ [
+ 'directory' => BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/',
+ ]
+ );
+
+ $this->assertEquals('Dictionary successfully processed.' . PHP_EOL, $this->tester->getDisplay());
+ }
+
+ public function testExecuteCsvOutput()
+ {
+ $outputPath = BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/output/output.csv';
+ $this->tester->execute(
+ [
+ 'directory' => BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/',
+ '--output' => $outputPath,
+ ]
+ );
+
+ $handle = fopen($outputPath, 'r');
+ $output = fread($handle, filesize($outputPath));
+ $expected = '"Hello world","Hello world"' . PHP_EOL . '"Foo bar","Foo bar"' . PHP_EOL;
+ $this->assertEquals($expected, $output);
+ unlink($outputPath);
+ }
+
+ /**
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage Specified path doesn't exist
+ */
+ public function testExecuteNonExistingPath()
+ {
+ $this->tester->execute(
+ [
+ 'directory' => BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/non_exist',
+ ]
+ );
+ }
+}
diff --git a/dev/tests/integration/testsuite/Magento/Setup/Console/Command/I18nPackCommandTest.php b/dev/tests/integration/testsuite/Magento/Setup/Console/Command/I18nPackCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..0185b06a5376b5b20884e28a241ca9d5a76854f4
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Setup/Console/Command/I18nPackCommandTest.php
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Setup\Console\Command;
+
+use Symfony\Component\Console\Tester\CommandTester;
+
+class I18nPackCommandTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @var I18nCollectPhrasesCommand
+ */
+ private $command;
+
+ /**
+ * @var CommandTester
+ */
+ private $tester;
+
+ public function setUp()
+ {
+ $this->command = new I18nPackCommand();
+ $this->tester = new CommandTester($this->command);
+ }
+
+ public function testExecute()
+ {
+ $this->tester->execute(
+ [
+ 'source' => BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/i18n.csv',
+ 'pack' => BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/output/pack',
+ 'locale' => 'de_DE',
+ '--allow-duplicates' => true,
+ ]
+ );
+
+ $this->assertEquals('Successfully saved de_DE language package.' . PHP_EOL, $this->tester->getDisplay());
+ $basePath = BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/output/pack/app/code';
+ $this->assertFileExists($basePath . '/Magento/A/i18n/de_DE.csv');
+ $this->assertFileExists($basePath . '/Magento/B/i18n/de_DE.csv');
+ $this->assertFileExists($basePath . '/Magento/C/i18n/de_DE.csv');
+ $this->assertFileExists($basePath . '/Magento/D/i18n/de_DE.csv');
+ unlink($basePath . '/Magento/A/i18n/de_DE.csv');
+ unlink($basePath . '/Magento/B/i18n/de_DE.csv');
+ unlink($basePath . '/Magento/C/i18n/de_DE.csv');
+ unlink($basePath . '/Magento/D/i18n/de_DE.csv');
+ $this->recursiveRmdir(BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/output/pack');
+
+ }
+
+ /**
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage Cannot open dictionary file:
+ */
+ public function testExecuteNonExistingPath()
+ {
+ $nonExistPath = BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/non_exist.csv';
+ $this->tester->execute(
+ [
+ 'source' => $nonExistPath,
+ 'pack' => BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/output/pack',
+ 'locale' => 'de_DE',
+ '--allow-duplicates' => true,
+ ]
+ );
+ }
+
+ /**
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage Possible values for 'mode' option are 'replace' and 'merge'
+ */
+ public function testExecuteInvalidMode()
+ {
+ $this->tester->execute(
+ [
+ 'source' => BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/i18n.csv',
+ 'pack' => BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/output/pack',
+ 'locale' => 'de_DE',
+ '--allow-duplicates' => true,
+ '--mode' => 'invalid'
+ ]
+ );
+ }
+
+ /**
+ * Removes directories recursively
+ *
+ * @param string $dir
+ * @return void
+ */
+ private function recursiveRmdir($dir)
+ {
+ if (is_dir($dir)) {
+ $subdirs = scandir($dir);
+ foreach ($subdirs as $subdir) {
+ if ($subdir !== '.' && $subdir !== '..' && filetype($dir . '/' . $subdir) === 'dir') {
+ $this->recursiveRmdir($dir . '/' . $subdir);
+ }
+ }
+ rmdir($dir);
+ }
+ }
+}
diff --git a/dev/tools/Magento/Tools/I18n/bootstrap.php b/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/Magento/TestModule/Phrases.php
similarity index 64%
rename from dev/tools/Magento/Tools/I18n/bootstrap.php
rename to dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/Magento/TestModule/Phrases.php
index 61706a7fde27c998109e16d10734951523a7deee..d55885ff96f2b8da7acce4f97c505fa2a6b8aa76 100644
--- a/dev/tools/Magento/Tools/I18n/bootstrap.php
+++ b/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/Magento/TestModule/Phrases.php
@@ -3,4 +3,5 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-require_once __DIR__ . '/../../../../../app/autoload.php';
+$a = __("Hello world");
+$b = __("Foo bar");
diff --git a/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/i18n.csv b/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/i18n.csv
new file mode 100644
index 0000000000000000000000000000000000000000..534d54c7c26bb98887ec60d9fbd122864b821c75
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/i18n.csv
@@ -0,0 +1,9 @@
+"Read Details","Read Details",module,Magento_A
+"Mark as Read","Mark as Read",module,Magento_A
+"Are you sure?","Are you sure?",module,"Magento_A,Magento_B,Magento_C"
+"Messages Inbox","Messages Inbox",module,Magento_D
+"You have %1 new system messages","You have %1 new system messages",module,Magento_A
+"You have %1 new system message","You have %1 new system message",module,Magento_B
+"Incoming Message","Incoming Message",module,Magento_C
+close,close,module,"Magento_B,Magento_C"
+"Read details","Read details",module,Magento_D
diff --git a/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/output/.gitignore b/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/output/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/GeneratorTest.php b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/GeneratorTest.php
similarity index 78%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/GeneratorTest.php
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/GeneratorTest.php
index 04048be30c063d6d06759d5133c2fdf5492158a9..7f879a81daeffc30fad8346e7ad980789d1bb5bb 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/GeneratorTest.php
+++ b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/GeneratorTest.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Test\Tools\I18n\Dictionary;
+namespace Magento\Setup\Module\I18n\Dictionary;
-use Magento\Tools\I18n\ServiceLocator;
+use Magento\Setup\Module\I18n\ServiceLocator;
class GeneratorTest extends \PHPUnit_Framework_TestCase
{
@@ -30,7 +30,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
protected $outputFileName;
/**
- * @var \Magento\Tools\I18n\Dictionary\Generator
+ * @var \Magento\Setup\Module\I18n\Dictionary\Generator
*/
protected $generator;
@@ -41,6 +41,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
$this->source = $this->testDir . '/source';
$this->outputFileName = $this->testDir . '/translate.csv';
$this->generator = ServiceLocator::getDictionaryGenerator();
+
}
protected function tearDown()
@@ -48,6 +49,10 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
if (file_exists($this->outputFileName)) {
unlink($this->outputFileName);
}
+ $property = new \ReflectionProperty('Magento\Setup\Module\I18n\ServiceLocator', '_dictionaryGenerator');
+ $property->setAccessible(true);
+ $property->setValue(null);
+ $property->setAccessible(false);
}
public function testGenerationWithoutContext()
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/expected/with_context.csv b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/expected/with_context.csv
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/expected/with_context.csv
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/expected/with_context.csv
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/expected/without_context.csv b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/expected/without_context.csv
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/expected/without_context.csv
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/expected/without_context.csv
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/Helper/Helper.php b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/Helper/Helper.php
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/Helper/Helper.php
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/Helper/Helper.php
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/Model/Model.php b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/Model/Model.php
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/Model/Model.php
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/Model/Model.php
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/view/frontend/default.xml b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/view/frontend/default.xml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/view/frontend/default.xml
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/view/frontend/default.xml
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/view/frontend/file.js b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/view/frontend/file.js
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/view/frontend/file.js
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/view/frontend/file.js
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/view/frontend/template.phtml b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/view/frontend/template.phtml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/view/frontend/template.phtml
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/view/frontend/template.phtml
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/SecondModule/Model/Model.php b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/SecondModule/Model/Model.php
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/SecondModule/Model/Model.php
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/SecondModule/Model/Model.php
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/design/adminhtml/default/backend/default.xml b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/design/adminhtml/default/backend/default.xml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/design/adminhtml/default/backend/default.xml
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/design/adminhtml/default/backend/default.xml
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/design/adminhtml/default/backend/template.phtml b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/design/adminhtml/default/backend/template.phtml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/design/adminhtml/default/backend/template.phtml
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/design/adminhtml/default/backend/template.phtml
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/lib/web/mage/file.js b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/lib/web/mage/file.js
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/lib/web/mage/file.js
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/lib/web/mage/file.js
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/lib/web/varien/file.js b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/lib/web/varien/file.js
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/lib/web/varien/file.js
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/lib/web/varien/file.js
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/not_magento_dir/Model.php b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/not_magento_dir/Model.php
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/not_magento_dir/Model.php
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/not_magento_dir/Model.php
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/not_magento_dir/file.js b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/not_magento_dir/file.js
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/not_magento_dir/file.js
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/not_magento_dir/file.js
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/not_magento_dir/template.phtml b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/not_magento_dir/template.phtml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/not_magento_dir/template.phtml
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/not_magento_dir/template.phtml
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Pack/GeneratorTest.php b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Pack/GeneratorTest.php
similarity index 92%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Pack/GeneratorTest.php
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Pack/GeneratorTest.php
index c38ce4760b52d31646ff7d8aa762ba0f5b1ee7ec..ff28ebe4eda12bc1a7555365424326188eefff0e 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Pack/GeneratorTest.php
+++ b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Pack/GeneratorTest.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Test\Tools\I18n\Pack;
+namespace Magento\Setup\Module\I18n\Pack;
-use Magento\Tools\I18n\ServiceLocator;
+use Magento\Setup\Module\I18n\ServiceLocator;
class GeneratorTest extends \PHPUnit_Framework_TestCase
{
@@ -40,7 +40,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
protected $_expectedFiles;
/**
- * @var \Magento\Tools\I18n\Pack\Generator
+ * @var \Magento\Setup\Module\I18n\Pack\Generator
*/
protected $_generator;
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Pack/_files/expected/app/code/Magento/FirstModule/i18n/de_DE.csv b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Pack/_files/expected/app/code/Magento/FirstModule/i18n/de_DE.csv
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Pack/_files/expected/app/code/Magento/FirstModule/i18n/de_DE.csv
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Pack/_files/expected/app/code/Magento/FirstModule/i18n/de_DE.csv
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Pack/_files/expected/app/code/Magento/SecondModule/i18n/de_DE.csv b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Pack/_files/expected/app/code/Magento/SecondModule/i18n/de_DE.csv
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Pack/_files/expected/app/code/Magento/SecondModule/i18n/de_DE.csv
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Pack/_files/expected/app/code/Magento/SecondModule/i18n/de_DE.csv
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Pack/_files/expected/app/design/adminhtml/default/i18n/de_DE.csv b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Pack/_files/expected/app/design/adminhtml/default/i18n/de_DE.csv
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Pack/_files/expected/app/design/adminhtml/default/i18n/de_DE.csv
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Pack/_files/expected/app/design/adminhtml/default/i18n/de_DE.csv
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Pack/_files/expected/lib/web/i18n/de_DE.csv b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Pack/_files/expected/lib/web/i18n/de_DE.csv
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Pack/_files/expected/lib/web/i18n/de_DE.csv
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Pack/_files/expected/lib/web/i18n/de_DE.csv
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Pack/_files/source.csv b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Pack/_files/source.csv
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Pack/_files/source.csv
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Pack/_files/source.csv
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollectorTest.php b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollectorTest.php
similarity index 76%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollectorTest.php
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollectorTest.php
index 7e0f91b9e91b53e38d5f4db838bd1ade388a43a5..eda3f0f515808a7c45245bf53d2d6fabce0dd596 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollectorTest.php
+++ b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollectorTest.php
@@ -3,14 +3,13 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Test\Tools\I18n\Parser\Adapter\Php\Tokenizer;
+namespace Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer;
use Magento\Framework\ObjectManager;
use Magento\TestFramework\Helper\Bootstrap;
-use Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector;
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector
*/
class PhraseCollectorTest extends \PHPUnit_Framework_TestCase
{
@@ -28,12 +27,12 @@ class PhraseCollectorTest extends \PHPUnit_Framework_TestCase
{
$this->objectManager = Bootstrap::getObjectManager();
$this->phraseCollector = $this->objectManager->create(
- 'Magento\\Tools\\I18n\\Parser\\Adapter\\Php\\Tokenizer\\PhraseCollector'
+ 'Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector'
);
}
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector::parse
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector::parse
*/
public function testParse()
{
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Parser/Adapter/Php/Tokenizer/Translate/MethodCollectorTest.php b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/Translate/MethodCollectorTest.php
similarity index 73%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Parser/Adapter/Php/Tokenizer/Translate/MethodCollectorTest.php
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/Translate/MethodCollectorTest.php
index 6d401f7ce7ee767f8875d0014d13c29f330a56c6..b2d0bd34d90250af7300e12a54325c985c886819 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Parser/Adapter/Php/Tokenizer/Translate/MethodCollectorTest.php
+++ b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/Translate/MethodCollectorTest.php
@@ -3,14 +3,13 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Test\Tools\I18n\Parser\Adapter\Php\Tokenizer\Translate;
+namespace Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Translate;
use Magento\Framework\ObjectManager;
use Magento\TestFramework\Helper\Bootstrap;
-use Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Translate\MethodCollector;
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Translate\MethodCollector
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Translate\MethodCollector
*/
class MethodCollectorTest extends \PHPUnit_Framework_TestCase
{
@@ -28,12 +27,12 @@ class MethodCollectorTest extends \PHPUnit_Framework_TestCase
{
$this->objectManager = Bootstrap::getObjectManager();
$this->methodCollector = $this->objectManager->create(
- 'Magento\\Tools\\I18n\\Parser\\Adapter\\Php\\Tokenizer\\Translate\\MethodCollector'
+ 'Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Translate\MethodCollector'
);
}
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Translate\MethodCollector::parse
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Translate\MethodCollector::parse
*/
public function testParse()
{
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Parser/Adapter/Php/Tokenizer/_files/methodsCode.php.txt b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/_files/methodsCode.php.txt
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Parser/Adapter/Php/Tokenizer/_files/methodsCode.php.txt
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/_files/methodsCode.php.txt
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Parser/Adapter/Php/Tokenizer/_files/objectsCode.php.txt b/dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/_files/objectsCode.php.txt
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Parser/Adapter/Php/Tokenizer/_files/objectsCode.php.txt
rename to dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/_files/objectsCode.php.txt
diff --git a/dev/tests/performance/framework/Magento/TestFramework/Application.php b/dev/tests/performance/framework/Magento/TestFramework/Application.php
index d236858ef259a39473edec5fc8df71fdae81d41a..bd192386c9d747fbb5b154c615a70014c1e7ead6 100644
--- a/dev/tests/performance/framework/Magento/TestFramework/Application.php
+++ b/dev/tests/performance/framework/Magento/TestFramework/Application.php
@@ -118,7 +118,7 @@ class Application
public function reindex()
{
$this->_shell->execute(
- 'php -f ' . $this->_config->getApplicationBaseDir() . '/dev/shell/indexer.php -- reindexall'
+ 'php -f ' . $this->_config->getApplicationBaseDir() . '/bin/magento indexer:reindex --all'
);
return $this;
}
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/App/Language/TranslationFilesTest.php b/dev/tests/static/testsuite/Magento/Test/Integrity/App/Language/TranslationFilesTest.php
index c0d1f61f6b0ff1c2da92142b3345fea1b1af586c..e4e8b509da43cedb2925339ec0d57e16d40d3475 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/App/Language/TranslationFilesTest.php
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/App/Language/TranslationFilesTest.php
@@ -13,7 +13,7 @@ class TranslationFilesTest extends TranslationFiles
/**
* Context
*
- * @var \Magento\Tools\I18n\Context
+ * @var \Magento\Setup\Module\I18n\Context
*/
protected $context;
@@ -45,7 +45,7 @@ class TranslationFilesTest extends TranslationFiles
{
$parser = $this->prepareParser();
- $optionResolverFactory = new \Magento\Tools\I18n\Dictionary\Options\ResolverFactory();
+ $optionResolverFactory = new \Magento\Setup\Module\I18n\Dictionary\Options\ResolverFactory();
$optionResolver = $optionResolverFactory->create(
\Magento\Framework\App\Utility\Files::init()->getPathToSource(),
true
@@ -70,7 +70,7 @@ class TranslationFilesTest extends TranslationFiles
}
/**
- * @param \Magento\Tools\I18n\Dictionary\Phrase $phrase
+ * @param \Magento\Setup\Module\I18n\Dictionary\Phrase $phrase
* @param array $context
* @return string
*/
@@ -78,41 +78,41 @@ class TranslationFilesTest extends TranslationFiles
{
$path = $this->getContext()->buildPathToLocaleDirectoryByContext($phrase->getContextType(), $context);
return \Magento\Framework\App\Utility\Files::init()->getPathToSource() . '/'
- . $path . \Magento\Tools\I18n\Locale::DEFAULT_SYSTEM_LOCALE
- . '.' . \Magento\Tools\I18n\Pack\Writer\File\Csv::FILE_EXTENSION;
+ . $path . \Magento\Setup\Module\I18n\Locale::DEFAULT_SYSTEM_LOCALE
+ . '.' . \Magento\Setup\Module\I18n\Pack\Writer\File\Csv::FILE_EXTENSION;
}
/**
- * @return \Magento\Tools\I18n\Context
+ * @return \Magento\Setup\Module\I18n\Context
*/
protected function getContext()
{
if ($this->context === null) {
- $this->context = new \Magento\Tools\I18n\Context();
+ $this->context = new \Magento\Setup\Module\I18n\Context();
}
return $this->context;
}
/**
- * @return \Magento\Tools\I18n\Parser\Contextual
+ * @return \Magento\Setup\Module\I18n\Parser\Contextual
*/
protected function prepareParser()
{
- $filesCollector = new \Magento\Tools\I18n\FilesCollector();
+ $filesCollector = new \Magento\Setup\Module\I18n\FilesCollector();
- $phraseCollector = new \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector(
- new \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer()
+ $phraseCollector = new \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector(
+ new \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer()
);
$adapters = [
- 'php' => new \Magento\Tools\I18n\Parser\Adapter\Php($phraseCollector),
- 'js' => new \Magento\Tools\I18n\Parser\Adapter\Js(),
- 'xml' => new \Magento\Tools\I18n\Parser\Adapter\Xml(),
+ 'php' => new \Magento\Setup\Module\I18n\Parser\Adapter\Php($phraseCollector),
+ 'js' => new \Magento\Setup\Module\I18n\Parser\Adapter\Js(),
+ 'xml' => new \Magento\Setup\Module\I18n\Parser\Adapter\Xml(),
];
- $parserContextual = new \Magento\Tools\I18n\Parser\Contextual(
+ $parserContextual = new \Magento\Setup\Module\I18n\Parser\Contextual(
$filesCollector,
- new \Magento\Tools\I18n\Factory(),
- new \Magento\Tools\I18n\Context()
+ new \Magento\Setup\Module\I18n\Factory(),
+ new \Magento\Setup\Module\I18n\Context()
);
foreach ($adapters as $type => $adapter) {
$parserContextual->addAdapter($type, $adapter);
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/Di/CompilerTest.php b/dev/tests/static/testsuite/Magento/Test/Integrity/Di/CompilerTest.php
index 780e83022c4aa53c7d9bd05fcec9514cd5966448..23fcd366b3325a1789c9c05f5645ffdc91603ad1 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/Di/CompilerTest.php
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/Di/CompilerTest.php
@@ -68,10 +68,18 @@ class CompilerTest extends \PHPUnit_Framework_TestCase
$basePath = \Magento\Framework\App\Utility\Files::init()->getPathToSource();
$basePath = str_replace('\\', '/', $basePath);
+
$this->_tmpDir = realpath(__DIR__) . '/tmp';
$this->_generationDir = $this->_tmpDir . '/generation';
+ if (!file_exists($this->_generationDir)) {
+ mkdir($this->_generationDir, 0777, true);
+ }
$this->_compilationDir = $this->_tmpDir . '/di';
- $this->_command = 'php ' . $basePath . '/dev/tools/Magento/Tools/Di/compiler.php --generation=%s --di=%s';
+ if (!file_exists($this->_compilationDir)) {
+ mkdir($this->_compilationDir, 0777, true);
+ }
+
+ $this->_command = 'php ' . $basePath . '/bin/magento setup:di:compile-multi-tenant --generation=%s --di=%s';
$booleanUtils = new \Magento\Framework\Stdlib\BooleanUtils();
$constInterpreter = new \Magento\Framework\Data\Argument\Interpreter\Constant();
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/Phrase/AbstractTestCase.php b/dev/tests/static/testsuite/Magento/Test/Integrity/Phrase/AbstractTestCase.php
index ec48f6e8a1a25e95939ed472fb4f27700cdd2a87..fdd1a38c2753d971e4bfa460f7943d413eb10cb0 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/Phrase/AbstractTestCase.php
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/Phrase/AbstractTestCase.php
@@ -9,7 +9,7 @@
*/
namespace Magento\Test\Integrity\Phrase;
-use Magento\Tools\I18n\FilesCollector;
+use Magento\Setup\Module\I18n\FilesCollector;
class AbstractTestCase extends \PHPUnit_Framework_TestCase
{
@@ -27,7 +27,7 @@ class AbstractTestCase extends \PHPUnit_Framework_TestCase
*/
protected function _getFiles()
{
- $filesCollector = new \Magento\Tools\I18n\FilesCollector();
+ $filesCollector = new \Magento\Setup\Module\I18n\FilesCollector();
return $filesCollector->getFiles(
[\Magento\Framework\App\Utility\Files::init()->getPathToSource()],
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/Phrase/ArgumentsTest.php b/dev/tests/static/testsuite/Magento/Test/Integrity/Phrase/ArgumentsTest.php
index 77b1c099f1cc4a7eef7f91c7d2081a1cd54766b0..514f39e7180c4dcec384f6cf3cc15bce62e1f466 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/Phrase/ArgumentsTest.php
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/Phrase/ArgumentsTest.php
@@ -10,12 +10,12 @@
*/
namespace Magento\Test\Integrity\Phrase;
-use Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer;
+use Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer;
class ArgumentsTest extends \Magento\Test\Integrity\Phrase\AbstractTestCase
{
/**
- * @var \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector
+ * @var \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector
*/
protected $_phraseCollector;
@@ -29,8 +29,8 @@ class ArgumentsTest extends \Magento\Test\Integrity\Phrase\AbstractTestCase
protected function setUp()
{
- $this->_phraseCollector = new \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector(
- new \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer()
+ $this->_phraseCollector = new \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector(
+ new \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer()
);
$rootDir = \Magento\Framework\App\Utility\Files::init()->getPathToSource();
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/Phrase/Legacy/SignatureTest.php b/dev/tests/static/testsuite/Magento/Test/Integrity/Phrase/Legacy/SignatureTest.php
index 0cec004de647fc17f31e8d8c402fc110069a271d..ba905c42fe0cdf739e1d402165dff0c137228ae1 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/Phrase/Legacy/SignatureTest.php
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/Phrase/Legacy/SignatureTest.php
@@ -9,20 +9,20 @@
*/
namespace Magento\Test\Integrity\Phrase\Legacy;
-use Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer;
-use Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Translate\MethodCollector;
+use Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer;
+use Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Translate\MethodCollector;
class SignatureTest extends \Magento\Test\Integrity\Phrase\AbstractTestCase
{
/**
- * @var \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Translate\MethodCollector
+ * @var \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Translate\MethodCollector
*/
protected $_phraseCollector;
protected function setUp()
{
- $this->_phraseCollector = new \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Translate\MethodCollector(
- new \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer()
+ $this->_phraseCollector = new MethodCollector(
+ new Tokenizer()
);
}
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/namespace.txt b/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/namespace.txt
index 1c00c272708bd0ec91a8cdd3b6f4ff1df4637715..f15f6f424a7c8311ffc4ca22503c61e32ee7efb5 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/namespace.txt
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/namespace.txt
@@ -1,7 +1,3 @@
-dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/Model/Test.php
-dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/Helper/Test.php
-dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/Element.php
-dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/ElementFactory.php
lib/internal/Magento/Framework/Code/Test/Unit/_files/app/code/Magento/SomeModule/Model/Proxy.php
lib/internal/Magento/Framework/Code/Test/Unit/_files/app/code/Magento/SomeModule/Model/ElementFactory.php
lib/internal/Magento/Framework/Code/Test/Unit/_files/app/code/Magento/SomeModule/Model/One/Test.php
@@ -21,13 +17,13 @@ lib/internal/Magento/Framework/ObjectManager/Test/Unit/_files/Aggregate/Aggregat
lib/internal/Magento/Framework/ObjectManager/Test/Unit/_files/Aggregate/Child.php
lib/internal/Magento/Framework/Api/Test/Unit/Code/Generator/_files/Sample.php
lib/internal/Magento/Framework/Api/Test/Unit/Code/Generator/_files/ExtensibleSample.php
-dev/tools/Magento/Tools/I18n/Zend/Exception.php
-dev/tools/Magento/Tools/I18n/Zend/Console/Getopt/Exception.php
-dev/tools/Magento/Tools/I18n/Zend/Console/Getopt.php
-dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/Model/Model.php
-dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/SecondModule/Model/Model.php
-dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/not_magento_dir/Model.php
-dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/Helper/Helper.php
+setup/src/Magento/Setup/Module/I18n/Zend/Exception.php
+setup/src/Magento/Setup/Module/I18n/Zend/Console/Getopt/Exception.php
+setup/src/Magento/Setup/Module/I18n/Zend/Console/Getopt.php
+dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/Model/Model.php
+dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/SecondModule/Model/Model.php
+dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/not_magento_dir/Model.php
+dev/tests/integration/testsuite/Magento/Setup/Module/I18n/Dictionary/_files/source/app/code/Magento/FirstModule/Helper/Helper.php
dev/tests/integration/testsuite/Magento/Framework/Api/_files/Magento/Wonderland/Api/Data/FakeAddressInterface.php
dev/tests/integration/testsuite/Magento/Framework/Api/_files/Magento/Wonderland/Api/Data/FakeExtensibleOneInterface.php
dev/tests/integration/testsuite/Magento/Framework/Api/_files/Magento/Wonderland/Api/Data/FakeExtensibleTwoInterface.php
@@ -96,3 +92,7 @@ dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/code/Magent
dev/tests/integration/testsuite/Magento/Framework/Code/_expected/SourceClassWithNamespaceFactory.php
dev/tests/integration/testsuite/Magento/Framework/Code/_expected/SourceClassWithNamespaceInterceptor.php
dev/tests/integration/testsuite/Magento/Framework/Code/_expected/SourceClassWithNamespaceProxy.php
+setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/Model/Test.php
+setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/Helper/Test.php
+setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/Element.php
+setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/ElementFactory.php
diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php
index 57cd1b6a4c81734430ee2dca24c68aa4ff61b623..59cf16d245655b3613dbf2bcedbf296ef0ed4330 100755
--- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php
+++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php
@@ -2875,7 +2875,7 @@ return [
['Magento\Tax\Service\V1\Data\TaxDetails\AppliedTaxRate', 'Magento\Tax\Api\Data\AppliedTaxRateInterface'],
['Magento\Tax\Service\V1\Data\TaxDetails\Item', 'Magento\Tax\Api\Data\TaxDetailsItemInterface'],
['Magento\Tax\Service\V1\OrderTaxServiceInterface', 'Magento\Tax\Api\OrderTaxManagementInterface'],
- ['Magento\Tools\I18n\Code', 'Magento\Tools\I18n'],
+ ['Magento\Tools\I18n\Code', 'Magento\Setup\Module\I18n'],
['Magento\TestFramework\Utility\AggregateInvoker', 'Magento\Framework\App\Utility\AggregateInvoker'],
['Magento\TestFramework\Utility\Classes', 'Magento\Framework\App\Utility\Classes'],
['Magento\TestFramework\Utility\Files', 'Magento\Framework\App\Utility\Files'],
@@ -3161,4 +3161,177 @@ return [
['Magento\Framework\Exception\File\ValidatorException'],
['Magento\Framework\Filesystem\FilesystemException', 'Magento\Framework\Exception\FileSystemException'],
['Magento\Shipping\Exception'],
+ ['Magento\Log\Model\Shell'],
+ ['Magento\Log\App\Shell'],
+ ['Magento\Framework\App\Cache\ManagerApp'],
+ ['Magento\Log\Model\Shell\Command\Factory'],
+ ['Magento\Tools\Di\App\Compiler'],
+ ['Magento\Indexer\App\Shell'],
+ ['Magento\Indexer\Model\Shell'],
+ ['Magento\Tools\I18n\Context', 'Magento\Setup\Module\I18n\Context'],
+ ['Magento\Tools\I18n\Dictionary\Generator', 'Magento\Setup\Module\I18n\Dictionary\Generator'],
+ [
+ 'Magento\Tools\I18n\Dictionary\Loader\File\AbstractFile',
+ 'Magento\Setup\Module\I18n\Dictionary\Loader\File\AbstractFile'
+ ],
+ ['Magento\Tools\I18n\Dictionary\Loader\File\Csv', 'Magento\Setup\Module\I18n\Dictionary\Loader\File\Csv'],
+ ['Magento\Tools\I18n\Dictionary\Loader\FileInterface', 'Magento\Setup\Module\I18n\Dictionary\Loader\FileInterface'],
+ ['Magento\Tools\I18n\Dictionary\Options\Resolver', 'Magento\Setup\Module\I18n\Dictionary\Options\Resolver'],
+ [
+ 'Magento\Tools\I18n\Dictionary\Options\ResolverFactory',
+ 'Magento\Setup\Module\I18n\Dictionary\Options\ResolverFactory'
+ ],
+ [
+ 'Magento\Tools\I18n\Dictionary\Options\ResolverInterface',
+ 'Magento\Setup\Module\I18n\Dictionary\Options\ResolverInterface'
+ ],
+ ['Magento\Tools\I18n\Dictionary\Phrase', 'Magento\Setup\Module\I18n\Dictionary\Phrase'],
+ ['Magento\Tools\I18n\Dictionary\Writer\Csv\Stdo', 'Magento\Setup\Module\I18n\Dictionary\Writer\Csv\Stdo'],
+ ['Magento\Tools\I18n\Dictionary\Writer\Csv', 'Magento\Setup\Module\I18n\Dictionary\Writer\Csv'],
+ ['Magento\Tools\I18n\Dictionary\WriterInterface', 'Magento\Setup\Module\I18n\Dictionary\WriterInterface'],
+ ['Magento\Tools\I18n\Dictionary', 'Magento\Setup\Module\I18n\Dictionary'],
+ ['Magento\Tools\I18n\Factory', 'Magento\Setup\Module\I18n\Factory'],
+ ['Magento\Tools\I18n\FilesCollector', 'Magento\Setup\Module\I18n\FilesCollector'],
+ ['Magento\Tools\I18n\Locale', 'Magento\Setup\Module\I18n\Locale'],
+ ['Magento\Tools\I18n\Pack\Generator', 'Magento\Setup\Module\I18n\Pack\Generator'],
+ ['Magento\Tools\I18n\Pack\Writer\File\AbstractFile', 'Magento\Setup\Module\I18n\Pack\Writer\File\AbstractFile'],
+ ['Magento\Tools\I18n\Pack\Writer\File\Csv', 'Magento\Setup\Module\I18n\Pack\Writer\File\Csv'],
+ ['Magento\Tools\I18n\Pack\WriterInterface', 'Magento\Setup\Module\I18n\Pack\WriterInterface'],
+ ['Magento\Tools\I18n\Parser\AbstractParser', 'Magento\Setup\Module\I18n\Parser\AbstractParser'],
+ ['Magento\Tools\I18n\Parser\Adapter\AbstractAdapter', 'Magento\Setup\Module\I18n\Parser\Adapter\AbstractAdapter'],
+ ['Magento\Tools\I18n\Parser\Adapter\Js', 'Magento\Setup\Module\I18n\Parser\Adapter\Js'],
+ [
+ 'Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector',
+ 'Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector'
+ ],
+ [
+ 'Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token',
+ 'Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token'
+ ],
+ [
+ 'Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Translate',
+ 'Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Translate'
+ ],
+ [
+ 'Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Translate\MethodCollector',
+ 'Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Translate\MethodCollector'
+ ],
+ ['Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer', 'Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer'],
+ ['Magento\Tools\I18n\Parser\Adapter\Php', 'Magento\Setup\Module\I18n\Parser\Adapter\Php'],
+ ['Magento\Tools\I18n\Parser\Adapter\Xml', 'Magento\Setup\Module\I18n\Parser\Adapter\Xml'],
+ ['Magento\Tools\I18n\Parser\AdapterInterface', 'Magento\Setup\Module\I18n\Parser\AdapterInterface'],
+ ['Magento\Tools\I18n\Parser\Contextual', 'Magento\Setup\Module\I18n\Parser\Contextual'],
+ ['Magento\Tools\I18n\Parser\Parser', 'Magento\Setup\Module\I18n\Parser\Parser'],
+ ['Magento\Tools\I18n\ParserInterface', 'Magento\Setup\Module\I18n\ParserInterface'],
+ ['Magento\Tools\I18n\ServiceLocator', 'Magento\Setup\Module\I18n\ServiceLocator'],
+ ['Magento\Tools\Di\App\Task\Manager', 'Magento\Setup\Module\Di\App\Task\Manager'],
+ [
+ 'Magento\Tools\Di\App\Task\Operation\ApplicationCodeGenerator',
+ 'Magento\Setup\Module\Di\App\Task\Operation\ApplicationCodeGenerator'
+ ],
+ ['Magento\Tools\Di\App\Task\Operation\Area', 'Magento\Setup\Module\Di\App\Task\Operation\Area'],
+ ['Magento\Tools\Di\App\Task\Operation\Interception', 'Magento\Setup\Module\Di\App\Task\Operation\Interception'],
+ [
+ 'Magento\Tools\Di\App\Task\Operation\InterceptionCache',
+ 'Magento\Setup\Module\Di\App\Task\Operation\InterceptionCache'
+ ],
+ [
+ 'Magento\Tools\Di\App\Task\Operation\RepositoryGenerator',
+ 'Magento\Setup\Module\Di\App\Task\Operation\RepositoryGenerator'
+ ],
+ ['Magento\Tools\Di\App\Task\OperationException', 'Magento\Setup\Module\Di\App\Task\OperationException'],
+ ['Magento\Tools\Di\App\Task\OperationFactory', 'Magento\Setup\Module\Di\App\Task\OperationFactory'],
+ ['Magento\Tools\Di\App\Task\OperationInterface', 'Magento\Setup\Module\Di\App\Task\OperationInterface'],
+ [
+ 'Magento\Tools\Di\Code\Generator\InterceptionConfigurationBuilder',
+ 'Magento\Setup\Module\Di\Code\Generator\InterceptionConfigurationBuilder'
+ ],
+ ['Magento\Tools\Di\Code\Generator\Interceptor', 'Magento\Setup\Module\Di\Code\Generator\Interceptor'],
+ ['Magento\Tools\Di\Code\Generator\PluginList', 'Magento\Setup\Module\Di\Code\Generator\PluginList'],
+ ['Magento\Tools\Di\Code\Generator', 'Magento\Setup\Module\Di\Code\Generator'],
+ ['Magento\Tools\Di\Code\GeneratorFactory', 'Magento\Setup\Module\Di\Code\GeneratorFactory'],
+ ['Magento\Tools\Di\Code\Reader\ClassesScanner', 'Magento\Setup\Module\Di\Code\Reader\ClassesScanner'],
+ [
+ 'Magento\Tools\Di\Code\Reader\ClassesScannerInterface',
+ 'Magento\Setup\Module\Di\Code\Reader\ClassesScannerInterface'
+ ],
+ ['Magento\Tools\Di\Code\Reader\ClassReaderDecorator', 'Magento\Setup\Module\Di\Code\Reader\ClassReaderDecorator'],
+ ['Magento\Tools\Di\Code\Reader\Decorator\Area', 'Magento\Setup\Module\Di\Code\Reader\Decorator\Area'],
+ ['Magento\Tools\Di\Code\Reader\Decorator\Directory', 'Magento\Setup\Module\Di\Code\Reader\Decorator\Directory'],
+ [
+ 'Magento\Tools\Di\Code\Reader\Decorator\Interceptions',
+ 'Magento\Setup\Module\Di\Code\Reader\Decorator\Interceptions'
+ ],
+ ['Magento\Tools\Di\Code\Reader\Type', 'Magento\Setup\Module\Di\Code\Reader\Type'],
+ ['Magento\Tools\Di\Code\Scanner\ArrayScanner', 'Magento\Setup\Module\Di\Code\Scanner\ArrayScanner'],
+ ['Magento\Tools\Di\Code\Scanner\CompositeScanner', 'Magento\Setup\Module\Di\Code\Scanner\CompositeScanner'],
+ ['Magento\Tools\Di\Code\Scanner\DirectoryScanner', 'Magento\Setup\Module\Di\Code\Scanner\DirectoryScanner'],
+ [
+ 'Magento\Tools\Di\Code\Scanner\InheritanceInterceptorScanner',
+ 'Magento\Setup\Module\Di\Code\Scanner\InheritanceInterceptorScanner'
+ ],
+ [
+ 'Magento\Tools\Di\Code\Scanner\InterceptedInstancesScanner',
+ 'Magento\Setup\Module\Di\Code\Scanner\InterceptedInstancesScanner'
+ ],
+ ['Magento\Tools\Di\Code\Scanner\PhpScanner', 'Magento\Setup\Module\Di\Code\Scanner\PhpScanner'],
+ ['Magento\Tools\Di\Code\Scanner\PluginScanner', 'Magento\Setup\Module\Di\Code\Scanner\PluginScanner'],
+ ['Magento\Tools\Di\Code\Scanner\RepositoryScanner', 'Magento\Setup\Module\Di\Code\Scanner\RepositoryScanner'],
+ ['Magento\Tools\Di\Code\Scanner\ScannerInterface', 'Magento\Setup\Module\Di\Code\Scanner\ScannerInterface'],
+ [
+ 'Magento\Tools\Di\Code\Scanner\XmlInterceptorScanner',
+ 'Magento\Setup\Module\Di\Code\Scanner\XmlInterceptorScanner'
+ ],
+ ['Magento\Tools\Di\Code\Scanner\XmlScanner', 'Magento\Setup\Module\Di\Code\Scanner\XmlScanner'],
+ ['Magento\Tools\Di\Compiler\ArgumentsResolver', 'Magento\Setup\Module\Di\Compiler\ArgumentsResolver'],
+ ['Magento\Tools\Di\Compiler\ArgumentsResolverFactory', 'Magento\Setup\Module\Di\Compiler\ArgumentsResolverFactory'],
+ [
+ 'Magento\Tools\Di\Compiler\Config\Chain\ArgumentsSerialization',
+ 'Magento\Setup\Module\Di\Compiler\Config\Chain\ArgumentsSerialization'
+ ],
+ [
+ 'Magento\Tools\Di\Compiler\Config\Chain\BackslashTrim',
+ 'Magento\Setup\Module\Di\Compiler\Config\Chain\BackslashTrim'
+ ],
+ [
+ 'Magento\Tools\Di\Compiler\Config\Chain\InterceptorSubstitution',
+ 'Magento\Setup\Module\Di\Compiler\Config\Chain\InterceptorSubstitution'
+ ],
+ [
+ 'Magento\Tools\Di\Compiler\Config\Chain\PreferencesResolving',
+ 'Magento\Setup\Module\Di\Compiler\Config\Chain\PreferencesResolving'
+ ],
+ [
+ 'Magento\Tools\Di\Compiler\Config\ModificationChain',
+ 'Magento\Setup\Module\Di\Compiler\Config\ModificationChain'
+ ],
+ [
+ 'Magento\Tools\Di\Compiler\Config\ModificationInterface',
+ 'Magento\Setup\Module\Di\Compiler\Config\ModificationInterface'
+ ],
+ ['Magento\Tools\Di\Compiler\Config\Reader', 'Magento\Setup\Module\Di\Compiler\Config\Reader'],
+ ['Magento\Tools\Di\Compiler\Config\Writer\Filesystem', 'Magento\Setup\Module\Di\Compiler\Config\Writer\Filesystem'],
+ ['Magento\Tools\Di\Compiler\Config\WriterInterface', 'Magento\Setup\Module\Di\Compiler\Config\WriterInterface'],
+ ['Magento\Tools\Di\Compiler\ConstructorArgument', 'Magento\Setup\Module\Di\Compiler\ConstructorArgument'],
+ ['Magento\Tools\Di\Compiler\Log\Log', 'Magento\Setup\Module\Di\Compiler\Log\Log'],
+ ['Magento\Tools\Di\Compiler\Log\Writer\Console', 'Magento\Setup\Module\Di\Compiler\Log\Writer\Console'],
+ ['Magento\Tools\Di\Definition\Collection', 'Magento\Setup\Module\Di\Definition\Collection'],
+ ['Magento\Tools\Di\Definition\Compressor\UniqueList', 'Magento\Setup\Module\Di\Definition\Compressor\UniqueList'],
+ ['Magento\Tools\Di\Definition\Compressor', 'Magento\Setup\Module\Di\Definition\Compressor'],
+ ['Magento\Tools\Di\Definition\Serializer\Igbinary', 'Magento\Setup\Module\Di\Definition\Serializer\Igbinary'],
+ [
+ 'Magento\Tools\Di\Definition\Serializer\SerializerInterface',
+ 'Magento\Setup\Module\Di\Definition\Serializer\SerializerInterface'
+ ],
+ ['Magento\Tools\Di\Definition\Serializer\Standard', 'Magento\Setup\Module\Di\Definition\Serializer\Standard'],
+ ['Magento\Tools\Di\Compiler\Log\Writer\Quiet'],
+ ['Magento\Tools\Di\Compiler\Log\Writer\WriterInterface'],
+ ['Magento\Tools\View\Deployer', 'Magento\Setup\Model\Deployer'],
+ ['Magento\Tools\Webdev\CliParams'],
+ ['Magento\Tools\Webdev\App\FileAssembler'],
+ ['Magento\Tools\View\Deployer\Log'],
+ ['Magento\Log\Model\Shell\Command\Status'],
+ ['Magento\Log\Model\LogFactory\Clean'],
+ ['Magento\Log\Model\Shell\CommandInterface'],
+ ['Magento\Framework\App\Filesystem\DirectoryList\AbstractShell'],
];
diff --git a/dev/tools/Magento/Tools/Di/App/Compiler.php b/dev/tools/Magento/Tools/Di/App/Compiler.php
deleted file mode 100644
index 751eca2ac1c178fc5db662be4d3f5d26de48b35f..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/Di/App/Compiler.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-/**
- *
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Tools\Di\App;
-
-use Magento\Framework\App;
-use Magento\Framework\App\Console\Response;
-use Magento\Framework\ObjectManagerInterface;
-
-/**
- * Class Compiler
- * @package Magento\Tools\Di\App
- *
- */
-class Compiler implements \Magento\Framework\AppInterface
-{
- /**
- * @var ObjectManagerInterface
- */
- private $objectManager;
-
- /**
- * @var Task\Manager
- */
- private $taskManager;
-
- /**
- * @var Response
- */
- private $response;
-
- /**
- * @var array
- */
- private $compiledPathsList = [];
-
- /**
- * @var array
- */
- private $excludedPathsList = [];
-
- /**
- * @param Task\Manager $taskManager
- * @param ObjectManagerInterface $objectManager
- * @param Response $response
- * @param array $compiledPathsList
- * @param array $excludedPathsList
- */
- public function __construct(
- Task\Manager $taskManager,
- ObjectManagerInterface $objectManager,
- Response $response,
- $compiledPathsList = [],
- $excludedPathsList = []
- ) {
- $this->taskManager = $taskManager;
- $this->objectManager = $objectManager;
- $this->response = $response;
-
- if (empty($compiledPathsList)) {
- $compiledPathsList = [
- 'application' => BP . '/' . 'app/code',
- 'library' => BP . '/' . 'lib/internal/Magento/Framework',
- 'generated_helpers' => BP . '/' . 'var/generation'
- ];
- }
- $this->compiledPathsList = $compiledPathsList;
-
- if (empty($excludedPathsList)) {
- $excludedPathsList = [
- 'application' => '#^' . BP . '/app/code/[\\w]+/[\\w]+/Test#',
- 'framework' => '#^' . BP . '/lib/internal/[\\w]+/[\\w]+/([\\w]+/)?Test#'
- ];
- }
- $this->excludedPathsList = $excludedPathsList;
- }
-
- /**
- * Launch application
- *
- * @return \Magento\Framework\App\ResponseInterface
- */
- public function launch()
- {
- $this->objectManager->configure(
- [
- 'preferences' =>
- [
- 'Magento\Tools\Di\Compiler\Config\WriterInterface' =>
- 'Magento\Tools\Di\Compiler\Config\Writer\Filesystem',
- 'Magento\Tools\Di\Compiler\Log\Writer\WriterInterface' =>
- 'Magento\Tools\Di\Compiler\Log\Writer\Console'
- ],
- 'Magento\Tools\Di\Compiler\Config\ModificationChain' => [
- 'arguments' => [
- 'modificationsList' => [
- 'BackslashTrim' =>
- ['instance' => 'Magento\Tools\Di\Compiler\Config\Chain\BackslashTrim'],
- 'PreferencesResolving' =>
- ['instance' => 'Magento\Tools\Di\Compiler\Config\Chain\PreferencesResolving'],
- 'InterceptorSubstitution' =>
- ['instance' => 'Magento\Tools\Di\Compiler\Config\Chain\InterceptorSubstitution'],
- 'InterceptionPreferencesResolving' =>
- ['instance' => 'Magento\Tools\Di\Compiler\Config\Chain\PreferencesResolving'],
- 'ArgumentsSerialization' =>
- ['instance' => 'Magento\Tools\Di\Compiler\Config\Chain\ArgumentsSerialization'],
- ]
- ]
- ],
- 'Magento\Tools\Di\Code\Generator\PluginList' => [
- 'arguments' => [
- 'cache' => [
- 'instance' => 'Magento\Framework\App\Interception\Cache\CompiledConfig'
- ]
- ]
- ],
- 'Magento\Tools\Di\Code\Reader\ClassesScanner' => [
- 'arguments' => [
- 'excludePatterns' => $this->excludedPathsList
- ]
- ]
- ]
- );
-
- $operations = [
- Task\OperationFactory::REPOSITORY_GENERATOR => [
- 'path' => $this->compiledPathsList['application'],
- 'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/']
- ],
- Task\OperationFactory::APPLICATION_CODE_GENERATOR => [
- $this->compiledPathsList['application'],
- $this->compiledPathsList['library'],
- $this->compiledPathsList['generated_helpers'],
- ],
- Task\OperationFactory::INTERCEPTION =>
- [
- 'intercepted_paths' => [
- $this->compiledPathsList['application'],
- $this->compiledPathsList['library'],
- $this->compiledPathsList['generated_helpers'],
- ],
- 'path_to_store' => $this->compiledPathsList['generated_helpers'],
- ],
- Task\OperationFactory::AREA_CONFIG_GENERATOR => [
- $this->compiledPathsList['application'],
- $this->compiledPathsList['library'],
- $this->compiledPathsList['generated_helpers'],
- ],
- Task\OperationFactory::INTERCEPTION_CACHE => [
- $this->compiledPathsList['application'],
- $this->compiledPathsList['library'],
- $this->compiledPathsList['generated_helpers'],
- ]
- ];
-
- $responseCode = Response::SUCCESS;
- try {
- foreach ($operations as $operationCode => $arguments) {
- $this->taskManager->addOperation(
- $operationCode,
- $arguments
- );
- }
- $this->taskManager->process();
-
- } catch (Task\OperationException $e) {
- $responseCode = Response::ERROR;
- $this->response->setBody($e->getMessage());
- }
-
- $this->response->setCode($responseCode);
- return $this->response;
- }
-
- /**
- * Ability to handle exceptions that may have occurred during bootstrap and launch
- *
- * Return values:
- * - true: exception has been handled, no additional action is needed
- * - false: exception has not been handled - pass the control to Bootstrap
- *
- * @param App\Bootstrap $bootstrap
- * @param \Exception $exception
- * @return bool
- *
- * @SuppressWarnings(PHPMD.UnusedFormalParameter)
- */
- public function catchException(App\Bootstrap $bootstrap, \Exception $exception)
- {
- return false;
- }
-}
diff --git a/dev/tools/Magento/Tools/Di/Compiler/Config/Writer/Filesystem.php b/dev/tools/Magento/Tools/Di/Compiler/Config/Writer/Filesystem.php
deleted file mode 100644
index b50d6a996c8b3913e8f834b6718f6b1e5d8ef9da..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/Di/Compiler/Config/Writer/Filesystem.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-/**
- *
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Tools\Di\Compiler\Config\Writer;
-
-use Magento\Tools\Di\Compiler\Config\WriterInterface;
-
-class Filesystem implements WriterInterface
-{
- /**
- * Writes config in storage
- *
- * @param string $key
- * @param array $config
- * @return void
- */
- public function write($key, array $config)
- {
- $this->initialize();
-
- $serialized = serialize($config);
- file_put_contents(BP . '/var/di/' . $key . '.ser', $serialized);
- }
-
- /**
- * Initializes writer
- *
- * @return void
- */
- private function initialize()
- {
- if (!file_exists(BP . '/var/di')) {
- mkdir(BP . '/var/di');
- }
- }
-}
diff --git a/dev/tools/Magento/Tools/Di/Compiler/Log/Writer/Console.php b/dev/tools/Magento/Tools/Di/Compiler/Log/Writer/Console.php
deleted file mode 100644
index e38644559cd1921e3d24e794cd1167b7271a5c4d..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/Di/Compiler/Log/Writer/Console.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Tools\Di\Compiler\Log\Writer;
-
-use Magento\Tools\Di\Compiler\Log\Log;
-
-class Console implements WriterInterface
-{
- /**
- * Report messages by type
- *
- * @var array
- */
- protected $_messages = [
- Log::GENERATION_SUCCESS => 'Generated classes:',
- Log::GENERATION_ERROR => 'Errors during class generation:',
- Log::COMPILATION_ERROR => 'Errors during compilation:',
- Log::CONFIGURATION_ERROR => 'Errors during configuration scanning:',
- ];
-
- /**
- * Output log data
- *
- * @param array $data
- * @return void
- */
- public function write(array $data)
- {
- $errorsCount = 0;
- foreach ($data as $type => $classes) {
- if (!count($classes)) {
- continue;
- }
- echo $this->_messages[$type] . "\n";
- foreach ($classes as $className => $messages) {
- if (count($messages)) {
- echo "\t" . $className . "\n";
- foreach ($messages as $message) {
- if ($message) {
- echo "\t\t - " . $message . "\n";
- if ($type != Log::GENERATION_SUCCESS) {
- $errorsCount++;
- }
- }
- }
- }
- }
- }
-
- if ($errorsCount) {
- echo 'Total Errors Count: ' . $errorsCount . "\n";
- }
- }
-}
diff --git a/dev/tools/Magento/Tools/Di/Compiler/Log/Writer/Quiet.php b/dev/tools/Magento/Tools/Di/Compiler/Log/Writer/Quiet.php
deleted file mode 100644
index 3696fb51f34305a50afb368451a60d47e5c51c4a..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/Di/Compiler/Log/Writer/Quiet.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Tools\Di\Compiler\Log\Writer;
-
-class Quiet implements WriterInterface
-{
- /**
- * Output log data
- *
- * @param array $data
- * @return void
- */
- public function write(array $data)
- {
- // Do nothing
- }
-}
diff --git a/dev/tools/Magento/Tools/Di/Compiler/Log/Writer/WriterInterface.php b/dev/tools/Magento/Tools/Di/Compiler/Log/Writer/WriterInterface.php
deleted file mode 100644
index b36f3172b6c549c41217e1cce55214f16d008b0f..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/Di/Compiler/Log/Writer/WriterInterface.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Tools\Di\Compiler\Log\Writer;
-
-interface WriterInterface
-{
- /**
- * Output log data
- *
- * @param array $data
- * @return void
- */
- public function write(array $data);
-}
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/App/CompilerTest.php b/dev/tools/Magento/Tools/Di/Test/Unit/App/CompilerTest.php
deleted file mode 100644
index 665e5c237a0cf58a4075b3daadcbfdd4e6118035..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/Di/Test/Unit/App/CompilerTest.php
+++ /dev/null
@@ -1,180 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Tools\Di\Test\Unit\App;
-
-use Magento\Framework\App\Console\Response;
-use Magento\Tools\Di\App\Compiler;
-use Magento\Tools\Di\App\Task;
-
-class CompilerTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var Compiler
- */
- private $application;
-
- /**
- * @var \Magento\Framework\ObjectManagerInterface | \PHPUnit_Framework_MockObject_MockObject
- */
- private $objectManagerMock;
-
- /**
- * @var \Magento\Tools\Di\App\Task\Manager | \PHPUnit_Framework_MockObject_MockObject
- */
- private $taskManagerMock;
-
- /**
- * @var Response | \PHPUnit_Framework_MockObject_MockObject
- */
- private $responseMock;
-
- protected function setUp()
- {
- $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManagerInterface')
- ->setMethods([])
- ->getMock();
- $this->taskManagerMock = $this->getMockBuilder('Magento\Tools\Di\App\Task\Manager')
- ->disableOriginalConstructor()
- ->setMethods([])
- ->getMock();
- $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Console\Response')
- ->disableOriginalConstructor()
- ->setMethods([])
- ->getMock();
-
- $this->application = new Compiler(
- $this->taskManagerMock,
- $this->objectManagerMock,
- $this->responseMock
- );
- }
-
- public function testLaunchSuccess()
- {
- $this->objectManagerMock->expects($this->once())
- ->method('configure')
- ->with($this->getPreferences());
- $index = 0;
- foreach ($this->getOptions() as $code => $arguments) {
- $this->taskManagerMock->expects($this->at($index))
- ->method('addOperation')
- ->with($code, $arguments);
- $index++;
- }
- $this->taskManagerMock->expects($this->at($index))->method('process');
- $this->responseMock->expects($this->once())
- ->method('setCode')
- ->with(Response::SUCCESS);
-
- $this->assertInstanceOf('\Magento\Framework\App\Console\Response', $this->application->launch());
- }
-
- public function testLaunchException()
- {
- $this->objectManagerMock->expects($this->once())
- ->method('configure')
- ->with($this->getPreferences());
- $code = key($this->getOptions());
- $arguments = current($this->getOptions());
- $exception = new Task\OperationException(
- 'Unrecognized operation',
- Task\OperationException::UNAVAILABLE_OPERATION
- );
-
- $this->taskManagerMock->expects($this->once())
- ->method('addOperation')
- ->with($code, $arguments)
- ->willThrowException($exception);
-
- $this->taskManagerMock->expects($this->never())->method('process');
- $this->responseMock->expects($this->once())
- ->method('setCode')
- ->with(Response::ERROR);
-
- $this->assertInstanceOf('\Magento\Framework\App\Console\Response', $this->application->launch());
- }
-
- /**
- * Returns configured preferences
- *
- * @return array
- */
- private function getPreferences()
- {
- return [
- 'preferences' =>
- [
- 'Magento\Tools\Di\Compiler\Config\WriterInterface' =>
- 'Magento\Tools\Di\Compiler\Config\Writer\Filesystem',
- 'Magento\Tools\Di\Compiler\Log\Writer\WriterInterface' =>
- 'Magento\Tools\Di\Compiler\Log\Writer\Console'
- ],
- 'Magento\Tools\Di\Compiler\Config\ModificationChain' => [
- 'arguments' => [
- 'modificationsList' => [
- 'BackslashTrim' =>
- ['instance' => 'Magento\Tools\Di\Compiler\Config\Chain\BackslashTrim'],
- 'PreferencesResolving' =>
- ['instance' => 'Magento\Tools\Di\Compiler\Config\Chain\PreferencesResolving'],
- 'InterceptorSubstitution' =>
- ['instance' => 'Magento\Tools\Di\Compiler\Config\Chain\InterceptorSubstitution'],
- 'InterceptionPreferencesResolving' =>
- ['instance' => 'Magento\Tools\Di\Compiler\Config\Chain\PreferencesResolving'],
- 'ArgumentsSerialization' =>
- ['instance' => 'Magento\Tools\Di\Compiler\Config\Chain\ArgumentsSerialization'],
- ]
- ]
- ],
- 'Magento\Tools\Di\Code\Generator\PluginList' => [
- 'arguments' => [
- 'cache' => [
- 'instance' => 'Magento\Framework\App\Interception\Cache\CompiledConfig'
- ]
- ]
- ],
- 'Magento\Tools\Di\Code\Reader\ClassesScanner' => [
- 'arguments' => [
- 'excludePatterns' => [
- 'application' => '#^' . BP . '/app/code/[\\w]+/[\\w]+/Test#',
- 'framework' => '#^' . BP . '/lib/internal/[\\w]+/[\\w]+/([\\w]+/)?Test#'
- ]
- ]
- ]
- ];
- }
-
- /**
- * Returns options
- *
- * @return array
- */
- private function getOptions()
- {
- return [
- Task\OperationFactory::REPOSITORY_GENERATOR => [
- 'path' => BP . '/' . 'app/code',
- 'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/']
- ],
- Task\OperationFactory::APPLICATION_CODE_GENERATOR => [
- BP . '/' . 'app/code', BP . '/' . 'lib/internal/Magento/Framework', BP . '/' . 'var/generation'
- ],
- Task\OperationFactory::INTERCEPTION => [
- 'intercepted_paths' => [
- BP . '/' . 'app/code',
- BP . '/' . 'lib/internal/Magento/Framework',
- BP . '/' . 'var/generation'
- ],
- 'path_to_store' => BP . '/var/generation',
- ],
- Task\OperationFactory::AREA_CONFIG_GENERATOR => [
- BP . '/' . 'app/code', BP . '/' . 'lib/internal/Magento/Framework', BP . '/' . 'var/generation'
- ],
- Task\OperationFactory::INTERCEPTION_CACHE => [
- BP . '/' . 'app/code', BP . '/' . 'lib/internal/Magento/Framework', BP . '/' . 'var/generation'
- ]
- ];
- }
-}
diff --git a/dev/tools/Magento/Tools/Di/compiler.php b/dev/tools/Magento/Tools/Di/compiler.php
deleted file mode 100644
index ced28772e7c6108f8f1a033617cf4af379687195..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/Di/compiler.php
+++ /dev/null
@@ -1,258 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-require __DIR__ . '/../../../bootstrap.php';
-
-$rootDir = realpath(__DIR__ . '/../../../../../');
-use Magento\Framework\Api\Code\Generator\Mapper;
-use Magento\Framework\Api\Code\Generator\SearchResults;
-use Magento\Framework\Autoload\AutoloaderRegistry;
-use Magento\Framework\Interception\Code\Generator\Interceptor;
-use Magento\Framework\ObjectManager\Code\Generator\Converter;
-use Magento\Framework\ObjectManager\Code\Generator\Factory;
-use Magento\Framework\ObjectManager\Code\Generator\Proxy;
-use Magento\Framework\ObjectManager\Code\Generator\Repository;
-use Magento\Framework\ObjectManager\Code\Generator\Persistor;
-use Magento\Framework\Api\Code\Generator\ExtensionAttributesGenerator;
-use Magento\Framework\Api\Code\Generator\ExtensionAttributesInterfaceGenerator;
-use Magento\Tools\Di\Code\Scanner;
-use Magento\Tools\Di\Compiler\Log\Log;
-use Magento\Tools\Di\Compiler\Log\Writer;
-use Magento\Tools\Di\Definition\Compressor;
-use Magento\Tools\Di\Definition\Serializer\Igbinary;
-use Magento\Tools\Di\Definition\Serializer\Standard;
-
-try {
- $opt = new Zend_Console_Getopt(
- [
- 'serializer=w' => 'serializer function that should be used (serialize|igbinary) default: serialize',
- 'verbose|v' => 'output report after tool run',
- 'extra-classes-file=s' => 'path to file with extra proxies and factories to generate',
- 'generation=s' => 'absolute path to generated classes, <magento_root>/var/generation by default',
- 'di=s' => 'absolute path to DI definitions directory, <magento_root>/var/di by default',
- 'exclude-pattern=s' => 'allows to exclude Paths from compilation (default is #[\\\\/]m1[\\\\/]#i)',
- ]
- );
- $opt->parse();
-
- $generationDir = $opt->getOption('generation') ? $opt->getOption('generation') : $rootDir . '/var/generation';
- $diDir = $opt->getOption('di') ? $opt->getOption('di') : $rootDir . '/var/di';
-
- $testExcludePatterns = [
- "#^$rootDir/app/code/[\\w]+/[\\w]+/Test#",
- "#^$rootDir/lib/internal/[\\w]+/[\\w]+/([\\w]+/)?Test#",
- "#^$rootDir/setup/src/Magento/Setup/Test#",
- "#^$rootDir/dev/tools/Magento/Tools/[\\w]+/Test#"
- ];
- $fileExcludePatterns = $opt->getOption('exclude-pattern') ?
- [$opt->getOption('exclude-pattern')] : ['#[\\\\/]M1[\\\\/]#i'];
- $fileExcludePatterns = array_merge($fileExcludePatterns, $testExcludePatterns);
-
- $relationsFile = $diDir . '/relations.ser';
- $pluginDefFile = $diDir . '/plugins.ser';
-
- $compilationDirs = [
- $rootDir . '/app/code',
- $rootDir . '/lib/internal/Magento',
- $rootDir . '/dev/tools/Magento/Tools'
- ];
-
- /** @var Writer\WriterInterface $logWriter Writer model for success messages */
- $logWriter = $opt->getOption('v') ? new Writer\Console() : new Writer\Quiet();
- $log = new Log($logWriter, new Writer\Console());
-
- $serializer = $opt->getOption('serializer') == Igbinary::NAME ? new Igbinary() : new Standard();
-
- AutoloaderRegistry::getAutoloader()->addPsr4('Magento\\', $generationDir . '/Magento/');
-
- // 1 Code generation
- // 1.1 Code scan
- $filePatterns = ['php' => '/.*\.php$/', 'di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/'];
- $codeScanDir = realpath($rootDir . '/app');
- $directoryScanner = new Scanner\DirectoryScanner();
- $files = $directoryScanner->scan($codeScanDir, $filePatterns, $fileExcludePatterns);
- $files['additional'] = [$opt->getOption('extra-classes-file')];
- $entities = [];
-
- $repositoryScanner = new Scanner\RepositoryScanner();
- $repositories = $repositoryScanner->collectEntities($files['di']);
-
- $scanner = new Scanner\CompositeScanner();
- $scanner->addChild(new Scanner\PhpScanner($log), 'php');
- $scanner->addChild(new Scanner\XmlScanner($log), 'di');
- $scanner->addChild(new Scanner\ArrayScanner(), 'additional');
- $entities = $scanner->collectEntities($files);
-
- $interceptorScanner = new Scanner\XmlInterceptorScanner();
- $entities['interceptors'] = $interceptorScanner->collectEntities($files['di']);
-
- // 1.2 Generation of Factory and Additional Classes
- $generatorIo = new \Magento\Framework\Code\Generator\Io(
- new \Magento\Framework\Filesystem\Driver\File(),
- $generationDir
- );
- $generator = new \Magento\Framework\Code\Generator(
- $generatorIo,
- [
- Interceptor::ENTITY_TYPE => 'Magento\Framework\Interception\Code\Generator\Interceptor',
- Proxy::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Proxy',
- Factory::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Factory',
- Mapper::ENTITY_TYPE => 'Magento\Framework\Api\Code\Generator\Mapper',
- Persistor::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Persistor',
- Repository::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Repository',
- Converter::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Converter',
- SearchResults::ENTITY_TYPE => 'Magento\Framework\Api\Code\Generator\SearchResults',
- ExtensionAttributesInterfaceGenerator::ENTITY_TYPE =>
- 'Magento\Framework\Api\Code\Generator\ExtensionAttributesInterfaceGenerator',
- ExtensionAttributesGenerator::ENTITY_TYPE =>
- 'Magento\Framework\Api\Code\Generator\ExtensionAttributesGenerator'
- ]
- );
- /** Initialize object manager for code generation based on configs */
- $magentoObjectManagerFactory = \Magento\Framework\App\Bootstrap::createObjectManagerFactory(BP, $_SERVER);
- $objectManager = $magentoObjectManagerFactory->create($_SERVER);
- $generator->setObjectManager($objectManager);
-
- $generatorAutoloader = new \Magento\Framework\Code\Generator\Autoloader($generator);
- spl_autoload_register([$generatorAutoloader, 'load']);
-
- foreach ($repositories as $entityName) {
- switch ($generator->generateClass($entityName)) {
- case \Magento\Framework\Code\Generator::GENERATION_SUCCESS:
- $log->add(Log::GENERATION_SUCCESS, $entityName);
- break;
-
- case \Magento\Framework\Code\Generator::GENERATION_ERROR:
- $log->add(Log::GENERATION_ERROR, $entityName);
- break;
-
- case \Magento\Framework\Code\Generator::GENERATION_SKIP:
- default:
- //no log
- break;
- }
- }
-
- foreach (['php', 'additional'] as $type) {
- sort($entities[$type]);
- foreach ($entities[$type] as $entityName) {
- switch ($generator->generateClass($entityName)) {
- case \Magento\Framework\Code\Generator::GENERATION_SUCCESS:
- $log->add(Log::GENERATION_SUCCESS, $entityName);
- break;
-
- case \Magento\Framework\Code\Generator::GENERATION_ERROR:
- $log->add(Log::GENERATION_ERROR, $entityName);
- break;
-
- case \Magento\Framework\Code\Generator::GENERATION_SKIP:
- default:
- //no log
- break;
- }
- }
- }
-
- // 2. Compilation
- // 2.1 Code scan
-
- $validator = new \Magento\Framework\Code\Validator();
- $validator->add(new \Magento\Framework\Code\Validator\ConstructorIntegrity());
- $validator->add(new \Magento\Framework\Code\Validator\ContextAggregation());
- $classesScanner = new \Magento\Tools\Di\Code\Reader\ClassesScanner();
- $classesScanner->addExcludePatterns($fileExcludePatterns);
-
- $directoryInstancesNamesList = new \Magento\Tools\Di\Code\Reader\Decorator\Directory(
- $log,
- new \Magento\Framework\Code\Reader\ClassReader(),
- $classesScanner,
- $validator,
- $generationDir
- );
-
- foreach ($compilationDirs as $path) {
- if (is_readable($path)) {
- $directoryInstancesNamesList->getList($path);
- }
- }
-
- $inheritanceScanner = new Scanner\InheritanceInterceptorScanner();
- $entities['interceptors'] = $inheritanceScanner->collectEntities(
- get_declared_classes(),
- $entities['interceptors']
- );
-
- // 2.1.1 Generation of Proxy and Interceptor Classes
- foreach (['interceptors', 'di'] as $type) {
- foreach ($entities[$type] as $entityName) {
- switch ($generator->generateClass($entityName)) {
- case \Magento\Framework\Code\Generator::GENERATION_SUCCESS:
- $log->add(Log::GENERATION_SUCCESS, $entityName);
- break;
-
- case \Magento\Framework\Code\Generator::GENERATION_ERROR:
- $log->add(Log::GENERATION_ERROR, $entityName);
- break;
-
- case \Magento\Framework\Code\Generator::GENERATION_SKIP:
- default:
- //no log
- break;
- }
- }
- }
-
- //2.1.2 Compile relations for Proxy/Interceptor classes
- $directoryInstancesNamesList->getList($generationDir);
-
- $relations = $directoryInstancesNamesList->getRelations();
-
- // 2.2 Compression
- if (!file_exists(dirname($relationsFile))) {
- mkdir(dirname($relationsFile), 0777, true);
- }
- $relations = array_filter($relations);
- file_put_contents($relationsFile, $serializer->serialize($relations));
-
- // 3. Plugin Definition Compilation
- $pluginScanner = new Scanner\CompositeScanner();
- $pluginScanner->addChild(new Scanner\PluginScanner(), 'di');
- $pluginDefinitions = [];
- $pluginList = $pluginScanner->collectEntities($files);
- $pluginDefinitionList = new \Magento\Framework\Interception\Definition\Runtime();
- foreach ($pluginList as $type => $entityList) {
- foreach ($entityList as $entity) {
- $pluginDefinitions[ltrim($entity, '\\')] = $pluginDefinitionList->getMethodList($entity);
- }
- }
-
- $output = $serializer->serialize($pluginDefinitions);
-
- if (!file_exists(dirname($pluginDefFile))) {
- mkdir(dirname($pluginDefFile), 0777, true);
- }
-
- file_put_contents($pluginDefFile, $output);
-
- //Reporter
- $log->report();
-
- if ($log->hasError()) {
- exit(1);
- }
-
- echo 'On *nix systems, verify the Magento application has permissions to modify files created by the compiler'
- . ' in the "var" directory. For instance, if you run the Magento application using Apache,'
- . ' the owner of the files in the "var" directory should be the Apache user (example command:'
- . ' "chown -R www-data:www-data <MAGENTO_ROOT>/var" where MAGENTO_ROOT is the Magento root directory).' . "\n";
-
-} catch (Zend_Console_Getopt_Exception $e) {
- echo $e->getUsageMessage();
- echo 'Please, use quotes(") for wrapping strings.' . "\n";
- exit(1);
-} catch (Exception $e) {
- fwrite(STDERR, "Compiler failed with exception: " . $e->getMessage());
- throw($e);
-}
diff --git a/dev/tools/Magento/Tools/Di/entity_generator.php b/dev/tools/Magento/Tools/Di/entity_generator.php
deleted file mode 100644
index 17592837a0b0c2cd7274975c478a7cd879a94ab4..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/Di/entity_generator.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-use Magento\Framework\Api\Code\Generator\Mapper;
-use Magento\Framework\Api\Code\Generator\SearchResults;
-use Magento\Framework\Autoload\AutoloaderRegistry;
-use Magento\Framework\Code\Generator;
-use Magento\Framework\Code\Generator\Io;
-use Magento\Framework\Exception\LocalizedException;
-use Magento\Framework\Filesystem\Driver\File;
-use Magento\Framework\Interception\Code\Generator\Interceptor;
-use Magento\Framework\ObjectManager\Code\Generator\Converter;
-use Magento\Framework\ObjectManager\Code\Generator\Factory;
-use Magento\Framework\ObjectManager\Code\Generator\Proxy;
-use Magento\Framework\ObjectManager\Code\Generator\Repository;
-use Magento\Framework\Api\Code\Generator\ExtensionAttributesInterfaceGenerator;
-use Magento\Framework\Api\Code\Generator\ExtensionAttributesGenerator;
-
-require __DIR__ . '/../../../../../app/bootstrap.php';
-
-// default generation dir
-$generationDir = BP . '/' . Io::DEFAULT_DIRECTORY;
-try {
- $opt = new \Zend_Console_Getopt(
- [
- 'type|t=w' => 'entity type(required)',
- 'class|c=s' => 'entity class name(required)',
- 'generation|g=s' => 'generation dir. Default value ' . $generationDir,
- ]
- );
- $opt->parse();
-
- $entityType = $opt->getOption('t');
- if (empty($entityType)) {
- throw new \Zend_Console_Getopt_Exception('type is a required parameter');
- }
-
- $className = $opt->getOption('c');
- if (empty($className)) {
- throw new \Zend_Console_Getopt_Exception('class is a required parameter');
- }
- $substitutions = ['proxy' => '_Proxy', 'factory' => 'Factory', 'interceptor' => '_Interceptor'];
- if (!in_array($entityType, array_keys($substitutions))) {
- throw new \Zend_Console_Getopt_Exception('unrecognized type: ' . $entityType);
- }
- $className .= $substitutions[$entityType];
-
- if ($opt->getOption('g')) {
- $generationDir = $opt->getOption('g');
- }
- AutoloaderRegistry::getAutoloader()->addPsr4('Magento\\', $generationDir . '/Magento/');
-} catch (\Zend_Console_Getopt_Exception $e) {
- $generator = new Generator();
- $entities = $generator->getGeneratedEntities();
-
- $allowedTypes = 'Allowed entity types are: ' . implode(', ', $entities) . '.';
- $example = 'Example: php -f entity_generator.php -- -t factory -c \Magento\Framework\Event\Observer ' .
- '-g /var/mage/m2ee/generation' .
- ' - will generate file /var/mage/m2ee/generation/Magento/Framework/Event/ObserverFactory.php';
-
- echo $e->getMessage() . "\n";
- echo $e->getUsageMessage() . "\n";
- echo $allowedTypes . "\n";
- echo 'Default generation dir is ' . $generationDir . "\n";
- exit($example);
-}
-
-//reinit generator with correct generation path
-$io = new Io(new File(), $generationDir);
-$generator = new Generator(
- $io,
- [
- Proxy::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Proxy',
- Factory::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Factory',
- Interceptor::ENTITY_TYPE => 'Magento\Framework\Interception\Code\Generator\Interceptor',
- Mapper::ENTITY_TYPE => 'Magento\Framework\Api\Code\Generator\Mapper',
- Repository::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Repository',
- Converter::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Converter',
- SearchResults::ENTITY_TYPE => 'Magento\Framework\Api\Code\Generator\SearchResults',
- ExtensionAttributesInterfaceGenerator::ENTITY_TYPE =>
- 'Magento\Framework\Api\Code\Generator\ExtensionAttributesInterfaceGenerator',
- ExtensionAttributesGenerator::ENTITY_TYPE => 'Magento\Framework\Api\Code\Generator\ExtensionAttributesGenerator'
- ]
-);
-/** Initialize object manager for code generation based on configs */
-$magentoObjectManagerFactory = \Magento\Framework\App\Bootstrap::createObjectManagerFactory(BP, $_SERVER);
-$objectManager = $magentoObjectManagerFactory->create($_SERVER);
-$generator->setObjectManager($objectManager);
-
-try {
- if (Generator::GENERATION_SUCCESS == $generator->generateClass($className)) {
- print "Class {$className} was successfully generated.\n";
- } else {
- print "Can't generate class {$className}. This class either not generated entity, or it already exists.\n";
- }
-} catch (LocalizedException $e) {
- print "Error! {$e->getMessage()}\n";
-}
diff --git a/dev/tools/Magento/Tools/Di/singletenant_compiler.php b/dev/tools/Magento/Tools/Di/singletenant_compiler.php
deleted file mode 100644
index 39646da196ccde7e1692df39b398fdf3fa048eca..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/Di/singletenant_compiler.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-/**
- *
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-require __DIR__ . '/../../../../../app/bootstrap.php';
-
-$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
-/** @var \Magento\Framework\App\Http $app */
-$app = $bootstrap->createApplication('Magento\Tools\Di\App\Compiler');
-$bootstrap->run($app);
diff --git a/dev/tools/Magento/Tools/I18n/generator.php b/dev/tools/Magento/Tools/I18n/generator.php
deleted file mode 100644
index d0cef23ad8649405740b8a7297768915fb3c8e46..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/I18n/generator.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-require_once __DIR__ . '/bootstrap.php';
-use Magento\Tools\I18n\ServiceLocator;
-
-try {
- $console = new \Zend_Console_Getopt(
- [
- 'directory|d=s' => 'Path to a directory to parse',
- 'output-file|o=s' => 'Path (with filename) to output file, '
- . 'by default output the results into standard output stream',
- 'magento|m-s' => 'Indicates whether the specified "directory" path is a Magento root directory,'
- . ' "no" by default',
- ]
- );
- $console->parse();
-
- if (!count($console->getOptions())) {
- throw new \Zend_Console_Getopt_Exception(
- 'Required parameters are missed, please see usage description',
- $console->getUsageMessage()
- );
- }
- $directory = $console->getOption('directory');
- if (empty($directory)) {
- throw new \Zend_Console_Getopt_Exception('Directory is a required parameter.', $console->getUsageMessage());
- }
- $outputFilename = $console->getOption('output-file') ?: null;
- $isMagento = in_array($console->getOption('magento'), ['y', 'yes', 'Y', 'Yes', 'YES', '1']);
-
- $generator = ServiceLocator::getDictionaryGenerator();
- $generator->generate($directory, $outputFilename, $isMagento);
-
- fwrite(STDOUT, "\nDictionary successfully processed.\n");
-} catch (\Zend_Console_Getopt_Exception $e) {
- fwrite(STDERR, $e->getMessage() . "\n\n" . $e->getUsageMessage() . "\n");
- exit(1);
-} catch (\Exception $e) {
- fwrite(STDERR, $e->getMessage() . "\n");
- exit(1);
-}
diff --git a/dev/tools/Magento/Tools/I18n/pack.php b/dev/tools/Magento/Tools/I18n/pack.php
deleted file mode 100644
index 443a844d82d25a2884390b680362ffe1c959c81b..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/I18n/pack.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-require __DIR__ . '/bootstrap.php';
-use Magento\Tools\I18n\ServiceLocator;
-
-try {
- $console = new \Zend_Console_Getopt(
- [
- 'source|s=s' => 'Path to source dictionary file with translations',
- 'pack|p=s' => 'Path to language package',
- 'locale|l=s' => 'Target locale for dictionary, for example "de_DE"',
- 'mode|m-s' => 'Save mode for dictionary
- - "replace" - replace language pack by new one
- - "merge" - merge language packages, by default "replace"',
- 'allow_duplicates|d=s' => 'Is allowed to save duplicates of translate, by default "no"',
- ]
- );
- $console->parse();
- if (!count($console->getOptions())) {
- throw new \UnexpectedValueException(
- 'Required parameters are missed, please see usage description' . "\n\n" . $console->getUsageMessage()
- );
- }
- $dictionaryPath = $console->getOption('source');
- $packPath = $console->getOption('pack');
- $locale = $console->getOption('locale');
- $allowDuplicates = in_array($console->getOption('allow_duplicates'), ['y', 'Y', 'yes', 'Yes', '1']);
- $saveMode = $console->getOption('mode');
-
- if (!$dictionaryPath) {
- throw new \Zend_Console_Getopt_Exception('Dictionary source path parameter is required.');
- }
- if (!$packPath) {
- throw new \Zend_Console_Getopt_Exception('Pack path parameter is required.');
- }
- if (!$locale) {
- throw new \Zend_Console_Getopt_Exception('Locale parameter is required.');
- }
-
- $generator = ServiceLocator::getPackGenerator();
- $generator->generate($dictionaryPath, $packPath, $locale, $saveMode, $allowDuplicates);
-
- fwrite(STDOUT, sprintf("\nSuccessfully saved %s language package.\n", $locale));
-} catch (\Zend_Console_Getopt_Exception $e) {
- fwrite(STDERR, $e->getMessage() . "\n\n" . $e->getUsageMessage() . "\n");
- exit(1);
-} catch (\Exception $e) {
- fwrite(STDERR, $e->getMessage() . "\n");
- exit(1);
-}
diff --git a/dev/tools/Magento/Tools/View/Deployer/Log.php b/dev/tools/Magento/Tools/View/Deployer/Log.php
deleted file mode 100644
index 871b8944138f26c11844b17a063e978f8d0b9ca5..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/View/Deployer/Log.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Tools\View\Deployer;
-
-/**
- * An echo-logger with separating types of messages
- */
-class Log
-{
- /**#@+
- * Bitmasks for verbosity level
- */
- const SILENT = 0;
- const ERROR = 1;
- const DEBUG = 2;
- /**#@-*/
-
- /**
- * @var int
- */
- private $verbosity;
-
- /**
- * If last output printed inline
- *
- * @var bool
- */
- private $isInline = false;
-
- /**
- * @param int $verbosity
- */
- public function __construct($verbosity)
- {
- $this->verbosity = (int)$verbosity;
- }
-
- /**
- * Log anything
- *
- * @param string $msg
- * @return void
- */
- public function logMessage($msg)
- {
- if ($this->verbosity !== self::SILENT) {
- $this->terminateLine();
- echo "{$msg}\n";
- }
- }
-
- /**
- * Log an error
- *
- * @param string $msg
- * @return void
- */
- public function logError($msg)
- {
- if ($this->verbosity & self::ERROR) {
- $this->terminateLine();
- echo "ERROR: {$msg}\n";
- }
- }
-
- /**
- * Log a debug message
- *
- * @param string $msg
- * @param string $altInline Alternative message for normal mode (printed inline)
- * @return void
- */
- public function logDebug($msg, $altInline = '')
- {
- if ($this->verbosity & self::DEBUG) {
- $this->terminateLine();
- echo "{$msg}\n";
- } elseif ($altInline && $this->verbosity !== self::SILENT) {
- echo $altInline;
- $this->isInline = true;
- }
- }
-
- /**
- * Ensures the next log message will be printed on new line
- *
- * @return void
- */
- private function terminateLine()
- {
- if ($this->isInline) {
- $this->isInline = false;
- echo "\n";
- }
- }
-}
diff --git a/dev/tools/Magento/Tools/View/Test/Unit/Deployer/LogTest.php b/dev/tools/Magento/Tools/View/Test/Unit/Deployer/LogTest.php
deleted file mode 100644
index 163d6d34bb122ff6c23c37f8aac5e0a9f3c33325..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/View/Test/Unit/Deployer/LogTest.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Tools\View\Test\Unit\Deployer;
-
-use \Magento\Tools\View\Deployer\Log;
-
-class LogTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @param string $method
- * @param int $verbosity
- * @param string $expectedMsg
- * @dataProvider logDataProvider
- */
- public function testLog($method, $verbosity, $expectedMsg)
- {
- $object = new Log($verbosity);
- $object->$method('foo');
- $this->expectOutputString($expectedMsg);
- }
-
- /**
- * @return array
- */
- public function logDataProvider()
- {
- $foo = "foo\n";
- $err = "ERROR: {$foo}";
- return [
- ['logMessage', Log::SILENT, ''],
- ['logError', Log::SILENT, ''],
- ['logDebug', Log::SILENT, ''],
- ['logMessage', Log::ERROR, $foo],
- ['logError', Log::ERROR, $err],
- ['logDebug', Log::ERROR, ''],
- ['logMessage', Log::DEBUG, $foo],
- ['logError', Log::DEBUG, ''],
- ['logDebug', Log::DEBUG, $foo],
- ['logMessage', Log::ERROR | Log::DEBUG, $foo],
- ['logError', Log::ERROR | Log::DEBUG, $err],
- ['logDebug', Log::ERROR | Log::DEBUG, $foo],
- ];
- }
-
- /**
- * @param int $verbosity
- * @param string $expectedMsg
- *
- * @dataProvider logDebugAltDataProvider
- */
- public function testLogDebugAlt($verbosity, $expectedMsg)
- {
- $object = new Log($verbosity);
- $object->logDebug('foo', '[alt]');
- $this->expectOutputString($expectedMsg);
- }
-
- /**
- * @return array
- */
- public function logDebugAltDataProvider()
- {
- return[
- 'debug mode' => [Log::DEBUG, "foo\n"],
- 'default mode' => [Log::ERROR, '[alt]'],
- 'silent mode' => [Log::SILENT, '']
- ];
- }
-}
diff --git a/dev/tools/Magento/Tools/View/deploy.php b/dev/tools/Magento/Tools/View/deploy.php
deleted file mode 100644
index f380efd3f360d68738842b900cc4372a0af2ddc4..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/View/deploy.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-/**
- * A script for deploying static view files for Magento system "production mode"
- *
- * The resulting files will be recorded into pub/static directory.
- * They can be used not only by the server where Magento instance is,
- * but also can be copied to a CDN, and the Magento instance may be configured to generate base URL to the CDN.
- *
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-use Magento\Framework\Autoload\AutoloaderRegistry;
-
-$baseName = basename(__FILE__);
-$options = getopt('', ['langs::', 'dry-run', 'verbose::', 'help']);
-define('USAGE', "USAGE:\n\tphp -f {$baseName} -- [--langs=en_US,de_DE,...] [--verbose=0|1] [--dry-run] [--help]\n");
-require __DIR__ . '/../../../../../app/bootstrap.php';
-
-AutoloaderRegistry::getAutoloader()->addPsr4('Magento\\', [BP . '/tools/Magento/']);
-
-// parse all options
-if (isset($options['help'])) {
- echo USAGE;
- exit(0);
-}
-$langs = ['en_US'];
-if (isset($options['langs'])) {
- $langs = explode(',', $options['langs']);
- foreach ($langs as $lang) {
- if (!preg_match('/^[a-z]{2}_[A-Z]{2}$/', $lang)) {
- echo USAGE;
- exit(1);
- }
- }
-}
-$isDryRun = isset($options['dry-run']);
-$verbosity = \Magento\Tools\View\Deployer\Log::ERROR;
-if (isset($options['verbose'])) {
- $verbosity = 0 === (int)$options['verbose'] ? \Magento\Tools\View\Deployer\Log::SILENT
- : \Magento\Tools\View\Deployer\Log::ERROR | \Magento\Tools\View\Deployer\Log::DEBUG;
-}
-$logger = new \Magento\Tools\View\Deployer\Log($verbosity);
-
-try {
- // run the deployment logic
- $filesUtil = new \Magento\Framework\App\Utility\Files(BP);
- $omFactory = \Magento\Framework\App\Bootstrap::createObjectManagerFactory(BP, []);
- $objectManager = $omFactory->create(
- [\Magento\Framework\App\State::PARAM_MODE => \Magento\Framework\App\State::MODE_DEFAULT]
- );
-
- /** @var \Magento\Framework\App\DeploymentConfig $deploymentConfig */
- $deploymentConfig = $objectManager->get('Magento\Framework\App\DeploymentConfig');
- $isAppInstalled = $deploymentConfig->isAvailable();
- if (!$isAppInstalled) {
- throw new \Exception('You need to install the Magento application before running this utility.');
- }
-
- /** @var \Magento\Tools\View\Deployer $deployer */
- $deployer = $objectManager->create(
- 'Magento\Tools\View\Deployer',
- ['filesUtil' => $filesUtil, 'logger' => $logger, 'isDryRun' => $isDryRun]
- );
- $deployer->deploy($omFactory, $langs);
-} catch (\Exception $e) {
- $logger->logError($e->getMessage());
- $logger->logDebug($e->getTraceAsString());
- exit(1);
-}
diff --git a/dev/tools/Magento/Tools/Webdev/App/FileAssembler.php b/dev/tools/Magento/Tools/Webdev/App/FileAssembler.php
deleted file mode 100644
index 0a07540a19c94695f0a9454f0f5f4b3b86c12182..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/Webdev/App/FileAssembler.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?php
-/**
- *
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Tools\Webdev\App;
-
-use Magento\Framework\App;
-use Magento\Framework\App\State;
-use Magento\Framework\AppInterface;
-use Magento\Framework\Filesystem;
-use Magento\Tools\Webdev\CliParams;
-use Magento\Tools\View\Deployer\Log;
-use Magento\Framework\View\Asset\Source;
-use Magento\Framework\App\Console\Response;
-use Magento\Framework\View\Asset\Repository;
-use Magento\Framework\ObjectManagerInterface;
-use Magento\Framework\App\ObjectManager\ConfigLoader;
-use Magento\Framework\View\Asset\SourceFileGeneratorPool;
-use Magento\Framework\View\Asset\PreProcessor\ChainFactoryInterface;
-use Magento\Framework\App\Filesystem\DirectoryList;
-
-/**
- * Class FileAssembler
- *
- * @package Magento\Tools\Di\App
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- */
-class FileAssembler implements AppInterface
-{
- /**
- * @var ObjectManagerInterface
- */
- private $objectManager;
-
- /**
- * @var Response
- */
- private $response;
-
- /**
- * @var CliParams
- */
- private $params;
-
- /**
- * @var Repository
- */
- private $assetRepo;
-
- /**
- * @var ConfigLoader
- */
- private $configLoader;
-
- /**
- * @var State
- */
- private $state;
-
- /**
- * @var \Magento\Framework\Less\FileGenerator
- */
- private $sourceFileGeneratorPool;
-
- /**
- * @var \Magento\Framework\View\Asset\Source
- */
- private $assetSource;
-
- /**
- * @var \Magento\Tools\View\Deployer\Log
- */
- private $logger;
-
- /**
- * @var ChainFactoryInterface
- */
- private $chainFactory;
-
- /**
- * @var Filesystem
- */
- private $filesystem;
-
- /**
- * @param ObjectManagerInterface $objectManager
- * @param Response $response
- * @param CliParams $params
- * @param Repository $assetRepo
- * @param ConfigLoader $configLoader
- * @param State $state
- * @param Source $assetSource
- * @param \Magento\Framework\View\Asset\SourceFileGeneratorPool $sourceFileGeneratorPoll
- * @param \Magento\Tools\View\Deployer\Log $logger
- * @param ChainFactoryInterface $chainFactory
- * @param Filesystem $filesystem
- *
- * @SuppressWarnings(PHPMD.ExcessiveParameterList)
- */
- public function __construct(
- ObjectManagerInterface $objectManager,
- Response $response,
- CliParams $params,
- Repository $assetRepo,
- ConfigLoader $configLoader,
- State $state,
- Source $assetSource,
- SourceFileGeneratorPool $sourceFileGeneratorPoll,
- Log $logger,
- ChainFactoryInterface $chainFactory,
- Filesystem $filesystem
- ) {
- $this->response = $response;
- $this->params = $params;
- $this->state = $state;
- $this->objectManager = $objectManager;
- $this->configLoader = $configLoader;
- $this->assetRepo = $assetRepo;
- $this->sourceFileGeneratorPool = $sourceFileGeneratorPoll;
- $this->assetSource = $assetSource;
- $this->logger = $logger;
- $this->chainFactory = $chainFactory;
- $this->filesystem = $filesystem;
- }
-
- /**
- * Launch application
- *
- * @return \Magento\Framework\App\ResponseInterface
- */
- public function launch()
- {
- $this->state->setAreaCode($this->params->getArea());
- $this->objectManager->configure($this->configLoader->load($this->params->getArea()));
-
- $sourceFileGenerator = $this->sourceFileGeneratorPool->create($this->params->getExt());
-
- foreach ($this->params->getFiles() as $file) {
- $file .= '.' . $this->params->getExt();
-
- $this->logger->logMessage("Gathering {$file} sources.");
-
- $asset = $this->assetRepo->createAsset(
- $file,
- [
- 'area' => $this->params->getArea(),
- 'theme' => $this->params->getTheme(),
- 'locale' => $this->params->getLocale(),
- ]
- );
-
- $sourceFile = $this->assetSource->findSource($asset);
- $content = \file_get_contents($sourceFile);
-
- $chain = $this->chainFactory->create(
- [
- 'asset' => $asset,
- 'origContent' => $content,
- 'origContentType' => $asset->getContentType()
- ]
- );
-
- $processedCoreFile = $sourceFileGenerator->generateFileTree($chain);
-
- $targetDir = $this->filesystem->getDirectoryWrite(DirectoryList::STATIC_VIEW);
- $rootDir = $this->filesystem->getDirectoryWrite(DirectoryList::ROOT);
- $source = $rootDir->getRelativePath($processedCoreFile);
- $destination = $asset->getPath();
- $rootDir->copyFile($source, $destination, $targetDir);
-
- $this->logger->logMessage("Done");
- }
-
- $this->response->setCode(Response::SUCCESS);
-
- return $this->response;
- }
-
- /**
- * Ability to handle exceptions that may have occurred during bootstrap and launch
- *
- * Return values:
- * - true: exception has been handled, no additional action is needed
- * - false: exception has not been handled - pass the control to Bootstrap
- *
- * @param App\Bootstrap $bootstrap
- * @param \Exception $exception
- * @return bool
- *
- * @SuppressWarnings(PHPMD.UnusedFormalParameter)
- */
- public function catchException(App\Bootstrap $bootstrap, \Exception $exception)
- {
- return false;
- }
-}
diff --git a/dev/tools/Magento/Tools/Webdev/CliParams.php b/dev/tools/Magento/Tools/Webdev/CliParams.php
deleted file mode 100644
index b06560868d8a84796ef9cb4bdddcaba518cf33f7..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/Webdev/CliParams.php
+++ /dev/null
@@ -1,192 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Tools\Webdev;
-
-use Magento\Tools\View\Deployer\Log;
-
-/**
- * Class CliParams
- *
- * @package Magento\Tools\Webdev
- */
-class CliParams
-{
- /**
- * AREA_DOC
- */
- const AREA_DOC = 'doc';
-
- /**
- * AREA_FRONTEND
- */
- const AREA_FRONTEND = 'frontend';
-
- /**
- * AREA_ADMIN
- */
- const AREA_ADMIN = 'adminhtml';
-
- /**
- * @var string
- */
- private $locale = 'en_US';
-
- /**
- * @var string
- */
- private $area = self::AREA_FRONTEND;
-
- /**
- * @var string
- */
- private $theme = 'Magento/blank';
-
- /**
- * @var array
- */
- private $files = ['css/styles-m'];
-
- /**
- * @var string
- */
- private $ext;
-
- /**
- * @var int
- */
- private $verbose = Log::ERROR;
-
- /**
- * @param \Zend_Console_Getopt $opt
- * @SuppressWarnings(PHPMD.NPathComplexity)
- * @throws \Zend_Console_Getopt_Exception
- */
- public function __construct(\Zend_Console_Getopt $opt)
- {
- $this->locale = $opt->getOption('locale')? :$this->locale;
-
- if (!$opt->getOption('ext')) {
- throw new \Zend_Console_Getopt_Exception('Provide "ext" parameter!');
- }
-
- $this->ext = $opt->getOption('ext');
-
- if (!preg_match('/^[a-z]{2}_[A-Z]{2}$/', $this->locale)) {
- throw new \Zend_Console_Getopt_Exception('Invalid locale format');
- }
-
- $this->area = $opt->getOption('area')? :$this->area;
- $this->theme = $opt->getOption('theme')? :$this->theme;
-
- if ($opt->getOption('files')) {
- $this->files = explode(',', $opt->getOption('files'));
- }
-
- if ($opt->getOption('verbose')) {
- $this->verbose = Log::ERROR | Log::DEBUG;
- }
- }
-
- /**
- * @return string
- */
- public function getLocale()
- {
- return $this->locale;
- }
-
- /**
- * @param string $locale
- *
- * @throws \Zend_Console_Getopt_Exception
- *
- * @return void
- */
- public function setLocale($locale)
- {
- $this->locale = $locale;
- }
-
- /**
- * @return string
- */
- public function getArea()
- {
- return $this->area;
- }
-
- /**
- * @param string $area
- *
- * @return void
- */
- public function setArea($area)
- {
- $this->area = $area;
- }
-
- /**
- * @return string
- */
- public function getTheme()
- {
- return $this->theme;
- }
-
- /**
- * @param string $theme
- *
- * @return void
- */
- public function setTheme($theme)
- {
- $this->theme = $theme;
- }
-
- /**
- * @return array
- */
- public function getFiles()
- {
- return $this->files;
- }
-
- /**
- * @param array $files
- *
- * @return void
- */
- public function setFiles($files)
- {
- $this->files = $files;
- }
-
- /**
- * @return int
- */
- public function getVerbose()
- {
- return $this->verbose;
- }
-
- /**
- * @param int $verbose
- *
- * @return void
- */
- public function setVerbose($verbose)
- {
- $this->verbose = $verbose;
- }
-
- /**
- * @return string
- */
- public function getExt()
- {
- return $this->ext;
- }
-}
diff --git a/dev/tools/Magento/Tools/Webdev/file_assembler.php b/dev/tools/Magento/Tools/Webdev/file_assembler.php
deleted file mode 100644
index 669ffa8d535856606b1a86ebbf5d0882aa99f353..0000000000000000000000000000000000000000
--- a/dev/tools/Magento/Tools/Webdev/file_assembler.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-/**
- *
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-use Magento\Tools\Webdev\CliParams;
-use Magento\Tools\View\Deployer\Log;
-
-require __DIR__ . '/../../../bootstrap.php';
-
-try {
- $opt = new \Zend_Console_Getopt(
- [
- 'locale=s' => 'locale, default: en_US',
- 'area=s' => 'area, one of (frontend|adminhtml|doc), default: frontend',
- 'theme=s' => 'theme in format Vendor/theme, default: Magento/blank',
- 'files=s' => 'files to pre-process (accept more than one file type as comma-separate values),'
- . ' default: css/styles-m',
- 'ext=s' => 'dynamic stylesheet language: less|sass',
- 'verbose|v' => 'provide extra output',
- 'help|h' => 'show help',
- ]
- );
-
- $opt->parse();
-
- if ($opt->getOption('help')) {
- echo $opt->getUsageMessage();
- exit(0);
- }
-
- $params = new CliParams($opt);
- $logger = new Log($params->getVerbose());
-
-} catch (\Zend_Console_Getopt_Exception $e) {
- echo $e->getMessage() . PHP_EOL;
- echo 'Please, use quotes(") for wrapping strings.' . PHP_EOL;
- exit(1);
-}
-
-$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
-/** @var \Magento\Framework\App\Http $app */
-$app = $bootstrap->createApplication(
- 'Magento\Tools\Webdev\App\FileAssembler',
- ['params' => $params, 'logger' => $logger]
-);
-$bootstrap->run($app);
diff --git a/dev/tools/grunt/configs/combo.js b/dev/tools/grunt/configs/combo.js
index 1ead93cb6265474399e612d02bad98cfbdaaee5b..cd3484eee7836c516e6cacd766fecc4410c71707 100644
--- a/dev/tools/grunt/configs/combo.js
+++ b/dev/tools/grunt/configs/combo.js
@@ -16,12 +16,10 @@ module.exports = {
var cmdPlus = /^win/.test(process.platform) ? ' & ' : ' && ',
command = 'grunt --force clean:' + themeName + cmdPlus;
- command = command + 'php -f dev/tools/Magento/Tools/Webdev/file_assembler.php --' +
+ command = command + 'php bin/magento dev:css:deploy ' + theme[themeName].dsl + ' ' + theme[themeName].files.join(' ') +
' --locale=' + theme[themeName].locale +
' --area=' + theme[themeName].area +
- ' --theme=' + theme[themeName].name +
- ' --files=' + theme[themeName].files.join(',') +
- ' --ext=' + theme[themeName].dsl;
+ ' --theme=' + theme[themeName].name;
return command;
},
diff --git a/dev/tools/grunt/tasks/deploy.js b/dev/tools/grunt/tasks/deploy.js
index bff8b1fabecaf8d9774a79aa3134c7163847ca30..13bedbc8a23e7fa929d6d659c27cc5b8c1d16fb6 100644
--- a/dev/tools/grunt/tasks/deploy.js
+++ b/dev/tools/grunt/tasks/deploy.js
@@ -20,7 +20,7 @@ module.exports = function (grunt) {
ok('"pub/static" is empty.');
log('Deploying Magento application...');
- deploy = spawn('php', ['dev/tools/Magento/Tools/View/deploy.php']);
+ deploy = spawn('php', ['bin/magento', 'setup:static-content:deploy']);
deploy.stdout.on('data', function (data) {
log(data);
diff --git a/dev/tools/performance-toolkit/framework/Magento/ToolkitFramework/Application.php b/dev/tools/performance-toolkit/framework/Magento/ToolkitFramework/Application.php
index d1df2a830d5d1b7a1df8785c278e3147ffe8d28a..9e6706a7713448e76b711becb20f25a415667f52 100644
--- a/dev/tools/performance-toolkit/framework/Magento/ToolkitFramework/Application.php
+++ b/dev/tools/performance-toolkit/framework/Magento/ToolkitFramework/Application.php
@@ -132,7 +132,7 @@ class Application
public function reindex()
{
$this->_shell->execute(
- 'php -f ' . $this->_applicationBaseDir . '/dev/shell/indexer.php -- reindexall'
+ 'php -f ' . $this->_applicationBaseDir . '/bin/magento indexer:reindex --all'
);
return $this;
}
diff --git a/dev/tools/tests.php b/dev/tools/tests.php
deleted file mode 100644
index fc04fa8a7311f2f4f8cfcb6b5d72e800a1021150..0000000000000000000000000000000000000000
--- a/dev/tools/tests.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-/**
- * Batch tool for running all or some of tests
- *
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-$vendorDir = require '../../app/etc/vendor_path.php';
-
-$commands = [
- 'unit' => ['../tests/unit', ''],
- 'unit-performance' => ['../tests/performance/framework/tests/unit', ''],
- 'unit-static' => ['../tests/static/framework/tests/unit', ''],
- 'unit-integration' => ['../tests/integration/framework/tests/unit', ''],
- 'integration' => ['../tests/integration', ''],
- 'integration-integrity' => ['../tests/integration', ' testsuite/Magento/Test/Integrity'],
- 'static-default' => ['../tests/static', ''],
- 'static-legacy' => ['../tests/static', ' testsuite/Magento/Test/Legacy'],
- 'static-integration-php' => ['../tests/static', ' testsuite/Magento/Test/Php/Exemplar'],
- 'static-integration-js' => ['../tests/static', ' testsuite/Magento/Test/Js/Exemplar'],
-];
-$types = [
- 'all' => array_keys($commands),
- 'unit' => ['unit', 'unit-performance', 'unit-static', 'unit-integration'],
- 'integration' => ['integration'],
- 'integration-all' => ['integration', 'integration-integrity'],
- 'static' => ['static-default'],
- 'static-all' => ['static-default', 'static-legacy', 'static-integration-php', 'static-integration-js'],
- 'integrity' => ['static-default', 'static-legacy', 'integration-integrity'],
- 'legacy' => ['static-legacy'],
- 'default' => [
- 'unit', 'unit-performance', 'unit-static', 'unit-integration', 'integration', 'static-default',
- ],
-];
-
-$arguments = getopt('', ['type::']);
-if (!isset($arguments['type'])) {
- $arguments['type'] = 'default';
-} elseif (!isset($types[$arguments['type']])) {
- echo "Invalid type: '{$arguments['type']}'. Available types: " . implode(', ', array_keys($types)) . "\n\n";
- exit(1);
-}
-
-$failures = [];
-$runCommands = $types[$arguments['type']];
-foreach ($runCommands as $key) {
- list($dir, $options) = $commands[$key];
- $dirName = realpath(__DIR__ . '/' . $dir);
- chdir($dirName);
- $command = realpath(__DIR__ . '/../../') . '/' . $vendorDir . '/phpunit/phpunit/phpunit' . $options;
- $message = $dirName . '> ' . $command;
- echo "\n\n";
- echo str_pad("---- {$message} ", 70, '-');
- echo "\n\n";
- passthru($command, $returnVal);
- if ($returnVal) {
- $failures[] = $message;
- }
-}
-
-echo "\n" , str_repeat('-', 70), "\n";
-if ($failures) {
- echo "\nFAILED - " . count($failures) . ' of ' . count($runCommands) . ":\n";
- foreach ($failures as $message) {
- echo ' - ' . $message . "\n";
- }
-} else {
- echo "\nPASSED (" . count($runCommands) . ")\n";
-}
diff --git a/lib/internal/Magento/Framework/App/AbstractShell.php b/lib/internal/Magento/Framework/App/AbstractShell.php
deleted file mode 100644
index ce24586bb7cec5a589bb1f3530df07f6fdc6eb8d..0000000000000000000000000000000000000000
--- a/lib/internal/Magento/Framework/App/AbstractShell.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Framework\App;
-
-use Magento\Framework\App\Filesystem\DirectoryList;
-
-/**
- * Shell scripts abstract class
- */
-abstract class AbstractShell
-{
- /**
- * Raw arguments, that should be parsed
- *
- * @var string[]
- */
- protected $_rawArgs = [];
-
- /**
- * Parsed input arguments
- *
- * @var array
- */
- protected $_args = [];
-
- /**
- * Entry point - script filename that is executed
- *
- * @var string
- */
- protected $_entryPoint = null;
-
- /**
- * @var \Magento\Framework\Filesystem\Directory\ReadInterface
- */
- protected $rootDirectory;
-
- /**
- * Initializes application and parses input parameters
- *
- * @param \Magento\Framework\Filesystem $filesystem
- * @param string $entryPoint
- * @throws \Exception
- */
- public function __construct(\Magento\Framework\Filesystem $filesystem, $entryPoint)
- {
- if (isset($_SERVER['REQUEST_METHOD'])) {
- throw new \Exception('This script cannot be run from Browser. This is the shell script.');
- }
-
- $this->rootDirectory = $filesystem->getDirectoryRead(DirectoryList::ROOT);
- $this->_entryPoint = $entryPoint;
- $this->_rawArgs = $_SERVER['argv'];
- $this->_applyPhpVariables();
- $this->_parseArgs();
- }
-
- /**
- * Sets raw arguments to be parsed
- *
- * @param string[] $args
- * @return $this
- */
- public function setRawArgs($args)
- {
- $this->_rawArgs = $args;
- $this->_parseArgs();
- return $this;
- }
-
- /**
- * Parses .htaccess file and apply php settings to shell script
- *
- * @return $this
- */
- protected function _applyPhpVariables()
- {
- $htaccess = '.htaccess';
- if ($this->rootDirectory->isFile($htaccess)) {
- // parse htaccess file
- $data = $this->rootDirectory->readFile($htaccess);
- $matches = [];
- preg_match_all('#^\s+?php_value\s+([a-z_]+)\s+(.+)$#siUm', $data, $matches, PREG_SET_ORDER);
- if ($matches) {
- foreach ($matches as $match) {
- @ini_set($match[1], str_replace("\r", '', $match[2]));
- }
- }
- preg_match_all('#^\s+?php_flag\s+([a-z_]+)\s+(.+)$#siUm', $data, $matches, PREG_SET_ORDER);
- if ($matches) {
- foreach ($matches as $match) {
- @ini_set($match[1], str_replace("\r", '', $match[2]));
- }
- }
- }
- return $this;
- }
-
- /**
- * Parses input arguments
- *
- * @return $this
- */
- protected function _parseArgs()
- {
- $current = null;
- foreach ($this->_rawArgs as $arg) {
- $match = [];
- if (preg_match(
- '#^--([\w\d_-]{1,})(=(.*))?$#',
- $arg,
- $match
- ) || preg_match(
- '#^-([\w\d_]{1,})$#',
- $arg,
- $match
- )
- ) {
- if (isset($match[3])) {
- $this->_args[$match[1]] = $match[3];
- $current = null;
- } else {
- $current = $match[1];
- $this->_args[$current] = true;
- }
- } else {
- if ($current) {
- $this->_args[$current] = $arg;
- $current = null;
- } elseif (preg_match('#^([\w\d_]{1,})$#', $arg, $match)) {
- $this->_args[$match[1]] = true;
- }
- }
- }
- return $this;
- }
-
- /**
- * Runs script
- *
- * @return $this
- */
- abstract public function run();
-
- /**
- * Shows usage help, if requested
- *
- * @return bool
- */
- protected function _showHelp()
- {
- if (isset($this->_args['h']) || isset($this->_args['help'])) {
- echo $this->getUsageHelp();
- return true;
- }
- return false;
- }
-
- /**
- * Retrieves usage help message
- *
- * @return string
- */
- public function getUsageHelp()
- {
- return <<<USAGE
-Usage: php -f {$this->_entryPoint} -- [options]
-
- -h Short alias for help
- help This help
-USAGE;
- }
-
- /**
- * Retrieves argument value by name. If argument is not found - returns FALSE.
- *
- * @param string $name the argument name
- * @return mixed
- */
- public function getArg($name)
- {
- if (isset($this->_args[$name])) {
- return $this->_args[$name];
- }
- return false;
- }
-}
diff --git a/lib/internal/Magento/Framework/App/Cache/Manager.php b/lib/internal/Magento/Framework/App/Cache/Manager.php
index fc49b8af25f568876eb2336c2aa690a296285a7b..3936853833b98fe671c4a748052d944184f6e6a9 100644
--- a/lib/internal/Magento/Framework/App/Cache/Manager.php
+++ b/lib/internal/Magento/Framework/App/Cache/Manager.php
@@ -85,8 +85,7 @@ class Manager
public function clean(array $types)
{
foreach ($types as $type) {
- $frontend = $this->pool->get($type);
- $frontend->clean();
+ $this->cacheTypeList->cleanType($type);
}
}
diff --git a/lib/internal/Magento/Framework/App/Cache/ManagerApp.php b/lib/internal/Magento/Framework/App/Cache/ManagerApp.php
deleted file mode 100644
index 15f2f92ddf81fd1b66aebd41c93b1c211b405306..0000000000000000000000000000000000000000
--- a/lib/internal/Magento/Framework/App/Cache/ManagerApp.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Framework\App\Cache;
-
-use Magento\Framework\App;
-use Magento\Framework\App\Console\Response;
-use Magento\Framework\AppInterface;
-
-/**
- * An application for managing cache status
- */
-class ManagerApp implements AppInterface
-{
- /**#@+
- * Request keys for managing caches
- */
- const KEY_TYPES = 'types';
- const KEY_SET = 'set';
- const KEY_CLEAN = 'clean';
- const KEY_FLUSH = 'flush';
- const KEY_STATUS = 'status';
- /**#@- */
-
- /**
- * Console response
- *
- * @var Response
- */
- private $response;
-
- /**
- * Requested changes
- *
- * @var array
- */
- private $requestArgs;
-
- /**
- * Cache manager
- *
- * @var Manager
- */
- private $cacheManager;
-
- /**
- * Constructor
- *
- * @param Manager $cacheManager
- * @param Response $response
- * @param array $requestArgs
- */
- public function __construct(
- Manager $cacheManager,
- Response $response,
- array $requestArgs
- ) {
- $this->cacheManager = $cacheManager;
- $this->response = $response;
- $this->requestArgs = $requestArgs;
- }
-
- /**
- * {@inheritdoc}
- * @return Response
- * @SuppressWarnings(PHPMD.CyclomaticComplexity)
- */
- public function launch()
- {
- $output = [];
- $types = $this->getRequestedTypes();
-
- $enabledTypes = [];
- if (isset($this->requestArgs[self::KEY_SET])) {
- $isEnabled = (bool)(int)$this->requestArgs[self::KEY_SET];
- $changedTypes = $this->cacheManager->setEnabled($types, $isEnabled);
- if ($isEnabled) {
- $enabledTypes = $changedTypes;
- }
- if ($changedTypes) {
- $output[] = 'Changed cache status:';
- foreach ($changedTypes as $type) {
- $output[] = sprintf('%30s: %d -> %d', $type, !$isEnabled, $isEnabled);
- }
- } else {
- $output[] = 'There is nothing to change in cache status';
- }
- }
- if (isset($this->requestArgs[self::KEY_FLUSH])) {
- $this->cacheManager->flush($types);
- $output[] = 'Flushed cache types:';
- $output[] = join("\n", $types);
- } elseif (isset($this->requestArgs[self::KEY_CLEAN])) {
- $this->cacheManager->clean($types);
- $output[] = 'Cleaned cache types:';
- $output[] = join("\n", $types);
- } elseif (isset($this->requestArgs[self::KEY_STATUS])) {
- $output[] = 'Current status:';
- foreach ($this->cacheManager->getStatus() as $cache => $status) {
- $output[] = sprintf('%30s: %d', $cache, $status);
- }
- } elseif (!empty($enabledTypes)) {
- $this->cacheManager->clean($enabledTypes);
- $output[] = 'Cleaned cache types:';
- $output[] = join("\n", $enabledTypes);
- }
-
- $output[] = '';
- $this->response->setBody(join("\n", $output));
- return $this->response;
- }
-
- /**
- * Maps requested type from request into the current registry of types
- *
- * @return string[]
- * @throws \InvalidArgumentException
- */
- private function getRequestedTypes()
- {
- $requestedTypes = [];
- if (isset($this->requestArgs[self::KEY_TYPES])) {
- $requestedTypes = explode(',', $this->requestArgs[self::KEY_TYPES]);
- $requestedTypes = array_filter(array_map('trim', $requestedTypes), 'strlen');
- }
- $availableTypes = $this->cacheManager->getAvailableTypes();
- if (empty($requestedTypes)) {
- return $availableTypes;
- } else {
- $unsupportedTypes = array_diff($requestedTypes, $availableTypes);
- if ($unsupportedTypes) {
- throw new \InvalidArgumentException(
- "The following requested cache types are not supported: '" . join("', '", $unsupportedTypes)
- . "'.\nSupported types: " . join(", ", $availableTypes) . ""
- );
- }
- return array_values(array_intersect($availableTypes, $requestedTypes));
- }
- }
-
- /**
- * {@inheritdoc}
- */
- public function catchException(App\Bootstrap $bootstrap, \Exception $exception)
- {
- $this->response->setBody($exception->getMessage());
- $this->response->terminateOnSend(false);
- $this->response->sendResponse();
- return false;
- }
-}
diff --git a/lib/internal/Magento/Framework/App/Filesystem/DirectoryList.php b/lib/internal/Magento/Framework/App/Filesystem/DirectoryList.php
index b73959ca803be367c533b64e33041669d51712f3..cb3767cc11fce65c015b2e6bcedcee9e253fca17 100644
--- a/lib/internal/Magento/Framework/App/Filesystem/DirectoryList.php
+++ b/lib/internal/Magento/Framework/App/Filesystem/DirectoryList.php
@@ -90,6 +90,11 @@ class DirectoryList extends \Magento\Framework\Filesystem\DirectoryList
*/
const SESSION = 'session';
+ /**
+ * Directory for Setup application
+ */
+ const SETUP = 'setup';
+
/**
* Dependency injection related file directory
*/
@@ -139,6 +144,7 @@ class DirectoryList extends \Magento\Framework\Filesystem\DirectoryList
self::UPLOAD => [parent::PATH => 'pub/media/upload', parent::URL_PATH => 'pub/media/upload'],
self::TMP_MATERIALIZATION_DIR => [parent::PATH => 'var/view_preprocessed'],
self::TEMPLATE_MINIFICATION_DIR => [parent::PATH => 'var/view_preprocessed/html'],
+ self::SETUP => [parent::PATH => 'setup/src'],
];
return parent::getDefaultConfig() + $result;
}
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/AbstractShellTest.php b/lib/internal/Magento/Framework/App/Test/Unit/AbstractShellTest.php
deleted file mode 100644
index 07c320180d3e1c62ee2a3de19bf511f301a85f91..0000000000000000000000000000000000000000
--- a/lib/internal/Magento/Framework/App/Test/Unit/AbstractShellTest.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Framework\App\Test\Unit;
-
-class AbstractShellTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var \Magento\Framework\App\AbstractShell | \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_model;
-
- protected function setUp()
- {
- $this->_model = $this->getMockBuilder(
- '\Magento\Framework\App\AbstractShell'
- )->disableOriginalConstructor()->setMethods(
- ['_applyPhpVariables']
- )->getMockForAbstractClass();
- }
-
- protected function tearDown()
- {
- unset($this->_model);
- }
-
- /**
- * @param array $arguments
- * @param string $argName
- * @param string $expectedValue
- *
- * @dataProvider setGetArgDataProvider
- */
- public function testSetGetArg($arguments, $argName, $expectedValue)
- {
- $this->_model->setRawArgs($arguments);
- $this->assertEquals($this->_model->getArg($argName), $expectedValue);
- }
-
- /**
- * @return array
- */
- public function setGetArgDataProvider()
- {
- return [
- 'argument with no value' => [
- 'arguments' => ['argument', 'argument2'],
- 'argName' => 'argument',
- 'expectedValue' => true,
- ],
- 'dashed argument with value' => [
- 'arguments' => ['-argument', 'value'],
- 'argName' => 'argument',
- 'expectedValue' => 'value',
- ],
- 'double-dashed argument with separate value' => [
- 'arguments' => ['--argument-name', 'value'],
- 'argName' => 'argument-name',
- 'expectedValue' => 'value',
- ],
- 'double-dashed argument with included value' => [
- 'arguments' => ['--argument-name=value'],
- 'argName' => 'argument-name',
- 'expectedValue' => 'value',
- ],
- 'argument with value, then single argument with no value' => [
- 'arguments' => ['-argument', 'value', 'argument2'],
- 'argName' => 'argument',
- 'expectedValue' => 'value',
- ]
- ];
- }
-}
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Cache/ManagerAppTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Cache/ManagerAppTest.php
deleted file mode 100644
index b3d7c803071dd9a231db4224c85c8c4c3f6a74bb..0000000000000000000000000000000000000000
--- a/lib/internal/Magento/Framework/App/Test/Unit/Cache/ManagerAppTest.php
+++ /dev/null
@@ -1,228 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Framework\App\Test\Unit\Cache;
-
-use \Magento\Framework\App\Cache\ManagerApp;
-
-class ManagerAppTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var \Magento\Framework\App\Cache\Manager|\PHPUnit_Framework_MockObject_MockObject
- */
- private $cacheManager;
-
- /**
- * @var \Magento\Framework\App\Console\Response|\PHPUnit_Framework_MockObject_MockObject
- */
- private $response;
-
- protected function setUp()
- {
- $this->cacheManager = $this->getMock('Magento\Framework\App\Cache\Manager', [], [], '', false);
- $this->cacheManager->expects($this->any())
- ->method('getAvailableTypes')
- ->will($this->returnValue(['foo', 'bar', 'baz']));
- $this->cacheManager->expects($this->any())
- ->method('getStatus')
- ->will($this->returnValue(['foo' => true, 'bar' => true, 'baz' => false]));
- $this->response = $this->getMock('Magento\Framework\App\Console\Response', [], [], '', false);
- }
-
- public function testLaunchStatus()
- {
- $requestArgs = [
- ManagerApp::KEY_STATUS => true
- ];
-
- $this->response->expects($this->once())
- ->method('setBody')
- ->with(
- $this->matches("Current status:%afoo: 1%abar: 1%abaz: 0")
- );
-
- $model = new ManagerApp($this->cacheManager, $this->response, $requestArgs);
- $model->launch();
- }
-
- public function testLaunchEnable()
- {
- $requestArgs = [
- ManagerApp::KEY_SET => true,
- ManagerApp::KEY_TYPES => 'foo,,bar, baz,',
- ];
- $this->cacheManager->expects($this->once())
- ->method('setEnabled')
- ->with(['foo', 'bar', 'baz'], true)
- ->will($this->returnValue(['baz']));
- $this->cacheManager->expects($this->once())
- ->method('clean')
- ->with(['baz']);
- $this->response->expects($this->once())
- ->method('setBody')
- ->with(
- $this->matches("Changed cache status:\n%abaz: 0 -> 1\nCleaned cache types:\nbaz")
- );
-
- $model = new ManagerApp($this->cacheManager, $this->response, $requestArgs);
- $model->launch();
- }
-
- public function testLaunchDisable()
- {
- $requestArgs = [
- ManagerApp::KEY_SET => false,
- ManagerApp::KEY_TYPES => 'foo,,bar, baz,',
- ];
- $this->cacheManager->expects($this->once())
- ->method('setEnabled')
- ->with(['foo', 'bar', 'baz'], false)
- ->will($this->returnValue(['baz']));
- $this->cacheManager->expects($this->never())
- ->method('clean');
- $this->response->expects($this->once())
- ->method('setBody')
- ->with(
- $this->matches("Changed cache status:\n%abaz: 1 -> 0\n")
- );
-
- $model = new ManagerApp($this->cacheManager, $this->response, $requestArgs);
- $model->launch();
- }
-
- public function testLaunchFlush()
- {
- $requestArgs = [
- ManagerApp::KEY_FLUSH => true,
- ManagerApp::KEY_TYPES => 'foo,bar',
- ];
- $this->cacheManager->expects($this->never())
- ->method('setEnabled');
- $this->cacheManager->expects($this->once())
- ->method('flush')
- ->with(['foo', 'bar']);
- $this->cacheManager->expects($this->never())
- ->method('clean');
- $this->response->expects($this->once())
- ->method('setBody')
- ->with(
- $this->matches("Flushed cache types:\nfoo\nbar")
- );
-
- $model = new ManagerApp($this->cacheManager, $this->response, $requestArgs);
- $model->launch();
- }
-
- public function testLaunchClean()
- {
- $requestArgs = [
- ManagerApp::KEY_CLEAN => true,
- ManagerApp::KEY_TYPES => 'foo,bar',
- ];
- $this->cacheManager->expects($this->never())
- ->method('setEnabled');
- $this->cacheManager->expects($this->never())
- ->method('flush');
- $this->cacheManager->expects($this->once())
- ->method('clean')
- ->with(['foo', 'bar']);
- $this->response->expects($this->once())
- ->method('setBody')
- ->with(
- $this->matches("Cleaned cache types:\nfoo\nbar")
- );
-
- $model = new ManagerApp($this->cacheManager, $this->response, $requestArgs);
- $model->launch();
- }
-
- public function testLaunchSetAndClean()
- {
- $requestArgs = [
- ManagerApp::KEY_SET => true,
- ManagerApp::KEY_CLEAN => true,
- ManagerApp::KEY_TYPES => 'foo,bar',
- ];
- $this->cacheManager->expects($this->once())
- ->method('setEnabled')
- ->with(['foo', 'bar'], true)
- ->will($this->returnValue(['foo']));
- $this->cacheManager->expects($this->never())
- ->method('flush');
- $this->cacheManager->expects($this->once())
- ->method('clean')
- ->with(['foo', 'bar']);
- $this->response->expects($this->once())
- ->method('setBody')
- ->with(
- $this->matches("Changed cache status:\n%afoo: 0 -> 1\nCleaned cache types:\nfoo\nbar")
- );
-
- $model = new ManagerApp($this->cacheManager, $this->response, $requestArgs);
- $model->launch();
- }
-
- public function testLaunchAll()
- {
- $requestArgs = [
- ManagerApp::KEY_SET => true,
- ManagerApp::KEY_FLUSH => true,
- ManagerApp::KEY_CLEAN => true,
- ManagerApp::KEY_TYPES => 'foo,baz',
- ];
- $this->cacheManager->expects($this->once())
- ->method('setEnabled')
- ->with(['foo', 'baz'], true)
- ->will($this->returnValue(['baz']));
- $this->cacheManager->expects($this->once())
- ->method('flush')
- ->with(['foo', 'baz']);
- $this->cacheManager->expects($this->never())
- ->method('clean');
- $this->response->expects($this->once())
- ->method('setBody')
- ->with(
- $this->matches("Changed cache status:\n%abaz: 0 -> 1%aFlushed cache types:\nfoo\nbaz")
- );
-
- $model = new ManagerApp($this->cacheManager, $this->response, $requestArgs);
- $model->launch();
- }
-
- /**
- * @expectedException \InvalidArgumentException
- * @expectedExceptionMessage The following requested cache types are not supported: 'unsupported', 'wrong'
- */
- public function testLaunchWithUnsupportedCacheTypes()
- {
- $requestArgs = [
- ManagerApp::KEY_SET => true,
- ManagerApp::KEY_TYPES => 'foo,unsupported,wrong,bar',
- ];
- $cacheManager = $this->getMock('Magento\Framework\App\Cache\Manager', [], [], '', false);
- $cacheManager->expects($this->any())
- ->method('getAvailableTypes')
- ->will($this->returnValue(['foo', 'bar', 'baz']));
- $cacheManager->expects($this->never())
- ->method('setEnabled');
-
- $model = new ManagerApp($cacheManager, $this->response, $requestArgs);
- $model->launch();
- }
-
- public function testCatchException()
- {
- $exceptionMessage = 'Exception message';
- $model = new ManagerApp($this->cacheManager, $this->response, []);
- $this->response->expects($this->once())
- ->method('setBody')
- ->with($exceptionMessage);
- $this->assertFalse($model->catchException(
- $this->getMock('Magento\Framework\App\Bootstrap', [], [], '', false),
- new \Exception($exceptionMessage)
- ));
- }
-}
diff --git a/lib/internal/Magento/Framework/Code/Generator.php b/lib/internal/Magento/Framework/Code/Generator.php
index 03ac500f47daccb01521a26559f1b6b3669f8494..da6d60b14ed9bff46b34410eba6c2c0bb4136926 100644
--- a/lib/internal/Magento/Framework/Code/Generator.php
+++ b/lib/internal/Magento/Framework/Code/Generator.php
@@ -68,7 +68,7 @@ class Generator
* Generate Class
*
* @param string $className
- * @return string
+ * @return string | void
* @throws \Magento\Framework\Exception\LocalizedException
* @throws \InvalidArgumentException
*/
@@ -99,15 +99,17 @@ class Generator
$generatorClass = $this->_generatedEntities[$entity];
/** @var EntityAbstract $generator */
$generator = $this->createGeneratorInstance($generatorClass, $entityName, $className);
- $this->tryToLoadSourceClass($className, $generator);
- if (!($file = $generator->generate())) {
- $errors = $generator->getErrors();
- throw new \Magento\Framework\Exception\LocalizedException(
- new \Magento\Framework\Phrase(implode(' ', $errors))
- );
+ if ($generator !== null) {
+ $this->tryToLoadSourceClass($className, $generator);
+ if (!($file = $generator->generate())) {
+ $errors = $generator->getErrors();
+ throw new \Magento\Framework\Exception\LocalizedException(
+ new \Magento\Framework\Phrase(implode(' ', $errors))
+ );
+ }
+ $this->includeFile($file);
+ return self::GENERATION_SUCCESS;
}
- $this->includeFile($file);
- return self::GENERATION_SUCCESS;
}
/**
diff --git a/lib/internal/Magento/Framework/Console/README.md b/lib/internal/Magento/Framework/Console/README.md
index 8d77e82bdff7213f81673b8d7d9c32bf0f017573..b9057127c88914c576e5385aeee9839b87ea3c90 100644
--- a/lib/internal/Magento/Framework/Console/README.md
+++ b/lib/internal/Magento/Framework/Console/README.md
@@ -8,7 +8,7 @@ For example we can introduce new command in module using di.xml:
<type name="Magento\Framework\Console\CommandList">
<arguments>
<argument name="commands" xsi:type="array">
- <item name="test_me" xsi:type="string">Magento\MyModule\Console\TestMeCommand</item>
+ <item name="test_me" xsi:type="object">Magento\MyModule\Console\TestMeCommand</item>
</argument>
</arguments>
</type>
diff --git a/setup/pub/magento/setup/readiness-check.js b/setup/pub/magento/setup/readiness-check.js
index d7c0eb243e2fccce768b7eec41e4b5b414ca7584..fa6da9344a549ffe0fe5a228630c8b27507ef26e 100644
--- a/setup/pub/magento/setup/readiness-check.js
+++ b/setup/pub/magento/setup/readiness-check.js
@@ -32,7 +32,7 @@ angular.module('readiness-check', [])
processed: false,
expanded: false
};
- $scope.rawpost = {
+ $scope.settings = {
visible: false,
processed: false,
expanded: false
@@ -62,16 +62,16 @@ angular.module('readiness-check', [])
$scope.stopProgress();
}
},
- 'php-rawpost': {
- url:'index.php/environment/php-rawpost',
+ 'php-settings': {
+ url:'index.php/environment/php-settings',
show: function() {
$scope.startProgress();
- $scope.rawpost.visible = true;
+ $scope.settings.visible = true;
},
process: function(data) {
- $scope.rawpost.processed = true;
- angular.extend($scope.rawpost, data);
- $scope.updateOnProcessed($scope.rawpost.responseType);
+ $scope.settings.processed = true;
+ angular.extend($scope.settings, data);
+ $scope.updateOnProcessed($scope.settings.responseType);
$scope.stopProgress();
}
},
diff --git a/setup/src/Magento/Setup/Console/Command/DeployStaticContentCommand.php b/setup/src/Magento/Setup/Console/Command/DeployStaticContentCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..5cde08cd967e98ed71d3fbf719f3adb104fb54a8
--- /dev/null
+++ b/setup/src/Magento/Setup/Console/Command/DeployStaticContentCommand.php
@@ -0,0 +1,130 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Console\Command;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Magento\Framework\App\DeploymentConfig;
+use Symfony\Component\Console\Input\InputArgument;
+use Magento\Setup\Model\ObjectManagerProvider;
+
+/**
+ * Command for deploy static content
+ */
+class DeployStaticContentCommand extends Command
+{
+ /**
+ * Key for dry-run option
+ */
+ const DRY_RUN_OPTION = 'dry-run';
+
+ /**
+ * Key for languages parameter
+ */
+ const LANGUAGE_OPTION = 'languages';
+
+ /**
+ * Object manager provider
+ *
+ * @var ObjectManagerProvider
+ */
+ private $objectManagerProvider;
+
+ /**
+ * Deployment configuration
+ *
+ * @var DeploymentConfig
+ */
+ private $deploymentConfig;
+
+ /**
+ * Inject dependencies
+ *
+ * @param ObjectManagerProvider $objectManagerProvider
+ * @param DeploymentConfig $deploymentConfig
+ */
+ public function __construct(ObjectManagerProvider $objectManagerProvider, DeploymentConfig $deploymentConfig)
+ {
+ $this->objectManagerProvider = $objectManagerProvider;
+ $this->deploymentConfig = $deploymentConfig;
+ parent::__construct();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('setup:static-content:deploy')
+ ->setDescription('Deploys static view files')
+ ->setDefinition([
+ new InputOption(
+ self::DRY_RUN_OPTION,
+ '-d',
+ InputOption::VALUE_NONE,
+ 'If specified, then no files will be actually deployed.'
+ ),
+ new InputArgument(
+ self::LANGUAGE_OPTION,
+ InputArgument::IS_ARRAY,
+ 'List of languages you want the tool populate files for.',
+ ['en_US']
+ ),
+ ]);
+ parent::configure();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ if (!$this->deploymentConfig->isAvailable()) {
+ $output->writeln("<info>You need to install the Magento application before running this utility.</info>");
+ return;
+ }
+
+ $options = $input->getOptions();
+
+ $languages = $input->getArgument(self::LANGUAGE_OPTION);
+ foreach ($languages as $lang) {
+ if (!preg_match('/^[a-z]{2}_[A-Z]{2}$/', $lang)) {
+ throw new \InvalidArgumentException(
+ $lang . ' argument has invalid value format'
+ );
+ }
+ }
+
+ try {
+ $objectManager = $this->objectManagerProvider->get();
+
+ // run the deployment logic
+ $filesUtil = $objectManager->create(
+ '\Magento\Framework\App\Utility\Files',
+ ['pathToSource' => BP]
+ );
+
+ $objectManagerFactory = $this->objectManagerProvider->getObjectManagerFactory();
+
+ /** @var \Magento\Setup\Model\Deployer $deployer */
+ $deployer = $objectManager->create(
+ 'Magento\Setup\Model\Deployer',
+ ['filesUtil' => $filesUtil, 'output' => $output, 'isDryRun' => $options[self::DRY_RUN_OPTION]]
+ );
+ $deployer->deploy($objectManagerFactory, $languages);
+
+ } catch (\Exception $e) {
+ $output->writeln('<error>' . $e->getMessage() . '</error>>');
+ if ($output->isVerbose()) {
+ $output->writeln($e->getTraceAsString());
+ }
+ return;
+ }
+ }
+}
diff --git a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..8236627a40caf9180839f9d4d4b259bd381a1656
--- /dev/null
+++ b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
@@ -0,0 +1,200 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Console\Command;
+
+use Magento\Framework\App\Filesystem\DirectoryList;
+use Magento\Framework\ObjectManagerInterface;
+use Magento\Framework\App\DeploymentConfig;
+use Magento\Setup\Model\ObjectManagerProvider;
+use Magento\Setup\Module\Di\App\Task\Manager;
+use Magento\Setup\Module\Di\App\Task\OperationFactory;
+use Magento\Setup\Module\Di\App\Task\OperationException;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * Command to run compile in single-tenant mode
+ */
+class DiCompileCommand extends Command
+{
+ /**
+ * @var DeploymentConfig
+ */
+ private $deploymentConfig;
+
+ /**
+ * @var ObjectManagerInterface
+ */
+ private $objectManager;
+
+ /**
+ * @var Manager
+ */
+ private $taskManager;
+
+ /**
+ * @var DirectoryList
+ */
+ private $directoryList;
+
+ /**
+ * @var array
+ */
+ private $excludedPathsList;
+
+ /**
+ * Constructor
+ *
+ * @param DeploymentConfig $deploymentConfig
+ * @param DirectoryList $directoryList
+ * @param Manager $taskManager
+ * @param ObjectManagerProvider $objectManagerProvider
+ */
+ public function __construct(
+ DeploymentConfig $deploymentConfig,
+ DirectoryList $directoryList,
+ Manager $taskManager,
+ ObjectManagerProvider $objectManagerProvider
+ ) {
+ $this->deploymentConfig = $deploymentConfig;
+ $this->directoryList = $directoryList;
+ $this->objectManager = $objectManagerProvider->get();
+ $this->taskManager = $taskManager;
+ parent::__construct();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('setup:di:compile')
+ ->setDescription(
+ 'Generates DI configuration and all non-existing interceptors and factories'
+ );
+ parent::configure();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $appCodePath = $this->directoryList->getPath(DirectoryList::MODULES);
+ $libraryPath = $this->directoryList->getPath(DirectoryList::LIB_INTERNAL);
+ $generationPath = $this->directoryList->getPath(DirectoryList::GENERATION);
+ if (!$this->deploymentConfig->isAvailable()) {
+ $output->writeln('You cannot run this command because the Magento application is not installed.');
+ return;
+ }
+ $compiledPathsList = [
+ 'application' => $appCodePath,
+ 'library' => $libraryPath . '/Magento/Framework',
+ 'generated_helpers' => $generationPath
+ ];
+ $this->excludedPathsList = [
+ 'application' => '#^' . $appCodePath . '/[\\w]+/[\\w]+/Test#',
+ 'framework' => '#^' . $libraryPath . '/[\\w]+/[\\w]+/([\\w]+/)?Test#'
+ ];
+ $this->configureObjectManager($output);
+
+ $operations = [
+ OperationFactory::REPOSITORY_GENERATOR => [
+ 'path' => $compiledPathsList['application'],
+ 'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/']
+ ],
+ OperationFactory::APPLICATION_CODE_GENERATOR => [
+ $compiledPathsList['application'],
+ $compiledPathsList['library'],
+ $compiledPathsList['generated_helpers'],
+ ],
+ OperationFactory::INTERCEPTION => [
+ 'intercepted_paths' => [
+ $compiledPathsList['application'],
+ $compiledPathsList['library'],
+ $compiledPathsList['generated_helpers'],
+ ],
+ 'path_to_store' => $compiledPathsList['generated_helpers'],
+ ],
+ OperationFactory::AREA_CONFIG_GENERATOR => [
+ $compiledPathsList['application'],
+ $compiledPathsList['library'],
+ $compiledPathsList['generated_helpers'],
+ ],
+ OperationFactory::INTERCEPTION_CACHE => [
+ $compiledPathsList['application'],
+ $compiledPathsList['library'],
+ $compiledPathsList['generated_helpers'],
+ ]
+ ];
+
+ try {
+ foreach ($operations as $operationCode => $arguments) {
+ $this->taskManager->addOperation(
+ $operationCode,
+ $arguments
+ );
+ }
+ $this->taskManager->process();
+ $output->writeln('<info>Generated code and dependency injection configuration successfully.</info>');
+ } catch (OperationException $e) {
+ $output->writeln('<error>' . $e->getMessage() . '</error>');
+ }
+ }
+
+ /**
+ * Configure Object Manager
+ *
+ * @param OutputInterface $output
+ * @return void
+ */
+ private function configureObjectManager(OutputInterface $output)
+ {
+ $this->objectManager->configure(
+ [
+ 'preferences' => [
+ 'Magento\Setup\Module\Di\Compiler\Config\WriterInterface' =>
+ 'Magento\Setup\Module\Di\Compiler\Config\Writer\Filesystem',
+ ],
+ 'Magento\Setup\Module\Di\Compiler\Config\ModificationChain' => [
+ 'arguments' => [
+ 'modificationsList' => [
+ 'BackslashTrim' =>
+ ['instance' => 'Magento\Setup\Module\Di\Compiler\Config\Chain\BackslashTrim'],
+ 'PreferencesResolving' =>
+ ['instance' => 'Magento\Setup\Module\Di\Compiler\Config\Chain\PreferencesResolving'],
+ 'InterceptorSubstitution' =>
+ ['instance' => 'Magento\Setup\Module\Di\Compiler\Config\Chain\InterceptorSubstitution'],
+ 'InterceptionPreferencesResolving' =>
+ ['instance' => 'Magento\Setup\Module\Di\Compiler\Config\Chain\PreferencesResolving'],
+ 'ArgumentsSerialization' =>
+ ['instance' => 'Magento\Setup\Module\Di\Compiler\Config\Chain\ArgumentsSerialization'],
+ ]
+ ]
+ ],
+ 'Magento\Setup\Module\Di\Code\Generator\PluginList' => [
+ 'arguments' => [
+ 'cache' => [
+ 'instance' => 'Magento\Framework\App\Interception\Cache\CompiledConfig'
+ ]
+ ]
+ ],
+ 'Magento\Setup\Module\Di\Code\Reader\ClassesScanner' => [
+ 'arguments' => [
+ 'excludePatterns' => $this->excludedPathsList
+ ]
+ ],
+ 'Magento\Setup\Module\Di\Compiler\Log\Writer\Console' => [
+ 'arguments' => [
+ 'output' => $output,
+ ]
+ ],
+ ]
+ );
+ }
+}
diff --git a/setup/src/Magento/Setup/Console/Command/DiCompileMultiTenantCommand.php b/setup/src/Magento/Setup/Console/Command/DiCompileMultiTenantCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..6f37a57c9c00c20a9935ce1f5f223ebcefff582d
--- /dev/null
+++ b/setup/src/Magento/Setup/Console/Command/DiCompileMultiTenantCommand.php
@@ -0,0 +1,362 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Setup\Console\Command;
+
+use Magento\Store\Model\StoreManager;
+use Magento\Setup\Model\ObjectManagerProvider;
+use Magento\Framework\App\ObjectManager;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Magento\Framework\Api\Code\Generator\Mapper;
+use Magento\Framework\Api\Code\Generator\SearchResults;
+use Magento\Framework\Autoload\AutoloaderRegistry;
+use Magento\Framework\Interception\Code\Generator\Interceptor;
+use Magento\Framework\ObjectManager\Code\Generator\Converter;
+use Magento\Framework\ObjectManager\Code\Generator\Factory;
+use Magento\Framework\ObjectManager\Code\Generator\Proxy;
+use Magento\Framework\ObjectManager\Code\Generator\Repository;
+use Magento\Framework\ObjectManager\Code\Generator\Persistor;
+use Magento\Framework\Api\Code\Generator\ExtensionAttributesGenerator;
+use Magento\Framework\Api\Code\Generator\ExtensionAttributesInterfaceGenerator;
+use Magento\Setup\Module\Di\Code\Scanner;
+use Magento\Setup\Module\Di\Compiler\Log\Log;
+use Magento\Setup\Module\Di\Compiler\Log\Writer;
+use Magento\Setup\Module\Di\Definition\Compressor;
+use Magento\Setup\Module\Di\Definition\Serializer\Igbinary;
+use Magento\Setup\Module\Di\Definition\Serializer\Standard;
+use \Magento\Framework\App\Filesystem\DirectoryList;
+
+/**
+ * Command to generate all non-existing proxies and factories, and pre-compile class definitions,
+ * inheritance information and plugin definitions
+ *
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ */
+class DiCompileMultiTenantCommand extends AbstractSetupCommand
+{
+ /**#@+
+ * Names of input options
+ */
+ const INPUT_KEY_SERIALIZER = 'serializer';
+ const INPUT_KEY_EXTRA_CLASSES_FILE = 'extra-classes-file';
+ const INPUT_KEY_GENERATION = 'generation';
+ const INPUT_KEY_DI= 'di';
+ const INPUT_KEY_EXCLUDE_PATTERN= 'exclude-pattern';
+ /**#@- */
+
+ /**
+ * Object Manager
+ *
+ * @var ObjectManager
+ */
+ private $objectManager;
+
+ /**
+ * Filesystem Directory List
+ *
+ * @var DirectoryList
+ */
+ private $directoryList;
+
+ /**
+ *
+ * @var array
+ */
+ private $entities;
+
+ /**
+ *
+ * @var array
+ */
+ private $files;
+
+ /**
+ *
+ * @var \Magento\Framework\Code\Generator
+ */
+ private $generator;
+
+ /**
+ *
+ * @var Log
+ */
+ private $log;
+
+ /**
+ * Constructor
+ *
+ * @param ObjectManagerProvider $objectManagerProvider
+ * @param DirectoryList $directoryList
+ */
+ public function __construct(ObjectManagerProvider $objectManagerProvider, DirectoryList $directoryList)
+ {
+ $this->objectManager = $objectManagerProvider->get();
+ $this->directoryList = $directoryList;
+ parent::__construct();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $options = [
+ new InputOption(
+ self::INPUT_KEY_SERIALIZER,
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'Serializer function that should be used (serialize|igbinary) default: serialize'
+ ),
+ new InputOption(
+ self::INPUT_KEY_EXTRA_CLASSES_FILE,
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'Path to file with extra proxies and factories to generate'
+ ),
+ new InputOption(
+ self::INPUT_KEY_GENERATION,
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'Absolute path to generated classes, <magento_root>/var/generation by default'
+ ),
+ new InputOption(
+ self::INPUT_KEY_DI,
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'Absolute path to DI definitions directory, <magento_root>/var/di by default'
+ ),
+ new InputOption(
+ self::INPUT_KEY_EXCLUDE_PATTERN,
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'Allows to exclude Paths from compilation (default is #[\\\\/]m1[\\\\/]#i)'
+ ),
+ ];
+ $this->setName('setup:di:compile-multi-tenant')
+ ->setDescription(
+ 'Generates all non-existing proxies and factories, and pre-compile class definitions, '
+ . 'inheritance information and plugin definitions'
+ )
+ ->setDefinition($options);
+ parent::configure();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $generationDir = $input->getOption(self::INPUT_KEY_GENERATION) ? $input->getOption(self::INPUT_KEY_GENERATION)
+ : $this->directoryList->getPath(DirectoryList::GENERATION);
+ $testExcludePatterns = [
+ "#^" . $this->directoryList->getPath(DirectoryList::MODULES) . "/[\\w]+/[\\w]+/Test#",
+ "#^" . $this->directoryList->getPath(DirectoryList::LIB_INTERNAL)
+ . "/[\\w]+/[\\w]+/([\\w]+/)?Test#",
+ "#^" . $this->directoryList->getPath(DirectoryList::SETUP) . "/[\\w]+/[\\w]+/Test#",
+ "#^" . $this->directoryList->getRoot() . "/dev/tools/Magento/Tools/[\\w]+/Test#"
+ ];
+ $fileExcludePatterns = $input->getOption('exclude-pattern') ?
+ [$input->getOption(self::INPUT_KEY_EXCLUDE_PATTERN)] : ['#[\\\\/]M1[\\\\/]#i'];
+ $fileExcludePatterns = array_merge($fileExcludePatterns, $testExcludePatterns);
+ /** @var Writer\Console logWriter Writer model for success messages */
+ $logWriter = new Writer\Console($output);
+ $this->log = new Log($logWriter, $logWriter);
+ AutoloaderRegistry::getAutoloader()->addPsr4('Magento\\', $generationDir . '/Magento/');
+ // 1 Code generation
+ $this->generateCode($generationDir, $fileExcludePatterns, $input);
+ // 2. Compilation
+ $this->compileCode($generationDir, $fileExcludePatterns, $input);
+ //Reporter
+ $this->log->report();
+ if (!$this->log->hasError()) {
+ $output->writeln(
+ '<info>On *nix systems, verify the Magento application has permissions to modify files '
+ . 'created by the compiler in the "var" directory. For instance, if you run the Magento application '
+ . 'using Apache, the owner of the files in the "var" directory should be the Apache user (example '
+ . 'command: "chown -R www-data:www-data <MAGENTO_ROOT>/var" where MAGENTO_ROOT is the Magento '
+ . 'root directory).</info>'
+ );
+ }
+ }
+
+ /**
+ * Generate Code
+ *
+ * @param string $generationDir
+ * @param array $fileExcludePatterns
+ * @param InputInterface $input
+ * @return void
+ * @SuppressWarnings(PHPMD.CyclomaticComplexity)
+ * @SuppressWarnings(PHPMD.NPathComplexity)
+ */
+ public function generateCode($generationDir, $fileExcludePatterns, $input)
+ {
+ // 1.1 Code scan
+ $filePatterns = ['php' => '/.*\.php$/', 'di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/'];
+ $codeScanDir = $this->directoryList->getRoot() . '/app';
+ $directoryScanner = new Scanner\DirectoryScanner();
+ $this->files = $directoryScanner->scan($codeScanDir, $filePatterns, $fileExcludePatterns);
+ $this->files['additional'] = [$input->getOption(self::INPUT_KEY_EXTRA_CLASSES_FILE)];
+ $repositoryScanner = new Scanner\RepositoryScanner();
+ $repositories = $repositoryScanner->collectEntities($this->files['di']);
+ $scanner = new Scanner\CompositeScanner();
+ $scanner->addChild(new Scanner\PhpScanner($this->log), 'php');
+ $scanner->addChild(new Scanner\XmlScanner($this->log), 'di');
+ $scanner->addChild(new Scanner\ArrayScanner(), 'additional');
+ $this->entities = $scanner->collectEntities($this->files);
+ $interceptorScanner = new Scanner\XmlInterceptorScanner();
+ $this->entities['interceptors'] = $interceptorScanner->collectEntities($this->files['di']);
+ // 1.2 Generation of Factory and Additional Classes
+ $generatorIo = new \Magento\Framework\Code\Generator\Io(
+ new \Magento\Framework\Filesystem\Driver\File(),
+ $generationDir
+ );
+ $this->generator = new \Magento\Framework\Code\Generator(
+ $generatorIo,
+ [
+ Interceptor::ENTITY_TYPE => 'Magento\Framework\Interception\Code\Generator\Interceptor',
+ Proxy::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Proxy',
+ Factory::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Factory',
+ Mapper::ENTITY_TYPE => 'Magento\Framework\Api\Code\Generator\Mapper',
+ Persistor::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Persistor',
+ Repository::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Repository',
+ Converter::ENTITY_TYPE => 'Magento\Framework\ObjectManager\Code\Generator\Converter',
+ SearchResults::ENTITY_TYPE => 'Magento\Framework\Api\Code\Generator\SearchResults',
+ ExtensionAttributesInterfaceGenerator::ENTITY_TYPE =>
+ 'Magento\Framework\Api\Code\Generator\ExtensionAttributesInterfaceGenerator',
+ ExtensionAttributesGenerator::ENTITY_TYPE =>
+ 'Magento\Framework\Api\Code\Generator\ExtensionAttributesGenerator'
+ ]
+ );
+ /** Initialize object manager for code generation based on configs */
+ $this->generator->setObjectManager($this->objectManager);
+ $generatorAutoloader = new \Magento\Framework\Code\Generator\Autoloader($this->generator);
+ spl_autoload_register([$generatorAutoloader, 'load']);
+
+ foreach ($repositories as $entityName) {
+ switch ($this->generator->generateClass($entityName)) {
+ case \Magento\Framework\Code\Generator::GENERATION_SUCCESS:
+ $this->log->add(Log::GENERATION_SUCCESS, $entityName);
+ break;
+ case \Magento\Framework\Code\Generator::GENERATION_ERROR:
+ $this->log->add(Log::GENERATION_ERROR, $entityName);
+ break;
+ case \Magento\Framework\Code\Generator::GENERATION_SKIP:
+ default:
+ //no log
+ break;
+ }
+ }
+ foreach (['php', 'additional'] as $type) {
+ sort($this->entities[$type]);
+ foreach ($this->entities[$type] as $entityName) {
+ switch ($this->generator->generateClass($entityName)) {
+ case \Magento\Framework\Code\Generator::GENERATION_SUCCESS:
+ $this->log->add(Log::GENERATION_SUCCESS, $entityName);
+ break;
+ case \Magento\Framework\Code\Generator::GENERATION_ERROR:
+ $this->log->add(Log::GENERATION_ERROR, $entityName);
+ break;
+ case \Magento\Framework\Code\Generator::GENERATION_SKIP:
+ default:
+ //no log
+ break;
+ }
+ }
+ }
+ }
+
+ /**
+ * Compile Code
+ *
+ * @param string $generationDir
+ * @param array $fileExcludePatterns
+ * @param InputInterface $input
+ * @return void
+ * @SuppressWarnings(PHPMD.CyclomaticComplexity)
+ * @SuppressWarnings(PHPMD.NPathComplexity)
+ */
+ private function compileCode($generationDir, $fileExcludePatterns, $input)
+ {
+ $diDir = $input->getOption(self::INPUT_KEY_DI) ? $input->getOption(self::INPUT_KEY_DI) :
+ $this->directoryList->getPath(DirectoryList::DI);
+ $relationsFile = $diDir . '/relations.ser';
+ $pluginDefFile = $diDir . '/plugins.ser';
+ $compilationDirs = [
+ $this->directoryList->getPath(DirectoryList::MODULES),
+ $this->directoryList->getPath(DirectoryList::LIB_INTERNAL) . '/Magento',
+ $this->directoryList->getPath(DirectoryList::SETUP) . '/Magento/Setup/Module',
+ $this->directoryList->getRoot() . '/dev/tools/Magento/Tools',
+ ];
+ $serializer = $input->getOption(self::INPUT_KEY_SERIALIZER) == Igbinary::NAME ? new Igbinary() : new Standard();
+ // 2.1 Code scan
+ $validator = new \Magento\Framework\Code\Validator();
+ $validator->add(new \Magento\Framework\Code\Validator\ConstructorIntegrity());
+ $validator->add(new \Magento\Framework\Code\Validator\ContextAggregation());
+ $classesScanner = new \Magento\Setup\Module\Di\Code\Reader\ClassesScanner();
+ $classesScanner->addExcludePatterns($fileExcludePatterns);
+ $directoryInstancesNamesList = new \Magento\Setup\Module\Di\Code\Reader\Decorator\Directory(
+ $this->log,
+ new \Magento\Framework\Code\Reader\ClassReader(),
+ $classesScanner,
+ $validator,
+ $generationDir
+ );
+ foreach ($compilationDirs as $path) {
+ if (is_readable($path)) {
+ $directoryInstancesNamesList->getList($path);
+ }
+ }
+ $inheritanceScanner = new Scanner\InheritanceInterceptorScanner();
+ $this->entities['interceptors'] = $inheritanceScanner->collectEntities(
+ get_declared_classes(),
+ $this->entities['interceptors']
+ );
+ // 2.1.1 Generation of Proxy and Interceptor Classes
+ foreach (['interceptors', 'di'] as $type) {
+ foreach ($this->entities[$type] as $entityName) {
+ switch ($this->generator->generateClass($entityName)) {
+ case \Magento\Framework\Code\Generator::GENERATION_SUCCESS:
+ $this->log->add(Log::GENERATION_SUCCESS, $entityName);
+ break;
+ case \Magento\Framework\Code\Generator::GENERATION_ERROR:
+ $this->log->add(Log::GENERATION_ERROR, $entityName);
+ break;
+ case \Magento\Framework\Code\Generator::GENERATION_SKIP:
+ default:
+ //no log
+ break;
+ }
+ }
+ }
+ //2.1.2 Compile relations for Proxy/Interceptor classes
+ $directoryInstancesNamesList->getList($generationDir);
+ $relations = $directoryInstancesNamesList->getRelations();
+ // 2.2 Compression
+ if (!file_exists(dirname($relationsFile))) {
+ mkdir(dirname($relationsFile), 0777, true);
+ }
+ $relations = array_filter($relations);
+ file_put_contents($relationsFile, $serializer->serialize($relations));
+ // 3. Plugin Definition Compilation
+ $pluginScanner = new Scanner\CompositeScanner();
+ $pluginScanner->addChild(new Scanner\PluginScanner(), 'di');
+ $pluginDefinitions = [];
+ $pluginList = $pluginScanner->collectEntities($this->files);
+ $pluginDefinitionList = new \Magento\Framework\Interception\Definition\Runtime();
+ foreach ($pluginList as $type => $entityList) {
+ foreach ($entityList as $entity) {
+ $pluginDefinitions[ltrim($entity, '\\')] = $pluginDefinitionList->getMethodList($entity);
+ }
+ }
+ $outputContent = $serializer->serialize($pluginDefinitions);
+ if (!file_exists(dirname($pluginDefFile))) {
+ mkdir(dirname($pluginDefFile), 0777, true);
+ }
+ file_put_contents($pluginDefFile, $outputContent);
+ }
+}
diff --git a/setup/src/Magento/Setup/Console/Command/I18nCollectPhrasesCommand.php b/setup/src/Magento/Setup/Console/Command/I18nCollectPhrasesCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..afb277dab8062d09326f3f6a0f911eb91162a761
--- /dev/null
+++ b/setup/src/Magento/Setup/Console/Command/I18nCollectPhrasesCommand.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Setup\Console\Command;
+
+use Magento\Setup\Module\I18n\ServiceLocator;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * Command for i18n dictionary generation
+ */
+class I18nCollectPhrasesCommand extends Command
+{
+ /**#@+
+ * Keys and shortcuts for input arguments and options
+ */
+ const INPUT_KEY_DIRECTORY = 'directory';
+ const INPUT_KEY_OUTPUT = 'output';
+ const SHORTCUT_KEY_OUTPUT = 'o';
+ const INPUT_KEY_MAGENTO = 'magento';
+ const SHORTCUT_KEY_MAGENTO = 'm';
+ /**#@- */
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('i18n:collect-phrases')
+ ->setDescription('Discovers phrases in the codebase');
+ $this->setDefinition([
+ new InputArgument(self::INPUT_KEY_DIRECTORY, InputArgument::REQUIRED, 'Directory path to parse'),
+ new InputOption(
+ self::INPUT_KEY_OUTPUT,
+ self::SHORTCUT_KEY_OUTPUT,
+ InputOption::VALUE_REQUIRED,
+ 'Path (including filename) to an output file. With no file specified, defaults to stdout.'
+ ),
+ new InputOption(
+ self::INPUT_KEY_MAGENTO,
+ self::SHORTCUT_KEY_MAGENTO,
+ InputOption::VALUE_NONE,
+ 'Use the --magento parameter to specify the directory is the Magento root directory.' .
+ ' Omit the parameter if the directory is not the Magento root directory.'
+ ),
+ ]);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $generator = ServiceLocator::getDictionaryGenerator();
+ $generator->generate(
+ $input->getArgument(self::INPUT_KEY_DIRECTORY),
+ $input->getOption(self::INPUT_KEY_OUTPUT),
+ $input->getOption(self::INPUT_KEY_MAGENTO)
+ );
+ $output->writeln('<info>Dictionary successfully processed.</info>');
+ }
+}
diff --git a/setup/src/Magento/Setup/Console/Command/I18nPackCommand.php b/setup/src/Magento/Setup/Console/Command/I18nPackCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..82ff951a89e0d34ec7317bd854237aaead5b7412
--- /dev/null
+++ b/setup/src/Magento/Setup/Console/Command/I18nPackCommand.php
@@ -0,0 +1,102 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Setup\Console\Command;
+
+use Magento\Setup\Module\I18n\ServiceLocator;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * Command for i18n language packaging
+ */
+class I18nPackCommand extends Command
+{
+ /**#@+
+ * Keys and shortcuts for input arguments and options
+ */
+ const INPUT_KEY_SOURCE = 'source';
+ const INPUT_KEY_PACK = 'pack';
+ const INPUT_KEY_LOCALE = 'locale';
+ const INPUT_KEY_MODE = 'mode';
+ const INPUT_KEY_ALLOW_DUPLICATES = 'allow-duplicates';
+ /**#@-*/
+
+ /**
+ * 'replace' mode value
+ */
+ const MODE_REPLACE = 'replace';
+
+ /**
+ * 'merge' mode value
+ */
+ const MODE_MERGE = 'merge';
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this->setName('i18n:pack')
+ ->setDescription('Saves language package');
+ $this->setDefinition([
+ new InputArgument(
+ self::INPUT_KEY_SOURCE,
+ InputArgument::REQUIRED,
+ 'Path to source dictionary file with translations'
+ ),
+ new InputArgument(
+ self::INPUT_KEY_PACK,
+ InputArgument::REQUIRED,
+ 'Path to language package'
+ ),
+ new InputArgument(
+ self::INPUT_KEY_LOCALE,
+ InputArgument::REQUIRED,
+ 'Target locale for dictionary, for example "de_DE"'
+ ),
+ new InputOption(
+ self::INPUT_KEY_MODE,
+ 'm',
+ InputOption::VALUE_REQUIRED,
+ 'Save mode for dictionary' . PHP_EOL . '- "replace" - replace language pack by new one' . PHP_EOL .
+ '- "merge" - merge language packages, by default "replace"',
+ self::MODE_REPLACE
+ ),
+ new InputOption(
+ self::INPUT_KEY_ALLOW_DUPLICATES,
+ 'd',
+ InputOption::VALUE_NONE,
+ 'Use the --allow-duplicates parameter to allow saving duplicates of translate.' .
+ ' Otherwise omit the parameter.'
+ ),
+ ]);
+ }
+
+ /**
+ * {@inheritdoc}
+ * @throws \InvalidArgumentException
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $generator = ServiceLocator::getPackGenerator();
+ $mode = $input->getOption(self::INPUT_KEY_MODE);
+ if ($mode !== self::MODE_MERGE && $mode !== self::MODE_REPLACE) {
+ throw new \InvalidArgumentException("Possible values for 'mode' option are 'replace' and 'merge'");
+ }
+ $locale = $input->getArgument(self::INPUT_KEY_LOCALE);
+ $generator->generate(
+ $input->getArgument(self::INPUT_KEY_SOURCE),
+ $input->getArgument(self::INPUT_KEY_PACK),
+ $locale,
+ $input->getOption(self::INPUT_KEY_MODE),
+ $input->getOption(self::INPUT_KEY_ALLOW_DUPLICATES)
+ );
+ $output->writeln("<info>Successfully saved $locale language package.</info>");
+ }
+}
diff --git a/setup/src/Magento/Setup/Console/CommandList.php b/setup/src/Magento/Setup/Console/CommandList.php
index a75ed3b3226553a09390a93911b076192422c820..0cb36548c556e62d72ec7bce44d1ecf130ed2a0c 100644
--- a/setup/src/Magento/Setup/Console/CommandList.php
+++ b/setup/src/Magento/Setup/Console/CommandList.php
@@ -43,6 +43,11 @@ class CommandList
'Magento\Setup\Console\Command\DbDataUpgradeCommand',
'Magento\Setup\Console\Command\DbSchemaUpgradeCommand',
'Magento\Setup\Console\Command\DbStatusCommand',
+ 'Magento\Setup\Console\Command\DeployStaticContentCommand',
+ 'Magento\Setup\Console\Command\DiCompileCommand',
+ 'Magento\Setup\Console\Command\DiCompileMultiTenantCommand',
+ 'Magento\Setup\Console\Command\I18nCollectPhrasesCommand',
+ 'Magento\Setup\Console\Command\I18nPackCommand',
'Magento\Setup\Console\Command\InfoCurrencyListCommand',
'Magento\Setup\Console\Command\InfoLanguageListCommand',
'Magento\Setup\Console\Command\InfoTimezoneListCommand',
diff --git a/setup/src/Magento/Setup/Controller/Environment.php b/setup/src/Magento/Setup/Controller/Environment.php
index 066c58d914c86617da39fb79d720f74fb5902835..3d323043d0ca0e34a2a45337bd1d7242fafcf49e 100644
--- a/setup/src/Magento/Setup/Controller/Environment.php
+++ b/setup/src/Magento/Setup/Controller/Environment.php
@@ -88,23 +88,28 @@ class Environment extends AbstractActionController
}
/**
- * Checks if PHP version >= 5.6.0 and always_populate_raw_post_data is set
+ * Checks PHP settings
*
* @return JsonModel
*/
- public function phpRawpostAction()
+ public function phpSettingsAction()
{
- $iniSetting = ini_get('always_populate_raw_post_data');
$responseType = ResponseTypeInterface::RESPONSE_TYPE_SUCCESS;
- if (version_compare(PHP_VERSION, '5.6.0') >= 0 && (int)$iniSetting > -1) {
- $responseType = ResponseTypeInterface::RESPONSE_TYPE_ERROR;
+
+ $settings = array_merge(
+ $this->checkRawPost(),
+ $this->checkXDebugNestedLevel()
+ );
+
+ foreach ($settings as $setting) {
+ if ($setting['error']) {
+ $responseType = ResponseTypeInterface::RESPONSE_TYPE_ERROR;
+ }
}
+
$data = [
'responseType' => $responseType,
- 'data' => [
- 'version' => PHP_VERSION,
- 'ini' => $iniSetting
- ]
+ 'data' => $settings
];
return new JsonModel($data);
@@ -170,4 +175,74 @@ class Environment extends AbstractActionController
return new JsonModel($data);
}
+
+ /**
+ * Checks if PHP version >= 5.6.0 and always_populate_raw_post_data is set
+ *
+ * @return array
+ */
+ private function checkRawPost()
+ {
+ $data = [];
+ $error = false;
+ $iniSetting = ini_get('always_populate_raw_post_data');
+
+ if (version_compare(PHP_VERSION, '5.6.0') >= 0 && (int)$iniSetting > -1) {
+ $error = true;
+ }
+
+ $message = sprintf(
+ 'Your PHP Version is %s, but always_populate_raw_post_data = %d.
+ $HTTP_RAW_POST_DATA is deprecated from PHP 5.6 onwards and will stop the installer from running.
+ Please open your php.ini file and set always_populate_raw_post_data to -1.
+ If you need more help please call your hosting provider.
+ ',
+ PHP_VERSION,
+ ini_get('always_populate_raw_post_data')
+ );
+
+ $data['rawpost'] = [
+ 'message' => $message,
+ 'helpUrl' => 'http://php.net/manual/en/ini.core.php#ini.always-populate-settings-data',
+ 'error' => $error
+ ];
+
+ return $data;
+ }
+
+ /**
+ * Checks if xdebug.max_nesting_level is set 200 or more
+ * @return array
+ */
+ private function checkXDebugNestedLevel()
+ {
+ $data = [];
+ $error = false;
+
+ $currentExtensions = $this->phpInformation->getCurrent();
+ if (in_array('xdebug', $currentExtensions)) {
+
+ $currentXDebugNestingLevel = intval(ini_get('xdebug.max_nesting_level'));
+ $minimumRequiredXDebugNestedLevel = $this->phpInformation->getRequiredMinimumXDebugNestedLevel();
+
+ if ($minimumRequiredXDebugNestedLevel > $currentXDebugNestingLevel) {
+ $error = true;
+ }
+
+ $message = sprintf(
+ 'Your current setting of xdebug.max_nesting_level=%d.
+ Magento 2 requires it to be set to %d or more.
+ Edit your config, restart web server, and try again.',
+ $currentXDebugNestingLevel,
+ $minimumRequiredXDebugNestedLevel
+ );
+
+ $data['xdebug_max_nesting_level'] = [
+ 'message' => $message,
+ 'error' => $error
+ ];
+ }
+
+ return $data;
+ }
}
diff --git a/dev/tools/Magento/Tools/View/Deployer.php b/setup/src/Magento/Setup/Model/Deployer.php
similarity index 83%
rename from dev/tools/Magento/Tools/View/Deployer.php
rename to setup/src/Magento/Setup/Model/Deployer.php
index 1549724017780a260891f4f386faf09962180a5d..96883fa8c0ee65bc5baf8703153b3073aebcf128 100644
--- a/dev/tools/Magento/Tools/View/Deployer.php
+++ b/setup/src/Magento/Setup/Model/Deployer.php
@@ -4,7 +4,7 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\View;
+namespace Magento\Setup\Model;
use Magento\Framework\App\ObjectManagerFactory;
use Magento\Framework\App\View\Deployment\Version;
@@ -12,6 +12,7 @@ use Magento\Framework\App\View\Asset\Publisher;
use Magento\Framework\App\Utility\Files;
use Magento\Framework\ObjectManagerInterface;
use Magento\Framework\Translate\Js\Config as JsTranslationConfig;
+use Symfony\Component\Console\Output\OutputInterface;
/**
* A service for deploying Magento static view files for production mode
@@ -26,8 +27,8 @@ class Deployer
/** @var ObjectManagerFactory */
private $omFactory;
- /** @var Deployer\Log */
- private $logger;
+ /** @var OutputInterface */
+ private $output;
/** @var Version\StorageInterface */
private $versionStorage;
@@ -71,7 +72,7 @@ class Deployer
/**
* @param Files $filesUtil
- * @param Deployer\Log $logger
+ * @param OutputInterface $output
* @param Version\StorageInterface $versionStorage
* @param \Magento\Framework\Stdlib\DateTime $dateTime
* @param \Magento\Framework\View\Asset\MinifyService $minifyService
@@ -80,7 +81,7 @@ class Deployer
*/
public function __construct(
Files $filesUtil,
- Deployer\Log $logger,
+ OutputInterface $output,
Version\StorageInterface $versionStorage,
\Magento\Framework\Stdlib\DateTime $dateTime,
\Magento\Framework\View\Asset\MinifyService $minifyService,
@@ -88,7 +89,7 @@ class Deployer
$isDryRun = false
) {
$this->filesUtil = $filesUtil;
- $this->logger = $logger;
+ $this->output = $output;
$this->versionStorage = $versionStorage;
$this->dateTime = $dateTime;
$this->isDryRun = $isDryRun;
@@ -103,15 +104,16 @@ class Deployer
* @param array $locales
* @return void
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
+ * @SuppressWarnings(PHPMD.NPathComplexity)
*/
public function deploy(ObjectManagerFactory $omFactory, array $locales)
{
$this->omFactory = $omFactory;
if ($this->isDryRun) {
- $this->logger->logMessage('Dry run. Nothing will be recorded to the target directory.');
+ $this->output->writeln('Dry run. Nothing will be recorded to the target directory.');
}
$langList = implode(', ', $locales);
- $this->logger->logMessage("Requested languages: {$langList}");
+ $this->output->writeln("Requested languages: {$langList}");
$libFiles = $this->filesUtil->getStaticLibraryFiles();
list($areas, $appFiles) = $this->collectAppFiles($locales);
foreach ($areas as $area => $themes) {
@@ -119,7 +121,7 @@ class Deployer
foreach ($locales as $locale) {
$this->emulateApplicationLocale($locale, $area);
foreach ($themes as $themePath) {
- $this->logger->logMessage("=== {$area} -> {$themePath} -> {$locale} ===");
+ $this->output->writeln("=== {$area} -> {$themePath} -> {$locale} ===");
$this->count = 0;
$this->errorCount = 0;
foreach ($appFiles as $info) {
@@ -139,20 +141,24 @@ class Deployer
);
}
$this->bundleManager->flush();
- $this->logger->logMessage("\nSuccessful: {$this->count} files; errors: {$this->errorCount}\n---\n");
+ $this->output->writeln("\nSuccessful: {$this->count} files; errors: {$this->errorCount}\n---\n");
}
}
}
- $this->logger->logMessage("=== Minify templates ===");
+ $this->output->writeln("=== Minify templates ===");
$this->count = 0;
foreach ($this->filesUtil->getPhtmlFiles(false, false) as $template) {
$this->htmlMinifier->minify($template);
- $this->logger->logDebug($template . " minified\n", '.');
+ if ($this->output->isVerbose()) {
+ $this->output->writeln($template . " minified\n");
+ } else {
+ $this->output->write('.');
+ }
$this->count++;
}
- $this->logger->logMessage("\nSuccessful: {$this->count} files modified\n---\n");
+ $this->output->writeln("\nSuccessful: {$this->count} files modified\n---\n");
$version = (new \DateTime())->getTimestamp();
- $this->logger->logMessage("New version of deployed files: {$version}");
+ $this->output->writeln("New version of deployed files: {$version}");
if (!$this->isDryRun) {
$this->versionStorage->save($version);
}
@@ -185,7 +191,7 @@ class Deployer
}
if (!empty($locales)) {
$langList = implode(', ', $locales);
- $this->logger->logMessage(
+ $this->output->writeln(
"WARNING: there were files for the following languages detected in the file system: {$langList}."
. ' These languages were not requested, so the files will not be populated.'
);
@@ -243,6 +249,7 @@ class Deployer
* @param string $locale
* @param string $module
* @return void
+ * @SuppressWarnings(PHPMD.NPathComplexity)
*/
private function deployFile($filePath, $area, $themePath, $locale, $module)
{
@@ -254,14 +261,20 @@ class Deployer
if ($module) {
$logMessage .= ", module '$module'";
}
- $this->logger->logDebug($logMessage);
+
+ $this->verboseLog($logMessage);
+
try {
$asset = $this->assetRepo->createAsset(
$requestedPath,
['area' => $area, 'theme' => $themePath, 'locale' => $locale, 'module' => $module]
);
$asset = $this->minifyService->getAssets([$asset], true)[0];
- $this->logger->logDebug("\tDeploying the file to '{$asset->getPath()}'", '.');
+ if ($this->output->isVerbose()) {
+ $this->output->writeln("\tDeploying the file to '{$asset->getPath()}'");
+ } else {
+ $this->output->write('.');
+ }
if ($this->isDryRun) {
$asset->getContent();
} else {
@@ -271,19 +284,32 @@ class Deployer
$this->count++;
} catch (\Magento\Framework\View\Asset\File\NotFoundException $e) {
// File was not found by Fallback (possibly because it's wrong context for it) - there is nothing to publish
- $this->logger->logDebug(
+ $this->verboseLog(
"\tNotice: Could not find file '$filePath'. This file may not be relevant for the theme or area."
);
} catch (\Less_Exception_Compiler $e) {
- $this->logger->logDebug(
+ $this->verboseLog(
"\tNotice: Could not parse LESS file '$filePath'. "
. "This may indicate that the file is incomplete, but this is acceptable. "
. "The file '$filePath' will be combined with another LESS file."
);
} catch (\Exception $e) {
- $this->logger->logError($e->getMessage() . " ($logMessage)");
- $this->logger->logDebug((string)$e);
+ $this->output->writeln($e->getMessage() . " ($logMessage)");
+ $this->verboseLog((string)$e);
$this->errorCount++;
}
}
+
+ /**
+ * Verbose log
+ *
+ * @param string $message
+ * @return void
+ */
+ private function verboseLog($message)
+ {
+ if ($this->output->isVerbose()) {
+ $this->output->writeln($message);
+ }
+ }
}
diff --git a/setup/src/Magento/Setup/Model/ObjectManagerProvider.php b/setup/src/Magento/Setup/Model/ObjectManagerProvider.php
index d887f0031fe67df47e8e9208a838c1ba5f8ee940..2c54f37be72ffbe69c40cc8af986abb270c5c274 100644
--- a/setup/src/Magento/Setup/Model/ObjectManagerProvider.php
+++ b/setup/src/Magento/Setup/Model/ObjectManagerProvider.php
@@ -70,4 +70,18 @@ class ObjectManagerProvider
{
$this->objectManager = null;
}
+
+ /**
+ * Returns ObjectManagerFactory
+ *
+ * @param array $initParams
+ * @return \Magento\Framework\App\ObjectManagerFactory
+ */
+ public function getObjectManagerFactory($initParams = [])
+ {
+ return Bootstrap::createObjectManagerFactory(
+ BP,
+ $initParams
+ );
+ }
}
diff --git a/setup/src/Magento/Setup/Model/PhpInformation.php b/setup/src/Magento/Setup/Model/PhpInformation.php
index fcb89e65f60a15141168f36ee3a4ad0c39f43b17..f6786c8b2b525bb7feae54db994f633a18259141 100644
--- a/setup/src/Magento/Setup/Model/PhpInformation.php
+++ b/setup/src/Magento/Setup/Model/PhpInformation.php
@@ -11,6 +11,12 @@ use Magento\Framework\Filesystem;
class PhpInformation
{
+
+ /**
+ * Allowed XDebug nested level
+ */
+ const XDEBUG_NESTED_LEVEL = 200;
+
/**
* List of required extensions
*
@@ -59,6 +65,15 @@ class PhpInformation
}
}
+ /**
+ * Returns minimum required XDebug nested level
+ * @return int
+ */
+ public function getRequiredMinimumXDebugNestedLevel()
+ {
+ return self::XDEBUG_NESTED_LEVEL;
+ }
+
/**
* Retrieve list of required extensions
*
diff --git a/dev/tools/Magento/Tools/Di/App/Task/Manager.php b/setup/src/Magento/Setup/Module/Di/App/Task/Manager.php
similarity index 96%
rename from dev/tools/Magento/Tools/Di/App/Task/Manager.php
rename to setup/src/Magento/Setup/Module/Di/App/Task/Manager.php
index c9c0d0d048b7ebc336065fdfc78275fd212b99f7..7e4171c0873d2bef4bbd23ad558980c051e55622 100644
--- a/dev/tools/Magento/Tools/Di/App/Task/Manager.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Manager.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\App\Task;
+namespace Magento\Setup\Module\Di\App\Task;
class Manager
{
diff --git a/dev/tools/Magento/Tools/Di/App/Task/Operation/ApplicationCodeGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
similarity index 83%
rename from dev/tools/Magento/Tools/Di/App/Task/Operation/ApplicationCodeGenerator.php
rename to setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
index 21b24e52c91a028629b5e2973b642836e9469e13..1228703ab08fd6e99af5e1c5e18715a4d3783e91 100644
--- a/dev/tools/Magento/Tools/Di/App/Task/Operation/ApplicationCodeGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
@@ -3,10 +3,10 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\App\Task\Operation;
+namespace Magento\Setup\Module\Di\App\Task\Operation;
-use Magento\Tools\Di\App\Task\OperationInterface;
-use Magento\Tools\Di\Code\Reader\ClassesScanner;
+use Magento\Setup\Module\Di\App\Task\OperationInterface;
+use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
class ApplicationCodeGenerator implements OperationInterface
{
diff --git a/dev/tools/Magento/Tools/Di/App/Task/Operation/Area.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Area.php
similarity index 79%
rename from dev/tools/Magento/Tools/Di/App/Task/Operation/Area.php
rename to setup/src/Magento/Setup/Module/Di/App/Task/Operation/Area.php
index c9a8089251b42be57f6003f8ea802ee4362612cb..f129e56dc8d8c67afa7d971393fb60d987585df5 100644
--- a/dev/tools/Magento/Tools/Di/App/Task/Operation/Area.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Area.php
@@ -3,12 +3,12 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\App\Task\Operation;
+namespace Magento\Setup\Module\Di\App\Task\Operation;
-use Magento\Tools\Di\App\Task\OperationInterface;
+use Magento\Setup\Module\Di\App\Task\OperationInterface;
use Magento\Framework\App;
-use Magento\Tools\Di\Compiler\Config;
-use Magento\Tools\Di\Definition\Collection as DefinitionsCollection;
+use Magento\Setup\Module\Di\Compiler\Config;
+use Magento\Setup\Module\Di\Definition\Collection as DefinitionsCollection;
class Area implements OperationInterface
{
@@ -18,7 +18,7 @@ class Area implements OperationInterface
private $areaList;
/**
- * @var \Magento\Tools\Di\Code\Reader\Decorator\Area
+ * @var \Magento\Setup\Module\Di\Code\Reader\Decorator\Area
*/
private $areaInstancesNamesList;
@@ -38,21 +38,21 @@ class Area implements OperationInterface
private $data = [];
/**
- * @var \Magento\Tools\Di\Compiler\Config\ModificationChain
+ * @var \Magento\Setup\Module\Di\Compiler\Config\ModificationChain
*/
private $modificationChain;
/**
* @param App\AreaList $areaList
- * @param \Magento\Tools\Di\Code\Reader\Decorator\Area $areaInstancesNamesList
+ * @param \Magento\Setup\Module\Di\Code\Reader\Decorator\Area $areaInstancesNamesList
* @param Config\Reader $configReader
* @param Config\WriterInterface $configWriter
- * @param \Magento\Tools\Di\Compiler\Config\ModificationChain $modificationChain
+ * @param \Magento\Setup\Module\Di\Compiler\Config\ModificationChain $modificationChain
* @param array $data
*/
public function __construct(
App\AreaList $areaList,
- \Magento\Tools\Di\Code\Reader\Decorator\Area $areaInstancesNamesList,
+ \Magento\Setup\Module\Di\Code\Reader\Decorator\Area $areaInstancesNamesList,
Config\Reader $configReader,
Config\WriterInterface $configWriter,
Config\ModificationChain $modificationChain,
diff --git a/dev/tools/Magento/Tools/Di/App/Task/Operation/Interception.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
similarity index 86%
rename from dev/tools/Magento/Tools/Di/App/Task/Operation/Interception.php
rename to setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
index f6cf82e11a1a09f2b31e82e42a6014b058d0bc88..6d5d9ae3502a806f22bb4c58e04ed2105b2755aa 100644
--- a/dev/tools/Magento/Tools/Di/App/Task/Operation/Interception.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
@@ -3,14 +3,14 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\App\Task\Operation;
+namespace Magento\Setup\Module\Di\App\Task\Operation;
-use Magento\Tools\Di\App\Task\OperationInterface;
-use Magento\Tools\Di\Code\Generator\InterceptionConfigurationBuilder;
+use Magento\Setup\Module\Di\App\Task\OperationInterface;
+use Magento\Setup\Module\Di\Code\Generator\InterceptionConfigurationBuilder;
use Magento\Framework\Interception\Code\Generator\Interceptor;
use Magento\Framework\App;
-use Magento\Tools\Di\Code\GeneratorFactory;
-use Magento\Tools\Di\Code\Reader\ClassesScanner;
+use Magento\Setup\Module\Di\Code\GeneratorFactory;
+use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
class Interception implements OperationInterface
{
@@ -87,7 +87,7 @@ class Interception implements OperationInterface
[
'ioObject' => $generatorIo,
'generatedEntities' => [
- Interceptor::ENTITY_TYPE => 'Magento\Tools\Di\Code\Generator\Interceptor',
+ Interceptor::ENTITY_TYPE => 'Magento\Setup\Module\Di\Code\Generator\Interceptor',
]
]
);
diff --git a/dev/tools/Magento/Tools/Di/App/Task/Operation/InterceptionCache.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/InterceptionCache.php
similarity index 76%
rename from dev/tools/Magento/Tools/Di/App/Task/Operation/InterceptionCache.php
rename to setup/src/Magento/Setup/Module/Di/App/Task/Operation/InterceptionCache.php
index 31180fc27d701d9ca0730943c414fc09878e1dbc..b37f329ebfc78a57a6ce41b0e63358a7b04c411d 100644
--- a/dev/tools/Magento/Tools/Di/App/Task/Operation/InterceptionCache.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/InterceptionCache.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\App\Task\Operation;
+namespace Magento\Setup\Module\Di\App\Task\Operation;
-use Magento\Tools\Di\App\Task\OperationInterface;
+use Magento\Setup\Module\Di\App\Task\OperationInterface;
class InterceptionCache implements OperationInterface
{
@@ -20,18 +20,18 @@ class InterceptionCache implements OperationInterface
private $configInterface;
/**
- * @var \Magento\Tools\Di\Code\Reader\Decorator\Interceptions
+ * @var \Magento\Setup\Module\Di\Code\Reader\Decorator\Interceptions
*/
private $interceptionsInstancesNamesList;
/**
* @param \Magento\Framework\Interception\Config\Config $configInterface
- * @param \Magento\Tools\Di\Code\Reader\Decorator\Interceptions $interceptionsInstancesNamesList
+ * @param \Magento\Setup\Module\Di\Code\Reader\Decorator\Interceptions $interceptionsInstancesNamesList
* @param array $data
*/
public function __construct(
\Magento\Framework\Interception\Config\Config $configInterface,
- \Magento\Tools\Di\Code\Reader\Decorator\Interceptions $interceptionsInstancesNamesList,
+ \Magento\Setup\Module\Di\Code\Reader\Decorator\Interceptions $interceptionsInstancesNamesList,
array $data = []
) {
$this->configInterface = $configInterface;
diff --git a/dev/tools/Magento/Tools/Di/App/Task/Operation/RepositoryGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
similarity index 89%
rename from dev/tools/Magento/Tools/Di/App/Task/Operation/RepositoryGenerator.php
rename to setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
index 20d25b65dfad84be98b36c6bcd245230b0eb4613..41e9e80e5fe4e04628af960d4bf2b25f1eb89936 100644
--- a/dev/tools/Magento/Tools/Di/App/Task/Operation/RepositoryGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
@@ -4,11 +4,11 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\App\Task\Operation;
+namespace Magento\Setup\Module\Di\App\Task\Operation;
-use Magento\Tools\Di\App\Task\OperationInterface;
-use Magento\Tools\Di\Code\Scanner;
-use Magento\Tools\Di\Code\Reader\ClassesScanner;
+use Magento\Setup\Module\Di\App\Task\OperationInterface;
+use Magento\Setup\Module\Di\Code\Scanner;
+use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
class RepositoryGenerator implements OperationInterface
{
@@ -63,9 +63,8 @@ class RepositoryGenerator implements OperationInterface
}
$this->classesScanner->getList($this->data['path']);
-
- $files = $this->directoryScanner->scan($this->data['path'], $this->data['filePatterns']);
$this->repositoryScanner->setUseAutoload(false);
+ $files = $this->directoryScanner->scan($this->data['path'], $this->data['filePatterns']);
$repositories = $this->repositoryScanner->collectEntities($files['di']);
foreach ($repositories as $entityName) {
class_exists($entityName);
diff --git a/dev/tools/Magento/Tools/Di/App/Task/OperationException.php b/setup/src/Magento/Setup/Module/Di/App/Task/OperationException.php
similarity index 84%
rename from dev/tools/Magento/Tools/Di/App/Task/OperationException.php
rename to setup/src/Magento/Setup/Module/Di/App/Task/OperationException.php
index 5896bf352ee702a5fe75900d65b46806866e7a79..1d36fd456cb8d37869bfa830f47c7004c0034611 100644
--- a/dev/tools/Magento/Tools/Di/App/Task/OperationException.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/OperationException.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\App\Task;
+namespace Magento\Setup\Module\Di\App\Task;
class OperationException extends \Exception
{
diff --git a/dev/tools/Magento/Tools/Di/App/Task/OperationFactory.php b/setup/src/Magento/Setup/Module/Di/App/Task/OperationFactory.php
similarity index 65%
rename from dev/tools/Magento/Tools/Di/App/Task/OperationFactory.php
rename to setup/src/Magento/Setup/Module/Di/App/Task/OperationFactory.php
index 94fc7702689755f8e9d7477df0cf72eba40739e3..a2505bad47a0ed289a2040e1a11ec9f401319d4b 100644
--- a/dev/tools/Magento/Tools/Di/App/Task/OperationFactory.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/OperationFactory.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\App\Task;
+namespace Magento\Setup\Module\Di\App\Task;
class OperationFactory
{
@@ -43,19 +43,19 @@ class OperationFactory
* @var array
*/
private $operationsDefinitions = [
- self::AREA_CONFIG_GENERATOR => 'Magento\Tools\Di\App\Task\Operation\Area',
- self::APPLICATION_CODE_GENERATOR => 'Magento\Tools\Di\App\Task\Operation\ApplicationCodeGenerator',
- self::INTERCEPTION => 'Magento\Tools\Di\App\Task\Operation\Interception',
- self::INTERCEPTION_CACHE => 'Magento\Tools\Di\App\Task\Operation\InterceptionCache',
- self::REPOSITORY_GENERATOR => 'Magento\Tools\Di\App\Task\Operation\RepositoryGenerator'
+ self::AREA_CONFIG_GENERATOR => 'Magento\Setup\Module\Di\App\Task\Operation\Area',
+ self::APPLICATION_CODE_GENERATOR => 'Magento\Setup\Module\Di\App\Task\Operation\ApplicationCodeGenerator',
+ self::INTERCEPTION => 'Magento\Setup\Module\Di\App\Task\Operation\Interception',
+ self::INTERCEPTION_CACHE => 'Magento\Setup\Module\Di\App\Task\Operation\InterceptionCache',
+ self::REPOSITORY_GENERATOR => 'Magento\Setup\Module\Di\App\Task\Operation\RepositoryGenerator'
];
/**
- * @param \Magento\Framework\ObjectManagerInterface $objectManager
+ * @param \Magento\Setup\Model\ObjectManagerProvider $objectManagerProvider
*/
- public function __construct(\Magento\Framework\ObjectManagerInterface $objectManager)
+ public function __construct(\Magento\Setup\Model\ObjectManagerProvider $objectManagerProvider)
{
- $this->objectManager = $objectManager;
+ $this->objectManager = $objectManagerProvider->get();
}
/**
diff --git a/dev/tools/Magento/Tools/Di/App/Task/OperationInterface.php b/setup/src/Magento/Setup/Module/Di/App/Task/OperationInterface.php
similarity index 84%
rename from dev/tools/Magento/Tools/Di/App/Task/OperationInterface.php
rename to setup/src/Magento/Setup/Module/Di/App/Task/OperationInterface.php
index c81638f52c372579eabc43f1d74c03eb364793b1..0ce7cd3344c4684d5455a0c2044c8f254468862e 100644
--- a/dev/tools/Magento/Tools/Di/App/Task/OperationInterface.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/OperationInterface.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\App\Task;
+namespace Magento\Setup\Module\Di\App\Task;
interface OperationInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Code/Generator.php b/setup/src/Magento/Setup/Module/Di/Code/Generator.php
similarity index 96%
rename from dev/tools/Magento/Tools/Di/Code/Generator.php
rename to setup/src/Magento/Setup/Module/Di/Code/Generator.php
index a33d2f74dc024dd0df2fc55f095eb844dcadec58..75954e180b1d2c5c8d1b6e5e563b4fdfa5551da3 100644
--- a/dev/tools/Magento/Tools/Di/Code/Generator.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Generator.php
@@ -5,7 +5,7 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code;
+namespace Magento\Setup\Module\Di\Code;
use Magento\Framework\Code\Generator as FrameworkGenerator;
use Magento\Framework\Code\Generator\DefinedClasses;
@@ -13,7 +13,7 @@ use Magento\Framework\ObjectManagerInterface;
/**
* Class Generator
- * @package Magento\Tools\Di\Code
+ * @package Magento\Setup\Module\Di\Code
*/
class Generator extends FrameworkGenerator
{
diff --git a/dev/tools/Magento/Tools/Di/Code/Generator/InterceptionConfigurationBuilder.php b/setup/src/Magento/Setup/Module/Di/Code/Generator/InterceptionConfigurationBuilder.php
similarity index 98%
rename from dev/tools/Magento/Tools/Di/Code/Generator/InterceptionConfigurationBuilder.php
rename to setup/src/Magento/Setup/Module/Di/Code/Generator/InterceptionConfigurationBuilder.php
index b3ecacc8264fc4d0e689161689fd567a9f24a5c9..5935e77fa8e7109d1265e5f76335fe35394f1953 100644
--- a/dev/tools/Magento/Tools/Di/Code/Generator/InterceptionConfigurationBuilder.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Generator/InterceptionConfigurationBuilder.php
@@ -5,13 +5,13 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Generator;
+namespace Magento\Setup\Module\Di\Code\Generator;
use Magento\Framework\App\Area;
use Magento\Framework\App\Cache\Manager;
use Magento\Framework\App\Interception\Cache\CompiledConfig;
use Magento\Framework\Interception\Config\Config as InterceptionConfig;
-use Magento\Tools\Di\Code\Reader\Type;
+use Magento\Setup\Module\Di\Code\Reader\Type;
class InterceptionConfigurationBuilder
{
diff --git a/dev/tools/Magento/Tools/Di/Code/Generator/Interceptor.php b/setup/src/Magento/Setup/Module/Di/Code/Generator/Interceptor.php
similarity index 94%
rename from dev/tools/Magento/Tools/Di/Code/Generator/Interceptor.php
rename to setup/src/Magento/Setup/Module/Di/Code/Generator/Interceptor.php
index 2a87b3a0b8dc8b570362029e87edc33fd92e4207..d02068614b28feef0e506a4c5ca430c54bb2ad2f 100644
--- a/dev/tools/Magento/Tools/Di/Code/Generator/Interceptor.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Generator/Interceptor.php
@@ -5,7 +5,7 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Generator;
+namespace Magento\Setup\Module\Di\Code\Generator;
use Magento\Framework\Interception\Code\Generator\Interceptor as FrameworkInterceptor;
diff --git a/dev/tools/Magento/Tools/Di/Code/Generator/PluginList.php b/setup/src/Magento/Setup/Module/Di/Code/Generator/PluginList.php
similarity index 96%
rename from dev/tools/Magento/Tools/Di/Code/Generator/PluginList.php
rename to setup/src/Magento/Setup/Module/Di/Code/Generator/PluginList.php
index d59f9525b1340f04c5a815fbeddc392900faf765..ab48bcc0d795ce69ca7fb079c07d3d2e1c7ee056 100644
--- a/dev/tools/Magento/Tools/Di/Code/Generator/PluginList.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Generator/PluginList.php
@@ -5,7 +5,7 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Generator;
+namespace Magento\Setup\Module\Di\Code\Generator;
use Magento\Framework\Interception;
diff --git a/dev/tools/Magento/Tools/Di/Code/GeneratorFactory.php b/setup/src/Magento/Setup/Module/Di/Code/GeneratorFactory.php
similarity index 81%
rename from dev/tools/Magento/Tools/Di/Code/GeneratorFactory.php
rename to setup/src/Magento/Setup/Module/Di/Code/GeneratorFactory.php
index b3e8135210754ce3887440887207853f7c4200c2..bbc7a9763a5d1723fa5900bb69b75623bddb5e90 100644
--- a/dev/tools/Magento/Tools/Di/Code/GeneratorFactory.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/GeneratorFactory.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code;
+namespace Magento\Setup\Module\Di\Code;
use Magento\Framework\ObjectManagerInterface;
@@ -30,6 +30,6 @@ class GeneratorFactory
*/
public function create($arguments = [])
{
- return $this->objectManager->create('Magento\Tools\Di\Code\Generator', $arguments);
+ return $this->objectManager->create('Magento\Setup\Module\Di\Code\Generator', $arguments);
}
}
diff --git a/dev/tools/Magento/Tools/Di/Code/Reader/ClassReaderDecorator.php b/setup/src/Magento/Setup/Module/Di/Code/Reader/ClassReaderDecorator.php
similarity index 93%
rename from dev/tools/Magento/Tools/Di/Code/Reader/ClassReaderDecorator.php
rename to setup/src/Magento/Setup/Module/Di/Code/Reader/ClassReaderDecorator.php
index 00aeb167ffed2262598b7384df7f79e853573520..bc38862c555c2b92a267335db4b4e272df794849 100644
--- a/dev/tools/Magento/Tools/Di/Code/Reader/ClassReaderDecorator.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Reader/ClassReaderDecorator.php
@@ -4,9 +4,9 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Reader;
+namespace Magento\Setup\Module\Di\Code\Reader;
-use Magento\Tools\Di\Compiler\ConstructorArgument;
+use Magento\Setup\Module\Di\Compiler\ConstructorArgument;
class ClassReaderDecorator implements \Magento\Framework\Code\Reader\ClassReaderInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Code/Reader/ClassesScanner.php b/setup/src/Magento/Setup/Module/Di/Code/Reader/ClassesScanner.php
similarity index 96%
rename from dev/tools/Magento/Tools/Di/Code/Reader/ClassesScanner.php
rename to setup/src/Magento/Setup/Module/Di/Code/Reader/ClassesScanner.php
index 5b0204813ccb1b6c6a94922ea50bbe9b3be59448..8e52fc761c4d2ce3fa21ea902bf2cd396298ab5b 100644
--- a/dev/tools/Magento/Tools/Di/Code/Reader/ClassesScanner.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Reader/ClassesScanner.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Reader;
+namespace Magento\Setup\Module\Di\Code\Reader;
use Magento\Framework\Exception\FileSystemException;
use Zend\Code\Scanner\FileScanner;
@@ -45,9 +45,8 @@ class ClassesScanner implements ClassesScannerInterface
{
$realPath = realpath($path);
if (!(bool)$realPath) {
- throw new FileSystemException(new \Magento\Framework\Phrase('Invalid path: %1', $path));
+ throw new FileSystemException(new \Magento\Framework\Phrase('Invalid path: %1', [$path]));
}
-
$recursiveIterator = new \RecursiveIteratorIterator(
new \RecursiveDirectoryIterator($realPath, \FilesystemIterator::FOLLOW_SYMLINKS),
\RecursiveIteratorIterator::SELF_FIRST
diff --git a/dev/tools/Magento/Tools/Di/Code/Reader/ClassesScannerInterface.php b/setup/src/Magento/Setup/Module/Di/Code/Reader/ClassesScannerInterface.php
similarity index 79%
rename from dev/tools/Magento/Tools/Di/Code/Reader/ClassesScannerInterface.php
rename to setup/src/Magento/Setup/Module/Di/Code/Reader/ClassesScannerInterface.php
index 0812ceaf2a4beba1fcfb9d3a3d6cf7025ad18c23..8ed036a38d561b6aafdd84da88a512b6d7f6a526 100644
--- a/dev/tools/Magento/Tools/Di/Code/Reader/ClassesScannerInterface.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Reader/ClassesScannerInterface.php
@@ -3,12 +3,12 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Reader;
+namespace Magento\Setup\Module\Di\Code\Reader;
/**
* Interface ClassesScannerInterface
*
- * @package Magento\Tools\Di\Code\Reader
+ * @package Magento\Setup\Module\Di\Code\Reader
*/
interface ClassesScannerInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Code/Reader/Decorator/Area.php b/setup/src/Magento/Setup/Module/Di/Code/Reader/Decorator/Area.php
similarity index 78%
rename from dev/tools/Magento/Tools/Di/Code/Reader/Decorator/Area.php
rename to setup/src/Magento/Setup/Module/Di/Code/Reader/Decorator/Area.php
index 5830fc4e79ba8e318f9ccb6c94b6c61279ce9e81..13755f5776b5ca15cdb9c21249bd93d90c0e5605 100644
--- a/dev/tools/Magento/Tools/Di/Code/Reader/Decorator/Area.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Reader/Decorator/Area.php
@@ -3,18 +3,18 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Reader\Decorator;
+namespace Magento\Setup\Module\Di\Code\Reader\Decorator;
-use Magento\Tools\Di\Code\Reader\ClassesScanner;
-use Magento\Tools\Di\Code\Reader\ClassReaderDecorator;
+use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
+use Magento\Setup\Module\Di\Code\Reader\ClassReaderDecorator;
use Magento\Framework\Exception\FileSystemException;
/**
* Class Area
*
- * @package Magento\Tools\Di\Code\Reader\Decorator
+ * @package Magento\Setup\Module\Di\Code\Reader\Decorator
*/
-class Area implements \Magento\Tools\Di\Code\Reader\ClassesScannerInterface
+class Area implements \Magento\Setup\Module\Di\Code\Reader\ClassesScannerInterface
{
/**
* @var ClassReaderDecorator
diff --git a/dev/tools/Magento/Tools/Di/Code/Reader/Decorator/Directory.php b/setup/src/Magento/Setup/Module/Di/Code/Reader/Decorator/Directory.php
similarity index 79%
rename from dev/tools/Magento/Tools/Di/Code/Reader/Decorator/Directory.php
rename to setup/src/Magento/Setup/Module/Di/Code/Reader/Decorator/Directory.php
index 430ec71706199009fcbba18fad6f03acbd1c805e..89a50609589f42c279edb26fc0e4ceb0444e6f29 100644
--- a/dev/tools/Magento/Tools/Di/Code/Reader/Decorator/Directory.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Reader/Decorator/Directory.php
@@ -3,16 +3,16 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Reader\Decorator;
+namespace Magento\Setup\Module\Di\Code\Reader\Decorator;
-use Magento\Tools\Di\Compiler\Log\Log;
+use Magento\Setup\Module\Di\Compiler\Log\Log;
/**
* Class Directory
*
- * @package Magento\Tools\Di\Code\Reader\Decorator
+ * @package Magento\Setup\Module\Di\Code\Reader\Decorator
*/
-class Directory implements \Magento\Tools\Di\Code\Reader\ClassesScannerInterface
+class Directory implements \Magento\Setup\Module\Di\Code\Reader\ClassesScannerInterface
{
/**
* @var string
@@ -20,7 +20,7 @@ class Directory implements \Magento\Tools\Di\Code\Reader\ClassesScannerInterface
private $current;
/**
- * @var \Magento\Tools\Di\Compiler\Log\Log
+ * @var \Magento\Setup\Module\Di\Compiler\Log\Log
*/
private $log;
@@ -40,21 +40,21 @@ class Directory implements \Magento\Tools\Di\Code\Reader\ClassesScannerInterface
private $classReader;
/**
- * @var \Magento\Tools\Di\Code\Reader\ClassesScanner
+ * @var \Magento\Setup\Module\Di\Code\Reader\ClassesScanner
*/
private $classesScanner;
/**
- * @param \Magento\Tools\Di\Compiler\Log\Log $log Logging object
+ * @param \Magento\Setup\Module\Di\Compiler\Log\Log $log Logging object
* @param \Magento\Framework\Code\Reader\ClassReader $classReader
- * @param \Magento\Tools\Di\Code\Reader\ClassesScanner $classesScanner
+ * @param \Magento\Setup\Module\Di\Code\Reader\ClassesScanner $classesScanner
* @param \Magento\Framework\Code\Validator $validator
* @param string $generationDir directory where generated files is
*/
public function __construct(
- \Magento\Tools\Di\Compiler\Log\Log $log,
+ \Magento\Setup\Module\Di\Compiler\Log\Log $log,
\Magento\Framework\Code\Reader\ClassReader $classReader,
- \Magento\Tools\Di\Code\Reader\ClassesScanner $classesScanner,
+ \Magento\Setup\Module\Di\Code\Reader\ClassesScanner $classesScanner,
\Magento\Framework\Code\Validator $validator,
$generationDir
) {
diff --git a/dev/tools/Magento/Tools/Di/Code/Reader/Decorator/Interceptions.php b/setup/src/Magento/Setup/Module/Di/Code/Reader/Decorator/Interceptions.php
similarity index 79%
rename from dev/tools/Magento/Tools/Di/Code/Reader/Decorator/Interceptions.php
rename to setup/src/Magento/Setup/Module/Di/Code/Reader/Decorator/Interceptions.php
index 84e4ce0038e8c6b300ae0648cc6a16472180bb21..e7636d06f8c9ba4bd59dd70c7db1920ea1a3e3f2 100644
--- a/dev/tools/Magento/Tools/Di/Code/Reader/Decorator/Interceptions.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Reader/Decorator/Interceptions.php
@@ -3,29 +3,29 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Reader\Decorator;
+namespace Magento\Setup\Module\Di\Code\Reader\Decorator;
-use Magento\Tools\Di\Compiler\Log\Log;
+use Magento\Setup\Module\Di\Compiler\Log\Log;
/**
* Class Interceptions
*
- * @package Magento\Tools\Di\Code\Reader\Decorator
+ * @package Magento\Setup\Module\Di\Code\Reader\Decorator
*/
-class Interceptions implements \Magento\Tools\Di\Code\Reader\ClassesScannerInterface
+class Interceptions implements \Magento\Setup\Module\Di\Code\Reader\ClassesScannerInterface
{
/**
- * @var \Magento\Tools\Di\Code\Reader\ClassReaderDecorator
+ * @var \Magento\Setup\Module\Di\Code\Reader\ClassReaderDecorator
*/
private $classReader;
/**
- * @var \Magento\Tools\Di\Code\Reader\ClassesScanner
+ * @var \Magento\Setup\Module\Di\Code\Reader\ClassesScanner
*/
private $classesScanner;
/**
- * @var \Magento\Tools\Di\Compiler\Log\Log
+ * @var \Magento\Setup\Module\Di\Compiler\Log\Log
*/
private $log;
@@ -35,7 +35,7 @@ class Interceptions implements \Magento\Tools\Di\Code\Reader\ClassesScannerInter
private $validator;
/**
- * @param \Magento\Tools\Di\Code\Reader\ClassesScanner $classesScanner
+ * @param \Magento\Setup\Module\Di\Code\Reader\ClassesScanner $classesScanner
* @param \Magento\Framework\Code\Reader\ClassReader $classReader
* @param \Magento\Framework\Code\Validator $validator
* @param \Magento\Framework\Code\Validator\ConstructorIntegrity $constructorIntegrityValidator
@@ -43,7 +43,7 @@ class Interceptions implements \Magento\Tools\Di\Code\Reader\ClassesScannerInter
* @param Log $log
*/
public function __construct(
- \Magento\Tools\Di\Code\Reader\ClassesScanner $classesScanner,
+ \Magento\Setup\Module\Di\Code\Reader\ClassesScanner $classesScanner,
\Magento\Framework\Code\Reader\ClassReader $classReader,
\Magento\Framework\Code\Validator $validator,
\Magento\Framework\Code\Validator\ConstructorIntegrity $constructorIntegrityValidator,
diff --git a/dev/tools/Magento/Tools/Di/Code/Reader/Type.php b/setup/src/Magento/Setup/Module/Di/Code/Reader/Type.php
similarity index 89%
rename from dev/tools/Magento/Tools/Di/Code/Reader/Type.php
rename to setup/src/Magento/Setup/Module/Di/Code/Reader/Type.php
index 707ff19ce387ade6a970f2e5406f3629824ebe2e..a2ea1d3bf1df1e2979b3b3d83b7a2d1614e31f18 100644
--- a/dev/tools/Magento/Tools/Di/Code/Reader/Type.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Reader/Type.php
@@ -5,7 +5,7 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Reader;
+namespace Magento\Setup\Module\Di\Code\Reader;
class Type
{
diff --git a/dev/tools/Magento/Tools/Di/Code/Scanner/ArrayScanner.php b/setup/src/Magento/Setup/Module/Di/Code/Scanner/ArrayScanner.php
similarity index 91%
rename from dev/tools/Magento/Tools/Di/Code/Scanner/ArrayScanner.php
rename to setup/src/Magento/Setup/Module/Di/Code/Scanner/ArrayScanner.php
index b2f52b36a83bae862e77eee060324bd83e47f42a..6feaa595d1c221a80cf15a802992359724058d17 100644
--- a/dev/tools/Magento/Tools/Di/Code/Scanner/ArrayScanner.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Scanner/ArrayScanner.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Scanner;
+namespace Magento\Setup\Module\Di\Code\Scanner;
class ArrayScanner implements ScannerInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Code/Scanner/CompositeScanner.php b/setup/src/Magento/Setup/Module/Di/Code/Scanner/CompositeScanner.php
similarity index 95%
rename from dev/tools/Magento/Tools/Di/Code/Scanner/CompositeScanner.php
rename to setup/src/Magento/Setup/Module/Di/Code/Scanner/CompositeScanner.php
index ed28b1fe2d2fb87cda4802becaf3e8b6d6285790..fb8785f22a7fc9ae3e4582db1c1ade769475699d 100644
--- a/dev/tools/Magento/Tools/Di/Code/Scanner/CompositeScanner.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Scanner/CompositeScanner.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Scanner;
+namespace Magento\Setup\Module\Di\Code\Scanner;
class CompositeScanner implements ScannerInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Code/Scanner/DirectoryScanner.php b/setup/src/Magento/Setup/Module/Di/Code/Scanner/DirectoryScanner.php
similarity index 96%
rename from dev/tools/Magento/Tools/Di/Code/Scanner/DirectoryScanner.php
rename to setup/src/Magento/Setup/Module/Di/Code/Scanner/DirectoryScanner.php
index 45a9fb36a9b943c3a3a45c834221252778e5bf7a..6d67146fc2597bb221298658ce343623bc2b85cf 100644
--- a/dev/tools/Magento/Tools/Di/Code/Scanner/DirectoryScanner.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Scanner/DirectoryScanner.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Scanner;
+namespace Magento\Setup\Module\Di\Code\Scanner;
class DirectoryScanner
{
diff --git a/dev/tools/Magento/Tools/Di/Code/Scanner/InheritanceInterceptorScanner.php b/setup/src/Magento/Setup/Module/Di/Code/Scanner/InheritanceInterceptorScanner.php
similarity index 60%
rename from dev/tools/Magento/Tools/Di/Code/Scanner/InheritanceInterceptorScanner.php
rename to setup/src/Magento/Setup/Module/Di/Code/Scanner/InheritanceInterceptorScanner.php
index 5d13d98be35d4ef9a74fb34dd59a5724f4342b7e..29a17eb86277b53cc769eca93019b0d6f5a2b9c3 100644
--- a/dev/tools/Magento/Tools/Di/Code/Scanner/InheritanceInterceptorScanner.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Scanner/InheritanceInterceptorScanner.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Scanner;
+namespace Magento\Setup\Module\Di\Code\Scanner;
class InheritanceInterceptorScanner implements ScannerInterface
{
@@ -20,7 +20,9 @@ class InheritanceInterceptorScanner implements ScannerInterface
foreach ($classes as $class) {
foreach ($interceptedEntities as $interceptorClass) {
$interceptedEntity = substr($interceptorClass, 0, -12);
- if (is_subclass_of($class, $interceptedEntity)) {
+ if (is_subclass_of($class, $interceptedEntity)
+ && !$this->endsWith($class, 'RepositoryInterface\\Proxy')
+ && !$this->endsWith($class, '\\Interceptor')) {
$reflectionClass = new \ReflectionClass($class);
if (!$reflectionClass->isAbstract() && !$reflectionClass->isFinal()) {
$output[] = $class . '\\Interceptor';
@@ -32,4 +34,18 @@ class InheritanceInterceptorScanner implements ScannerInterface
$output = array_unique($output);
return $output;
}
+
+ /**
+ * Check if a string ends with a substring
+ *
+ * @param string $haystack
+ * @param string $needle
+ * @return bool
+ */
+ private function endsWith($haystack, $needle)
+ {
+ // search forward starting from end minus needle length characters
+ return $needle === ""
+ || (($temp = strlen($haystack) - strlen($needle)) >= 0 && strpos($haystack, $needle, $temp) !== false);
+ }
}
diff --git a/dev/tools/Magento/Tools/Di/Code/Scanner/InterceptedInstancesScanner.php b/setup/src/Magento/Setup/Module/Di/Code/Scanner/InterceptedInstancesScanner.php
similarity index 96%
rename from dev/tools/Magento/Tools/Di/Code/Scanner/InterceptedInstancesScanner.php
rename to setup/src/Magento/Setup/Module/Di/Code/Scanner/InterceptedInstancesScanner.php
index c6004454cf2d7db0e718412313489908cc92de8d..831f5389ff30732e432dae8aef8e72cc362e036c 100644
--- a/dev/tools/Magento/Tools/Di/Code/Scanner/InterceptedInstancesScanner.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Scanner/InterceptedInstancesScanner.php
@@ -4,7 +4,7 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Scanner;
+namespace Magento\Setup\Module\Di\Code\Scanner;
class InterceptedInstancesScanner implements ScannerInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Code/Scanner/PhpScanner.php b/setup/src/Magento/Setup/Module/Di/Code/Scanner/PhpScanner.php
similarity index 98%
rename from dev/tools/Magento/Tools/Di/Code/Scanner/PhpScanner.php
rename to setup/src/Magento/Setup/Module/Di/Code/Scanner/PhpScanner.php
index ee0379367000787eb84f78feb03a03176fa9cc22..64f1a8ac90c205464ac95c14260675353c05453a 100644
--- a/dev/tools/Magento/Tools/Di/Code/Scanner/PhpScanner.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Scanner/PhpScanner.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Scanner;
+namespace Magento\Setup\Module\Di\Code\Scanner;
-use Magento\Tools\Di\Compiler\Log\Log;
+use Magento\Setup\Module\Di\Compiler\Log\Log;
use Magento\Framework\Api\Code\Generator\ExtensionAttributesGenerator;
use Magento\Framework\Api\Code\Generator\ExtensionAttributesInterfaceGenerator;
use Magento\Framework\ObjectManager\Code\Generator\Factory as FactoryGenerator;
diff --git a/dev/tools/Magento/Tools/Di/Code/Scanner/PluginScanner.php b/setup/src/Magento/Setup/Module/Di/Code/Scanner/PluginScanner.php
similarity index 95%
rename from dev/tools/Magento/Tools/Di/Code/Scanner/PluginScanner.php
rename to setup/src/Magento/Setup/Module/Di/Code/Scanner/PluginScanner.php
index d8190a83ff468f408b2f10143febb733cd5f8b23..5831ce61fcd516b8634c1520bdb77d23d6cd20f1 100644
--- a/dev/tools/Magento/Tools/Di/Code/Scanner/PluginScanner.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Scanner/PluginScanner.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Scanner;
+namespace Magento\Setup\Module\Di\Code\Scanner;
class PluginScanner implements ScannerInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Code/Scanner/RepositoryScanner.php b/setup/src/Magento/Setup/Module/Di/Code/Scanner/RepositoryScanner.php
similarity index 91%
rename from dev/tools/Magento/Tools/Di/Code/Scanner/RepositoryScanner.php
rename to setup/src/Magento/Setup/Module/Di/Code/Scanner/RepositoryScanner.php
index da58536126739c68d9cc420f5e3c6b36727889b0..acad623d61a4cc04d15b59018226ec635ad62cdc 100644
--- a/dev/tools/Magento/Tools/Di/Code/Scanner/RepositoryScanner.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Scanner/RepositoryScanner.php
@@ -3,7 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Scanner;
+namespace Magento\Setup\Module\Di\Code\Scanner;
+
+use Magento\Framework\Autoload\AutoloaderRegistry;
/**
* Class RepositoryScanner
@@ -37,7 +39,8 @@ class RepositoryScanner implements ScannerInterface
&& $replacementType !== null
&& (substr($forType->nodeValue, -19) == 'RepositoryInterface')
) {
- if (!class_exists($replacementType->nodeValue, $this->useAutoload)) {
+ if (!class_exists($replacementType->nodeValue, false)
+ && !AutoloaderRegistry::getAutoloader()->loadClass($replacementType->nodeValue)) {
$persistor = str_replace('\\Repository', 'InterfacePersistor', $replacementType->nodeValue);
$factory = str_replace('\\Repository', 'InterfaceFactory', $replacementType->nodeValue);
$searchResultFactory
diff --git a/dev/tools/Magento/Tools/Di/Code/Scanner/ScannerInterface.php b/setup/src/Magento/Setup/Module/Di/Code/Scanner/ScannerInterface.php
similarity index 85%
rename from dev/tools/Magento/Tools/Di/Code/Scanner/ScannerInterface.php
rename to setup/src/Magento/Setup/Module/Di/Code/Scanner/ScannerInterface.php
index 5bc2113eb78c6ef4d1f2db810255195ce80d26d3..ceb6003dbd284e1ee17293afa0e344e02aa4217b 100644
--- a/dev/tools/Magento/Tools/Di/Code/Scanner/ScannerInterface.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Scanner/ScannerInterface.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Scanner;
+namespace Magento\Setup\Module\Di\Code\Scanner;
interface ScannerInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Code/Scanner/XmlInterceptorScanner.php b/setup/src/Magento/Setup/Module/Di/Code/Scanner/XmlInterceptorScanner.php
similarity index 97%
rename from dev/tools/Magento/Tools/Di/Code/Scanner/XmlInterceptorScanner.php
rename to setup/src/Magento/Setup/Module/Di/Code/Scanner/XmlInterceptorScanner.php
index 7de7b4315b892f44da3929b5853a4a86d6b070f2..d5c43af177651e0e5d1a3b17c74513187bd41a10 100644
--- a/dev/tools/Magento/Tools/Di/Code/Scanner/XmlInterceptorScanner.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Scanner/XmlInterceptorScanner.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Scanner;
+namespace Magento\Setup\Module\Di\Code\Scanner;
class XmlInterceptorScanner implements ScannerInterface
{
@@ -41,7 +41,7 @@ class XmlInterceptorScanner implements ScannerInterface
foreach ($xpath->query('//type[plugin]|//virtualType[plugin]') as $entityNode) {
$attributes = $entityNode->attributes;
$type = $attributes->getNamedItem('type');
- if (!is_null($type)) {
+ if ($type !== null) {
array_push($output, $type->nodeValue);
} else {
array_push($output, $attributes->getNamedItem('name')->nodeValue);
diff --git a/dev/tools/Magento/Tools/Di/Code/Scanner/XmlScanner.php b/setup/src/Magento/Setup/Module/Di/Code/Scanner/XmlScanner.php
similarity index 88%
rename from dev/tools/Magento/Tools/Di/Code/Scanner/XmlScanner.php
rename to setup/src/Magento/Setup/Module/Di/Code/Scanner/XmlScanner.php
index 6ca33d3f08c846116affee7d238d5c60ddc839e3..adc5a452ca9bb4bb8a96b552d9976d6a92954a17 100644
--- a/dev/tools/Magento/Tools/Di/Code/Scanner/XmlScanner.php
+++ b/setup/src/Magento/Setup/Module/Di/Code/Scanner/XmlScanner.php
@@ -3,21 +3,21 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Code\Scanner;
+namespace Magento\Setup\Module\Di\Code\Scanner;
use Magento\Framework\ObjectManager\Code\Generator\Proxy as ProxyGenerator;
class XmlScanner implements ScannerInterface
{
/**
- * @var \Magento\Tools\Di\Compiler\Log\Log $log
+ * @var \Magento\Setup\Module\Di\Compiler\Log\Log $log
*/
protected $_log;
/**
- * @param \Magento\Tools\Di\Compiler\Log\Log $log
+ * @param \Magento\Setup\Module\Di\Compiler\Log\Log $log
*/
- public function __construct(\Magento\Tools\Di\Compiler\Log\Log $log)
+ public function __construct(\Magento\Setup\Module\Di\Compiler\Log\Log $log)
{
$this->_log = $log;
}
@@ -75,7 +75,7 @@ class XmlScanner implements ScannerInterface
array_push($filteredEntities, $className);
} else {
$this->_log->add(
- \Magento\Tools\Di\Compiler\Log\Log::CONFIGURATION_ERROR,
+ \Magento\Setup\Module\Di\Compiler\Log\Log::CONFIGURATION_ERROR,
$className,
'Invalid proxy class for ' . substr($className, 0, -5)
);
diff --git a/dev/tools/Magento/Tools/Di/Compiler/ArgumentsResolver.php b/setup/src/Magento/Setup/Module/Di/Compiler/ArgumentsResolver.php
similarity index 99%
rename from dev/tools/Magento/Tools/Di/Compiler/ArgumentsResolver.php
rename to setup/src/Magento/Setup/Module/Di/Compiler/ArgumentsResolver.php
index 37579cd287245ba202017ee08dca9cddac7b4fb2..423157a9aa0386efd276b5c5b46db1ebcac100af 100644
--- a/dev/tools/Magento/Tools/Di/Compiler/ArgumentsResolver.php
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/ArgumentsResolver.php
@@ -5,7 +5,7 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Compiler;
+namespace Magento\Setup\Module\Di\Compiler;
class ArgumentsResolver
{
diff --git a/dev/tools/Magento/Tools/Di/Compiler/ArgumentsResolverFactory.php b/setup/src/Magento/Setup/Module/Di/Compiler/ArgumentsResolverFactory.php
similarity index 88%
rename from dev/tools/Magento/Tools/Di/Compiler/ArgumentsResolverFactory.php
rename to setup/src/Magento/Setup/Module/Di/Compiler/ArgumentsResolverFactory.php
index 8a5adb49b2fe6455c5ae0ceb8f7632ba82d7e70c..603b63f7b038715ead1fbec1a0f7daf0f6814fdf 100644
--- a/dev/tools/Magento/Tools/Di/Compiler/ArgumentsResolverFactory.php
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/ArgumentsResolverFactory.php
@@ -5,7 +5,7 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Compiler;
+namespace Magento\Setup\Module\Di\Compiler;
class ArgumentsResolverFactory
{
@@ -31,7 +31,7 @@ class ArgumentsResolverFactory
* Create class instance with config
*
* @param \Magento\Framework\ObjectManager\ConfigInterface $diContainerConfig
- * @return \Magento\Tools\Di\Compiler\ArgumentsResolver
+ * @return \Magento\Setup\Module\Di\Compiler\ArgumentsResolver
*/
public function create(\Magento\Framework\ObjectManager\ConfigInterface $diContainerConfig)
{
diff --git a/dev/tools/Magento/Tools/Di/Compiler/Config/Chain/ArgumentsSerialization.php b/setup/src/Magento/Setup/Module/Di/Compiler/Config/Chain/ArgumentsSerialization.php
similarity index 83%
rename from dev/tools/Magento/Tools/Di/Compiler/Config/Chain/ArgumentsSerialization.php
rename to setup/src/Magento/Setup/Module/Di/Compiler/Config/Chain/ArgumentsSerialization.php
index c19d07de807bb5b742ee0a0f12fce7001a917522..16b317a63dc03726046d80164fc46b38e4278e7f 100644
--- a/dev/tools/Magento/Tools/Di/Compiler/Config/Chain/ArgumentsSerialization.php
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/Config/Chain/ArgumentsSerialization.php
@@ -4,9 +4,9 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Compiler\Config\Chain;
+namespace Magento\Setup\Module\Di\Compiler\Config\Chain;
-use Magento\Tools\Di\Compiler\Config\ModificationInterface;
+use Magento\Setup\Module\Di\Compiler\Config\ModificationInterface;
class ArgumentsSerialization implements ModificationInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Compiler/Config/Chain/BackslashTrim.php b/setup/src/Magento/Setup/Module/Di/Compiler/Config/Chain/BackslashTrim.php
similarity index 92%
rename from dev/tools/Magento/Tools/Di/Compiler/Config/Chain/BackslashTrim.php
rename to setup/src/Magento/Setup/Module/Di/Compiler/Config/Chain/BackslashTrim.php
index b7500e4fb0cacd34e051dcd847cccb7b321c1f7e..d741d004b9d652078496117b9d91244f9dceac1b 100644
--- a/dev/tools/Magento/Tools/Di/Compiler/Config/Chain/BackslashTrim.php
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/Config/Chain/BackslashTrim.php
@@ -4,9 +4,9 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Compiler\Config\Chain;
+namespace Magento\Setup\Module\Di\Compiler\Config\Chain;
-use Magento\Tools\Di\Compiler\Config\ModificationInterface;
+use Magento\Setup\Module\Di\Compiler\Config\ModificationInterface;
class BackslashTrim implements ModificationInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Compiler/Config/Chain/InterceptorSubstitution.php b/setup/src/Magento/Setup/Module/Di/Compiler/Config/Chain/InterceptorSubstitution.php
similarity index 94%
rename from dev/tools/Magento/Tools/Di/Compiler/Config/Chain/InterceptorSubstitution.php
rename to setup/src/Magento/Setup/Module/Di/Compiler/Config/Chain/InterceptorSubstitution.php
index 26e6464858f590aa6b7ec639c495f213c7ffff89..324a7724702249636f737011142a2f8db0c95c09 100644
--- a/dev/tools/Magento/Tools/Di/Compiler/Config/Chain/InterceptorSubstitution.php
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/Config/Chain/InterceptorSubstitution.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Compiler\Config\Chain;
+namespace Magento\Setup\Module\Di\Compiler\Config\Chain;
-use Magento\Tools\Di\Compiler\Config\ModificationInterface;
+use Magento\Setup\Module\Di\Compiler\Config\ModificationInterface;
class InterceptorSubstitution implements ModificationInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Compiler/Config/Chain/PreferencesResolving.php b/setup/src/Magento/Setup/Module/Di/Compiler/Config/Chain/PreferencesResolving.php
similarity index 91%
rename from dev/tools/Magento/Tools/Di/Compiler/Config/Chain/PreferencesResolving.php
rename to setup/src/Magento/Setup/Module/Di/Compiler/Config/Chain/PreferencesResolving.php
index 3600ea3ea8360b1a24e569e6131cb73c99f78d52..9d58a69cd6ebf5fea3a41f70bf0f1f9ffa1cb0f4 100644
--- a/dev/tools/Magento/Tools/Di/Compiler/Config/Chain/PreferencesResolving.php
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/Config/Chain/PreferencesResolving.php
@@ -4,9 +4,9 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Compiler\Config\Chain;
+namespace Magento\Setup\Module\Di\Compiler\Config\Chain;
-use Magento\Tools\Di\Compiler\Config\ModificationInterface;
+use Magento\Setup\Module\Di\Compiler\Config\ModificationInterface;
class PreferencesResolving implements ModificationInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Compiler/Config/ModificationChain.php b/setup/src/Magento/Setup/Module/Di/Compiler/Config/ModificationChain.php
similarity index 95%
rename from dev/tools/Magento/Tools/Di/Compiler/Config/ModificationChain.php
rename to setup/src/Magento/Setup/Module/Di/Compiler/Config/ModificationChain.php
index fcdec2563e9ade96276b5e6e030bd5db2f74fe6d..666ee682c05cd71232cb68432d4584eac26a02b4 100644
--- a/dev/tools/Magento/Tools/Di/Compiler/Config/ModificationChain.php
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/Config/ModificationChain.php
@@ -4,7 +4,7 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Compiler\Config;
+namespace Magento\Setup\Module\Di\Compiler\Config;
class ModificationChain implements ModificationInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Compiler/Config/ModificationInterface.php b/setup/src/Magento/Setup/Module/Di/Compiler/Config/ModificationInterface.php
similarity index 84%
rename from dev/tools/Magento/Tools/Di/Compiler/Config/ModificationInterface.php
rename to setup/src/Magento/Setup/Module/Di/Compiler/Config/ModificationInterface.php
index 5e8f124bffef89ec316e3100585565e92dea6544..5f2b2d067cad581c8360fe56b423a6b574e726fe 100644
--- a/dev/tools/Magento/Tools/Di/Compiler/Config/ModificationInterface.php
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/Config/ModificationInterface.php
@@ -4,7 +4,7 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Compiler\Config;
+namespace Magento\Setup\Module\Di\Compiler\Config;
interface ModificationInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Compiler/Config/Reader.php b/setup/src/Magento/Setup/Module/Di/Compiler/Config/Reader.php
similarity index 93%
rename from dev/tools/Magento/Tools/Di/Compiler/Config/Reader.php
rename to setup/src/Magento/Setup/Module/Di/Compiler/Config/Reader.php
index b143705afa34968f86859ab358643fc8b4c059ce..3321115dd6cf57ea4a88a8ec8c16e78277d3d6a3 100644
--- a/dev/tools/Magento/Tools/Di/Compiler/Config/Reader.php
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/Config/Reader.php
@@ -4,18 +4,18 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Compiler\Config;
+namespace Magento\Setup\Module\Di\Compiler\Config;
use Magento\Framework\App;
use Magento\Framework\ObjectManager\ConfigInterface;
-use Magento\Tools\Di\Code\Reader\ClassReaderDecorator;
-use Magento\Tools\Di\Code\Reader\Type;
-use Magento\Tools\Di\Compiler\ArgumentsResolverFactory;
-use Magento\Tools\Di\Definition\Collection as DefinitionsCollection;
+use Magento\Setup\Module\Di\Code\Reader\ClassReaderDecorator;
+use Magento\Setup\Module\Di\Code\Reader\Type;
+use Magento\Setup\Module\Di\Compiler\ArgumentsResolverFactory;
+use Magento\Setup\Module\Di\Definition\Collection as DefinitionsCollection;
/**
* Class Reader
- * @package Magento\Tools\Di\Compiler\Config
+ * @package Magento\Setup\Module\Di\Compiler\Config
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class Reader
diff --git a/setup/src/Magento/Setup/Module/Di/Compiler/Config/Writer/Filesystem.php b/setup/src/Magento/Setup/Module/Di/Compiler/Config/Writer/Filesystem.php
new file mode 100644
index 0000000000000000000000000000000000000000..c90c1582bc57b95e1dbca5aab0bc861490bf564b
--- /dev/null
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/Config/Writer/Filesystem.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Module\Di\Compiler\Config\Writer;
+
+use Magento\Framework\App\Filesystem\DirectoryList;
+use Magento\Setup\Module\Di\Compiler\Config\WriterInterface;
+
+class Filesystem implements WriterInterface
+{
+ /**
+ * @var DirectoryList
+ */
+ private $directoryList;
+
+ /**
+ * Constructor
+ *
+ * @param DirectoryList $directoryList
+ */
+ public function __construct(DirectoryList $directoryList)
+ {
+ $this->directoryList = $directoryList;
+ }
+
+ /**
+ * Writes config in storage
+ *
+ * @param string $key
+ * @param array $config
+ * @return void
+ */
+ public function write($key, array $config)
+ {
+ $this->initialize();
+
+ $serialized = serialize($config);
+ file_put_contents($this->directoryList->getPath(DirectoryList::DI) . '/' . $key . '.ser', $serialized);
+ }
+
+ /**
+ * Initializes writer
+ *
+ * @return void
+ */
+ private function initialize()
+ {
+ if (!file_exists($this->directoryList->getPath(DirectoryList::DI))) {
+ mkdir($this->directoryList->getPath(DirectoryList::DI));
+ }
+ }
+}
diff --git a/dev/tools/Magento/Tools/Di/Compiler/Config/WriterInterface.php b/setup/src/Magento/Setup/Module/Di/Compiler/Config/WriterInterface.php
similarity index 86%
rename from dev/tools/Magento/Tools/Di/Compiler/Config/WriterInterface.php
rename to setup/src/Magento/Setup/Module/Di/Compiler/Config/WriterInterface.php
index 0e54e3585f7ad4dbddcde43548edee556ab9f341..431d3ceb7da7295824089dd1a13137f29645d1b1 100644
--- a/dev/tools/Magento/Tools/Di/Compiler/Config/WriterInterface.php
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/Config/WriterInterface.php
@@ -5,7 +5,7 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Compiler\Config;
+namespace Magento\Setup\Module\Di\Compiler\Config;
interface WriterInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Compiler/ConstructorArgument.php b/setup/src/Magento/Setup/Module/Di/Compiler/ConstructorArgument.php
similarity index 96%
rename from dev/tools/Magento/Tools/Di/Compiler/ConstructorArgument.php
rename to setup/src/Magento/Setup/Module/Di/Compiler/ConstructorArgument.php
index 39b38dc37a186d66f9ca4fb4ee4f983ccaa8fe4e..646d3ccd3565529357e9c0aad4b4eace5a8ac98c 100644
--- a/dev/tools/Magento/Tools/Di/Compiler/ConstructorArgument.php
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/ConstructorArgument.php
@@ -5,7 +5,7 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Compiler;
+namespace Magento\Setup\Module\Di\Compiler;
class ConstructorArgument
{
diff --git a/dev/tools/Magento/Tools/Di/Compiler/Log/Log.php b/setup/src/Magento/Setup/Module/Di/Compiler/Log/Log.php
similarity index 85%
rename from dev/tools/Magento/Tools/Di/Compiler/Log/Log.php
rename to setup/src/Magento/Setup/Module/Di/Compiler/Log/Log.php
index 963632f686a3b5a471f846597e33ce8e0eecab73..67d93bfd6304e2c15d3a4e14b873ffe60ef0e83f 100644
--- a/dev/tools/Magento/Tools/Di/Compiler/Log/Log.php
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/Log/Log.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Compiler\Log;
+namespace Magento\Setup\Module\Di\Compiler\Log;
class Log
@@ -19,14 +19,14 @@ class Log
/**
* Success log writer
*
- * @var Writer\WriterInterface
+ * @var Writer\Console
*/
protected $_successWriter;
/**
* Error log writer
*
- * @var Writer\WriterInterface
+ * @var Writer\Console
*/
protected $_errorWriter;
@@ -45,10 +45,10 @@ class Log
protected $_errorEntries = [];
/**
- * @param Writer\WriterInterface $successWriter
- * @param Writer\WriterInterface $errorWriter
+ * @param Writer\Console $successWriter
+ * @param Writer\Console $errorWriter
*/
- public function __construct(Writer\WriterInterface $successWriter, Writer\WriterInterface $errorWriter)
+ public function __construct(Writer\Console $successWriter, Writer\Console $errorWriter)
{
$this->_successWriter = $successWriter;
$this->_errorWriter = $errorWriter;
diff --git a/setup/src/Magento/Setup/Module/Di/Compiler/Log/Writer/Console.php b/setup/src/Magento/Setup/Module/Di/Compiler/Log/Writer/Console.php
new file mode 100644
index 0000000000000000000000000000000000000000..4c484cd841b81c2478f752d1b1cad8f23f96532f
--- /dev/null
+++ b/setup/src/Magento/Setup/Module/Di/Compiler/Log/Writer/Console.php
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Setup\Module\Di\Compiler\Log\Writer;
+
+use Magento\Setup\Module\Di\Compiler\Log\Log;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class Console
+{
+ /**
+ * Report messages by type
+ *
+ * @var array
+ */
+ protected $_messages = [
+ Log::GENERATION_SUCCESS => 'Generated classes:',
+ Log::GENERATION_ERROR => 'Errors during class generation:',
+ Log::COMPILATION_ERROR => 'Errors during compilation:',
+ Log::CONFIGURATION_ERROR => 'Errors during configuration scanning:',
+ ];
+
+ /**
+ * Console
+ *
+ * @var OutputInterface
+ */
+ protected $console;
+
+ /**
+ * @param OutputInterface $output
+ */
+ public function __construct(OutputInterface $output)
+ {
+ $this->console = $output;
+ }
+
+ /**
+ * Output log data
+ *
+ * @param array $data
+ * @return void
+ */
+ public function write(array $data)
+ {
+ $errorsCount = 0;
+ foreach ($data as $type => $classes) {
+ if (!count($classes)) {
+ continue;
+ }
+ $this->console->writeln($this->getStartTag($type) . $this->_messages[$type] . $this->getEndTag($type));
+ foreach ($classes as $className => $messages) {
+ if (count($messages)) {
+ $this->console->writeln($this->getStartTag($type) . "\t" . $className . $this->getEndTag($type));
+ foreach ($messages as $message) {
+ if ($message) {
+ $this->console->writeln(
+ $this->getStartTag($type) . "\t\t" . $message . $this->getEndTag($type)
+ );
+ if ($type != Log::GENERATION_SUCCESS) {
+ $errorsCount++;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if ($errorsCount) {
+ $this->console->writeln('<error>' . 'Total Errors Count: ' . $errorsCount . '</error>');
+ }
+ }
+
+ /**
+ * Retrieve starting output tag
+ *
+ * @param string $type
+ * @return string
+ */
+ private function getStartTag($type)
+ {
+ if ($type === Log::GENERATION_SUCCESS) {
+ return '<info>';
+ } else {
+ return '<error>';
+ }
+ }
+
+ /**
+ * Retrieve ending output tag
+ *
+ * @param string $type
+ * @return string
+ */
+ private function getEndTag($type)
+ {
+ if ($type === Log::GENERATION_SUCCESS) {
+ return '</info>';
+ } else {
+ return '</error>';
+ }
+ }
+}
diff --git a/dev/tools/Magento/Tools/Di/Definition/Collection.php b/setup/src/Magento/Setup/Module/Di/Definition/Collection.php
similarity index 97%
rename from dev/tools/Magento/Tools/Di/Definition/Collection.php
rename to setup/src/Magento/Setup/Module/Di/Definition/Collection.php
index 580f930d24cdd59584306f0cd3eb62e696f0a170..a18f8fb47795ebb9c6e035a8579366e3330dd708 100644
--- a/dev/tools/Magento/Tools/Di/Definition/Collection.php
+++ b/setup/src/Magento/Setup/Module/Di/Definition/Collection.php
@@ -4,7 +4,7 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Definition;
+namespace Magento\Setup\Module\Di\Definition;
class Collection
{
diff --git a/dev/tools/Magento/Tools/Di/Definition/Compressor.php b/setup/src/Magento/Setup/Module/Di/Definition/Compressor.php
similarity index 96%
rename from dev/tools/Magento/Tools/Di/Definition/Compressor.php
rename to setup/src/Magento/Setup/Module/Di/Definition/Compressor.php
index f29ee3779c23e85ff3b2942d2d1ebeecb9e64bad..6ee28a3e42e24b664022fb99ba4933adbf87168f 100644
--- a/dev/tools/Magento/Tools/Di/Definition/Compressor.php
+++ b/setup/src/Magento/Setup/Module/Di/Definition/Compressor.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Definition;
+namespace Magento\Setup\Module\Di\Definition;
class Compressor
{
diff --git a/dev/tools/Magento/Tools/Di/Definition/Compressor/UniqueList.php b/setup/src/Magento/Setup/Module/Di/Definition/Compressor/UniqueList.php
similarity index 93%
rename from dev/tools/Magento/Tools/Di/Definition/Compressor/UniqueList.php
rename to setup/src/Magento/Setup/Module/Di/Definition/Compressor/UniqueList.php
index 7f743353ece5cfc17e5b520d9478b72cbfe746ac..cdc4578824d2bc99f04533097796c1fd0d4c8e29 100644
--- a/dev/tools/Magento/Tools/Di/Definition/Compressor/UniqueList.php
+++ b/setup/src/Magento/Setup/Module/Di/Definition/Compressor/UniqueList.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Definition\Compressor;
+namespace Magento\Setup\Module\Di\Definition\Compressor;
class UniqueList
{
diff --git a/dev/tools/Magento/Tools/Di/Definition/Serializer/Igbinary.php b/setup/src/Magento/Setup/Module/Di/Definition/Serializer/Igbinary.php
similarity index 91%
rename from dev/tools/Magento/Tools/Di/Definition/Serializer/Igbinary.php
rename to setup/src/Magento/Setup/Module/Di/Definition/Serializer/Igbinary.php
index bfcf90322aecb3441faba643398327cf5365bb7e..db8e0e7ad0fb55ca3c957a9c824d69cd8fb2ea9e 100644
--- a/dev/tools/Magento/Tools/Di/Definition/Serializer/Igbinary.php
+++ b/setup/src/Magento/Setup/Module/Di/Definition/Serializer/Igbinary.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Definition\Serializer;
+namespace Magento\Setup\Module\Di\Definition\Serializer;
class Igbinary implements SerializerInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Definition/Serializer/SerializerInterface.php b/setup/src/Magento/Setup/Module/Di/Definition/Serializer/SerializerInterface.php
similarity index 82%
rename from dev/tools/Magento/Tools/Di/Definition/Serializer/SerializerInterface.php
rename to setup/src/Magento/Setup/Module/Di/Definition/Serializer/SerializerInterface.php
index e722e0f7f4f20d42d85383346c647fa849c711cc..e4daa07f17b25641d49c0315474d051b386f8377 100644
--- a/dev/tools/Magento/Tools/Di/Definition/Serializer/SerializerInterface.php
+++ b/setup/src/Magento/Setup/Module/Di/Definition/Serializer/SerializerInterface.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Definition\Serializer;
+namespace Magento\Setup\Module\Di\Definition\Serializer;
interface SerializerInterface
{
diff --git a/dev/tools/Magento/Tools/Di/Definition/Serializer/Standard.php b/setup/src/Magento/Setup/Module/Di/Definition/Serializer/Standard.php
similarity index 87%
rename from dev/tools/Magento/Tools/Di/Definition/Serializer/Standard.php
rename to setup/src/Magento/Setup/Module/Di/Definition/Serializer/Standard.php
index 4862fce3e367eff36650e13afab90dd38d430566..5c98d658e776b6a5753417b8045a852e315ea268 100644
--- a/dev/tools/Magento/Tools/Di/Definition/Serializer/Standard.php
+++ b/setup/src/Magento/Setup/Module/Di/Definition/Serializer/Standard.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Definition\Serializer;
+namespace Magento\Setup\Module\Di\Definition\Serializer;
class Standard implements SerializerInterface
{
diff --git a/dev/tools/Magento/Tools/I18n/Context.php b/setup/src/Magento/Setup/Module/I18n/Context.php
similarity index 98%
rename from dev/tools/Magento/Tools/I18n/Context.php
rename to setup/src/Magento/Setup/Module/I18n/Context.php
index 839fd699f2b3d60866f8f28d4ef7f8a4593b7b3f..165669bbced84a6cb7490065bee00257ec6c780a 100644
--- a/dev/tools/Magento/Tools/I18n/Context.php
+++ b/setup/src/Magento/Setup/Module/I18n/Context.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n;
+namespace Magento\Setup\Module\I18n;
/**
* Context
diff --git a/dev/tools/Magento/Tools/I18n/Dictionary.php b/setup/src/Magento/Setup/Module/I18n/Dictionary.php
similarity index 85%
rename from dev/tools/Magento/Tools/I18n/Dictionary.php
rename to setup/src/Magento/Setup/Module/I18n/Dictionary.php
index 0026cf5ecaf8fc0da0aef0cdb689d6b85357a94a..86f9b06145d7aa5a4c884221ee1ca40cf2ea7177 100644
--- a/dev/tools/Magento/Tools/I18n/Dictionary.php
+++ b/setup/src/Magento/Setup/Module/I18n/Dictionary.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n;
+namespace Magento\Setup\Module\I18n;
-use Magento\Tools\I18n\Dictionary\Phrase;
+use Magento\Setup\Module\I18n\Dictionary\Phrase;
/**
* Dictionary
@@ -29,7 +29,7 @@ class Dictionary
/**
* Add phrase to pack container
*
- * @param \Magento\Tools\I18n\Dictionary\Phrase $phrase
+ * @param Phrase $phrase
* @return void
*/
public function addPhrase(Phrase $phrase)
@@ -41,7 +41,7 @@ class Dictionary
/**
* Get phrases
*
- * @return \Magento\Tools\I18n\Dictionary\Phrase[]
+ * @return Phrase[]
*/
public function getPhrases()
{
diff --git a/dev/tools/Magento/Tools/I18n/Dictionary/Generator.php b/setup/src/Magento/Setup/Module/I18n/Dictionary/Generator.php
similarity index 88%
rename from dev/tools/Magento/Tools/I18n/Dictionary/Generator.php
rename to setup/src/Magento/Setup/Module/I18n/Dictionary/Generator.php
index 85d2ec14cb5679d82eb5d12c5932a6267d937c73..81a8b8dc2649ce18cd835fb3d41d338e0922dfae 100644
--- a/dev/tools/Magento/Tools/I18n/Dictionary/Generator.php
+++ b/setup/src/Magento/Setup/Module/I18n/Dictionary/Generator.php
@@ -3,10 +3,10 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Dictionary;
+namespace Magento\Setup\Module\I18n\Dictionary;
-use Magento\Tools\I18n\Factory;
-use Magento\Tools\I18n\ParserInterface;
+use Magento\Setup\Module\I18n\Factory;
+use Magento\Setup\Module\I18n\ParserInterface;
/**
* Dictionary generator
@@ -16,21 +16,21 @@ class Generator
/**
* Parser
*
- * @var \Magento\Tools\I18n\ParserInterface
+ * @var \Magento\Setup\Module\I18n\ParserInterface
*/
protected $parser;
/**
* Contextual parser
*
- * @var \Magento\Tools\I18n\ParserInterface
+ * @var \Magento\Setup\Module\I18n\ParserInterface
*/
protected $contextualParser;
/**
* Domain abstract factory
*
- * @var \Magento\Tools\I18n\Factory
+ * @var \Magento\Setup\Module\I18n\Factory
*/
protected $factory;
@@ -108,7 +108,7 @@ class Generator
* Get actual parser
*
* @param bool $withContext
- * @return \Magento\Tools\I18n\ParserInterface
+ * @return \Magento\Setup\Module\I18n\ParserInterface
*/
protected function getActualParser($withContext)
{
diff --git a/dev/tools/Magento/Tools/I18n/Dictionary/Loader/File/AbstractFile.php b/setup/src/Magento/Setup/Module/I18n/Dictionary/Loader/File/AbstractFile.php
similarity index 89%
rename from dev/tools/Magento/Tools/I18n/Dictionary/Loader/File/AbstractFile.php
rename to setup/src/Magento/Setup/Module/I18n/Dictionary/Loader/File/AbstractFile.php
index 3cd27234bab0ed3810a654c6265b3c23ad9940b9..79bdbb6f7b04e0645aed3410a7a51dde08ab2dd0 100644
--- a/dev/tools/Magento/Tools/I18n/Dictionary/Loader/File/AbstractFile.php
+++ b/setup/src/Magento/Setup/Module/I18n/Dictionary/Loader/File/AbstractFile.php
@@ -3,10 +3,10 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Dictionary\Loader\File;
+namespace Magento\Setup\Module\I18n\Dictionary\Loader\File;
-use Magento\Tools\I18n\Dictionary\Loader\FileInterface;
-use Magento\Tools\I18n\Factory;
+use Magento\Setup\Module\I18n\Dictionary\Loader\FileInterface;
+use Magento\Setup\Module\I18n\Factory;
/**
* Abstract dictionary loader from file
@@ -16,7 +16,7 @@ abstract class AbstractFile implements FileInterface
/**
* Domain abstract factory
*
- * @var \Magento\Tools\I18n\Factory
+ * @var \Magento\Setup\Module\I18n\Factory
*/
protected $_factory;
@@ -106,7 +106,7 @@ abstract class AbstractFile implements FileInterface
/**
* Create dictionary
*
- * @return \Magento\Tools\I18n\Dictionary
+ * @return \Magento\Setup\Module\I18n\Dictionary
*/
protected function _createDictionary()
{
@@ -117,7 +117,7 @@ abstract class AbstractFile implements FileInterface
* Create phrase
*
* @param array $data
- * @return \Magento\Tools\I18n\Dictionary\Phrase
+ * @return \Magento\Setup\Module\I18n\Dictionary\Phrase
* @throws \RuntimeException
*/
protected function _createPhrase($data)
diff --git a/dev/tools/Magento/Tools/I18n/Dictionary/Loader/File/Csv.php b/setup/src/Magento/Setup/Module/I18n/Dictionary/Loader/File/Csv.php
similarity index 76%
rename from dev/tools/Magento/Tools/I18n/Dictionary/Loader/File/Csv.php
rename to setup/src/Magento/Setup/Module/I18n/Dictionary/Loader/File/Csv.php
index aa62de706c41cfac55350242b2dfee48a1c1e989..91a02c11056f3d1d23b011aa2b3edf376c63d037 100644
--- a/dev/tools/Magento/Tools/I18n/Dictionary/Loader/File/Csv.php
+++ b/setup/src/Magento/Setup/Module/I18n/Dictionary/Loader/File/Csv.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Dictionary\Loader\File;
+namespace Magento\Setup\Module\I18n\Dictionary\Loader\File;
-use Magento\Tools\I18n\Dictionary;
+use Magento\Setup\Module\I18n\Dictionary;
/**
* Dictionary loader from csv
diff --git a/dev/tools/Magento/Tools/I18n/Dictionary/Loader/FileInterface.php b/setup/src/Magento/Setup/Module/I18n/Dictionary/Loader/FileInterface.php
similarity index 74%
rename from dev/tools/Magento/Tools/I18n/Dictionary/Loader/FileInterface.php
rename to setup/src/Magento/Setup/Module/I18n/Dictionary/Loader/FileInterface.php
index 923c555929adb287b18bfc504be5a2eaa511e244..3365e2ffd7d3dce5ba7d47435cfa4596317abc72 100644
--- a/dev/tools/Magento/Tools/I18n/Dictionary/Loader/FileInterface.php
+++ b/setup/src/Magento/Setup/Module/I18n/Dictionary/Loader/FileInterface.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Dictionary\Loader;
+namespace Magento\Setup\Module\I18n\Dictionary\Loader;
/**
* Dictionary loader interface
@@ -14,7 +14,7 @@ interface FileInterface
* Load dictionary
*
* @param string $file
- * @return \Magento\Tools\I18n\Dictionary
+ * @return \Magento\Setup\Module\I18n\Dictionary
* @throws \InvalidArgumentException
*/
public function load($file);
diff --git a/dev/tools/Magento/Tools/I18n/Dictionary/Options/Resolver.php b/setup/src/Magento/Setup/Module/I18n/Dictionary/Options/Resolver.php
similarity index 98%
rename from dev/tools/Magento/Tools/I18n/Dictionary/Options/Resolver.php
rename to setup/src/Magento/Setup/Module/I18n/Dictionary/Options/Resolver.php
index bbc43b8f4313aaaf5cf2fa79d006720da8d01ea8..d257486fc3a3c1692798174e43ebde6822952078 100644
--- a/dev/tools/Magento/Tools/I18n/Dictionary/Options/Resolver.php
+++ b/setup/src/Magento/Setup/Module/I18n/Dictionary/Options/Resolver.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Dictionary\Options;
+namespace Magento\Setup\Module\I18n\Dictionary\Options;
/**
* Dictionary generator options resolver
diff --git a/dev/tools/Magento/Tools/I18n/Dictionary/Options/ResolverFactory.php b/setup/src/Magento/Setup/Module/I18n/Dictionary/Options/ResolverFactory.php
similarity index 87%
rename from dev/tools/Magento/Tools/I18n/Dictionary/Options/ResolverFactory.php
rename to setup/src/Magento/Setup/Module/I18n/Dictionary/Options/ResolverFactory.php
index 5ea187e0e63d6b06b6b3d23a0dfce2eb8b36bbd6..0068ac187a7c9ae16c7643e8080eb306bc04fedc 100644
--- a/dev/tools/Magento/Tools/I18n/Dictionary/Options/ResolverFactory.php
+++ b/setup/src/Magento/Setup/Module/I18n/Dictionary/Options/ResolverFactory.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Dictionary\Options;
+namespace Magento\Setup\Module\I18n\Dictionary\Options;
/**
* Options resolver factory
@@ -13,7 +13,7 @@ class ResolverFactory
/**
* Default option resolver class
*/
- const DEFAULT_RESOLVER = 'Magento\Tools\I18n\Dictionary\Options\Resolver';
+ const DEFAULT_RESOLVER = 'Magento\Setup\Module\I18n\Dictionary\Options\Resolver';
/**
* @var string
diff --git a/dev/tools/Magento/Tools/I18n/Dictionary/Options/ResolverInterface.php b/setup/src/Magento/Setup/Module/I18n/Dictionary/Options/ResolverInterface.php
similarity index 82%
rename from dev/tools/Magento/Tools/I18n/Dictionary/Options/ResolverInterface.php
rename to setup/src/Magento/Setup/Module/I18n/Dictionary/Options/ResolverInterface.php
index 932d5efd892d596b6faa1d85a132c40f72d1460c..17d418af1b9c3e61eb8726efb0e42d5eb106166b 100644
--- a/dev/tools/Magento/Tools/I18n/Dictionary/Options/ResolverInterface.php
+++ b/setup/src/Magento/Setup/Module/I18n/Dictionary/Options/ResolverInterface.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Dictionary\Options;
+namespace Magento\Setup\Module\I18n\Dictionary\Options;
/**
* Generator options resolver interface
diff --git a/dev/tools/Magento/Tools/I18n/Dictionary/Phrase.php b/setup/src/Magento/Setup/Module/I18n/Dictionary/Phrase.php
similarity index 98%
rename from dev/tools/Magento/Tools/I18n/Dictionary/Phrase.php
rename to setup/src/Magento/Setup/Module/I18n/Dictionary/Phrase.php
index 1186e1096b44516562815a8533def41a255a6556..011de2e22c01ae7a3414b8e73a28eb54914aecf5 100644
--- a/dev/tools/Magento/Tools/I18n/Dictionary/Phrase.php
+++ b/setup/src/Magento/Setup/Module/I18n/Dictionary/Phrase.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Dictionary;
+namespace Magento\Setup\Module\I18n\Dictionary;
/**
* Phrase
diff --git a/dev/tools/Magento/Tools/I18n/Dictionary/Writer/Csv.php b/setup/src/Magento/Setup/Module/I18n/Dictionary/Writer/Csv.php
similarity index 92%
rename from dev/tools/Magento/Tools/I18n/Dictionary/Writer/Csv.php
rename to setup/src/Magento/Setup/Module/I18n/Dictionary/Writer/Csv.php
index e27da55c58f8e07228d363cad82dca219976a555..b77daa5fd3512e5fac1e0e0defe8e84362d3b088 100644
--- a/dev/tools/Magento/Tools/I18n/Dictionary/Writer/Csv.php
+++ b/setup/src/Magento/Setup/Module/I18n/Dictionary/Writer/Csv.php
@@ -3,10 +3,10 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Dictionary\Writer;
+namespace Magento\Setup\Module\I18n\Dictionary\Writer;
-use Magento\Tools\I18n\Dictionary\Phrase;
-use Magento\Tools\I18n\Dictionary\WriterInterface;
+use Magento\Setup\Module\I18n\Dictionary\Phrase;
+use Magento\Setup\Module\I18n\Dictionary\WriterInterface;
/**
* Csv writer
diff --git a/dev/tools/Magento/Tools/I18n/Dictionary/Writer/Csv/Stdo.php b/setup/src/Magento/Setup/Module/I18n/Dictionary/Writer/Csv/Stdo.php
similarity index 73%
rename from dev/tools/Magento/Tools/I18n/Dictionary/Writer/Csv/Stdo.php
rename to setup/src/Magento/Setup/Module/I18n/Dictionary/Writer/Csv/Stdo.php
index 3a2ed9acb9ba327eeb1371cb4c3a90bf803d7cf0..ffc2d5356231204a60f5a8e858e82fa79306af56 100644
--- a/dev/tools/Magento/Tools/I18n/Dictionary/Writer/Csv/Stdo.php
+++ b/setup/src/Magento/Setup/Module/I18n/Dictionary/Writer/Csv/Stdo.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Dictionary\Writer\Csv;
+namespace Magento\Setup\Module\I18n\Dictionary\Writer\Csv;
-use Magento\Tools\I18n\Dictionary\Writer\Csv;
+use Magento\Setup\Module\I18n\Dictionary\Writer\Csv;
/**
* Stdout writer
diff --git a/dev/tools/Magento/Tools/I18n/Dictionary/WriterInterface.php b/setup/src/Magento/Setup/Module/I18n/Dictionary/WriterInterface.php
similarity index 86%
rename from dev/tools/Magento/Tools/I18n/Dictionary/WriterInterface.php
rename to setup/src/Magento/Setup/Module/I18n/Dictionary/WriterInterface.php
index fe3f82f44f5f8ffa7b4e7947a317bd23fe2e748c..ac9ffade5bf2d5010fb919ad813e9293e23a9145 100644
--- a/dev/tools/Magento/Tools/I18n/Dictionary/WriterInterface.php
+++ b/setup/src/Magento/Setup/Module/I18n/Dictionary/WriterInterface.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Dictionary;
+namespace Magento\Setup\Module\I18n\Dictionary;
/**
* Writer interface
diff --git a/dev/tools/Magento/Tools/I18n/Factory.php b/setup/src/Magento/Setup/Module/I18n/Factory.php
similarity index 84%
rename from dev/tools/Magento/Tools/I18n/Factory.php
rename to setup/src/Magento/Setup/Module/I18n/Factory.php
index 35aec2a076a92b8e0253215e230ea78d20a23163..f6e27614734fc07843a7e258c8c1dc108849e75f 100644
--- a/dev/tools/Magento/Tools/I18n/Factory.php
+++ b/setup/src/Magento/Setup/Module/I18n/Factory.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n;
+namespace Magento\Setup\Module\I18n;
/**
* Abstract Factory
@@ -14,7 +14,7 @@ class Factory
* Create dictionary writer
*
* @param string $filename
- * @return \Magento\Tools\I18n\Dictionary\WriterInterface
+ * @return \Magento\Setup\Module\I18n\Dictionary\WriterInterface
* @throws \InvalidArgumentException
*/
public function createDictionaryWriter($filename = null)
@@ -36,7 +36,7 @@ class Factory
* Create locale
*
* @param string $locale
- * @return \Magento\Tools\I18n\Locale
+ * @return \Magento\Setup\Module\I18n\Locale
*/
public function createLocale($locale)
{
@@ -46,7 +46,7 @@ class Factory
/**
* Create dictionary
*
- * @return \Magento\Tools\I18n\Dictionary
+ * @return \Magento\Setup\Module\I18n\Dictionary
*/
public function createDictionary()
{
@@ -57,7 +57,7 @@ class Factory
* Create Phrase
*
* @param array $data
- * @return \Magento\Tools\I18n\Dictionary\Phrase
+ * @return \Magento\Setup\Module\I18n\Dictionary\Phrase
*/
public function createPhrase(array $data)
{
diff --git a/dev/tools/Magento/Tools/I18n/FilesCollector.php b/setup/src/Magento/Setup/Module/I18n/FilesCollector.php
similarity index 97%
rename from dev/tools/Magento/Tools/I18n/FilesCollector.php
rename to setup/src/Magento/Setup/Module/I18n/FilesCollector.php
index da8684ac0485c567e7bd0f1b2c725df8fb1a433e..3c01889dfd11d4d5b701ad6f3845086e3a02a409 100644
--- a/dev/tools/Magento/Tools/I18n/FilesCollector.php
+++ b/setup/src/Magento/Setup/Module/I18n/FilesCollector.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n;
+namespace Magento\Setup\Module\I18n;
/**
* Files collector
diff --git a/dev/tools/Magento/Tools/I18n/Locale.php b/setup/src/Magento/Setup/Module/I18n/Locale.php
similarity index 96%
rename from dev/tools/Magento/Tools/I18n/Locale.php
rename to setup/src/Magento/Setup/Module/I18n/Locale.php
index a5fca0b75cd9c0efa50118e3261fa737950d0b45..e3bb79e9adb2fd6007dfef92bb711394aa85244e 100644
--- a/dev/tools/Magento/Tools/I18n/Locale.php
+++ b/setup/src/Magento/Setup/Module/I18n/Locale.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n;
+namespace Magento\Setup\Module\I18n;
/**
* Locale
diff --git a/dev/tools/Magento/Tools/I18n/Pack/Generator.php b/setup/src/Magento/Setup/Module/I18n/Pack/Generator.php
similarity index 78%
rename from dev/tools/Magento/Tools/I18n/Pack/Generator.php
rename to setup/src/Magento/Setup/Module/I18n/Pack/Generator.php
index bc257a637ace6c67ebb2fe1575e88915bc7ea9fa..bbc0cecfa9ce6de7bc74c7fae3dd45acf35f8cc7 100644
--- a/dev/tools/Magento/Tools/I18n/Pack/Generator.php
+++ b/setup/src/Magento/Setup/Module/I18n/Pack/Generator.php
@@ -3,11 +3,11 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Pack;
+namespace Magento\Setup\Module\I18n\Pack;
-use Magento\Tools\I18n\Dictionary;
-use Magento\Tools\I18n\Factory;
-use Magento\Tools\I18n\Pack;
+use Magento\Setup\Module\I18n\Dictionary;
+use Magento\Setup\Module\I18n\Factory;
+use Magento\Setup\Module\I18n\Pack;
/**
* Pack generator
@@ -17,30 +17,30 @@ class Generator
/**
* Dictionary loader
*
- * @var \Magento\Tools\I18n\Dictionary\Loader\FileInterface
+ * @var \Magento\Setup\Module\I18n\Dictionary\Loader\FileInterface
*/
protected $dictionaryLoader;
/**
* Pack writer
*
- * @var \Magento\Tools\I18n\Pack\WriterInterface
+ * @var \Magento\Setup\Module\I18n\Pack\WriterInterface
*/
protected $packWriter;
/**
* Domain abstract factory
*
- * @var \Magento\Tools\I18n\Factory
+ * @var \Magento\Setup\Module\I18n\Factory
*/
protected $factory;
/**
* Loader construct
*
- * @param \Magento\Tools\I18n\Dictionary\Loader\FileInterface $dictionaryLoader
- * @param \Magento\Tools\I18n\Pack\WriterInterface $packWriter
- * @param \Magento\Tools\I18n\Factory $factory
+ * @param \Magento\Setup\Module\I18n\Dictionary\Loader\FileInterface $dictionaryLoader
+ * @param \Magento\Setup\Module\I18n\Pack\WriterInterface $packWriter
+ * @param \Magento\Setup\Module\I18n\Factory $factory
*/
public function __construct(
Dictionary\Loader\FileInterface $dictionaryLoader,
@@ -97,7 +97,7 @@ class Generator
{
$error = '';
foreach ($duplicates as $phrases) {
- /** @var \Magento\Tools\I18n\Dictionary\Phrase $phrase */
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Phrase $phrase */
$phrase = $phrases[0];
$error .= sprintf(
"The phrase \"%s\" is translated in %d places.\n",
diff --git a/dev/tools/Magento/Tools/I18n/Pack/Writer/File/AbstractFile.php b/setup/src/Magento/Setup/Module/I18n/Pack/Writer/File/AbstractFile.php
similarity index 86%
rename from dev/tools/Magento/Tools/I18n/Pack/Writer/File/AbstractFile.php
rename to setup/src/Magento/Setup/Module/I18n/Pack/Writer/File/AbstractFile.php
index 98307f0d4dbc900c409b0c973707e9b39347cf8b..599b806f09930500af793a6ba54f965650079624 100644
--- a/dev/tools/Magento/Tools/I18n/Pack/Writer/File/AbstractFile.php
+++ b/setup/src/Magento/Setup/Module/I18n/Pack/Writer/File/AbstractFile.php
@@ -3,13 +3,13 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Pack\Writer\File;
+namespace Magento\Setup\Module\I18n\Pack\Writer\File;
-use Magento\Tools\I18n\Context;
-use Magento\Tools\I18n\Dictionary;
-use Magento\Tools\I18n\Factory;
-use Magento\Tools\I18n\Locale;
-use Magento\Tools\I18n\Pack\WriterInterface;
+use Magento\Setup\Module\I18n\Context;
+use Magento\Setup\Module\I18n\Dictionary;
+use Magento\Setup\Module\I18n\Factory;
+use Magento\Setup\Module\I18n\Locale;
+use Magento\Setup\Module\I18n\Pack\WriterInterface;
/**
* Abstract pack writer
@@ -19,21 +19,21 @@ abstract class AbstractFile implements WriterInterface
/**
* Context
*
- * @var \Magento\Tools\I18n\Context
+ * @var \Magento\Setup\Module\I18n\Context
*/
protected $_context;
/**
* Dictionary loader. This object is need for read dictionary for merge mode
*
- * @var \Magento\Tools\I18n\Dictionary\Loader\FileInterface
+ * @var \Magento\Setup\Module\I18n\Dictionary\Loader\FileInterface
*/
protected $_dictionaryLoader;
/**
* Domain abstract factory
*
- * @var \Magento\Tools\I18n\Factory
+ * @var \Magento\Setup\Module\I18n\Factory
*/
protected $_factory;
@@ -47,7 +47,7 @@ abstract class AbstractFile implements WriterInterface
/**
* Locale
*
- * @var \Magento\Tools\I18n\Locale
+ * @var \Magento\Setup\Module\I18n\Locale
*/
protected $_locale;
@@ -112,7 +112,7 @@ abstract class AbstractFile implements WriterInterface
throw new \RuntimeException(
sprintf('Missed context in row #%d.', $key + 1)
. "\n"
- . 'Each row has to consist of 3 columns: original phrase, translation, context'
+ . 'Each row has to consist of 4 columns: original phrase, translation, context type, context value'
);
}
foreach ($phrase->getContextValue() as $context) {
diff --git a/dev/tools/Magento/Tools/I18n/Pack/Writer/File/Csv.php b/setup/src/Magento/Setup/Module/I18n/Pack/Writer/File/Csv.php
similarity index 87%
rename from dev/tools/Magento/Tools/I18n/Pack/Writer/File/Csv.php
rename to setup/src/Magento/Setup/Module/I18n/Pack/Writer/File/Csv.php
index 7889cb8eefc96348015a99e07417e1eab417d4e9..2e799f09b25c5c258f3513e8f39ef1053d7ddcd2 100644
--- a/dev/tools/Magento/Tools/I18n/Pack/Writer/File/Csv.php
+++ b/setup/src/Magento/Setup/Module/I18n/Pack/Writer/File/Csv.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Pack\Writer\File;
+namespace Magento\Setup\Module\I18n\Pack\Writer\File;
/**
* Pack writer csv
@@ -25,7 +25,7 @@ class Csv extends AbstractFile
}
$writer = $this->_factory->createDictionaryWriter($file);
- /** @var \Magento\Tools\I18n\Dictionary\Phrase $phrase */
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Phrase $phrase */
foreach ($phrases as $phrase) {
$phrase->setContextType(null);
$phrase->setContextValue(null);
@@ -52,7 +52,7 @@ class Csv extends AbstractFile
foreach ($dictionary->getPhrases() as $phrase) {
$merged[$phrase->getPhrase()] = $phrase;
}
- /** @var \Magento\Tools\I18n\Dictionary\Phrase $phrase */
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Phrase $phrase */
foreach ($phrases as $phrase) {
$merged[$phrase->getPhrase()] = $phrase;
}
diff --git a/dev/tools/Magento/Tools/I18n/Pack/WriterInterface.php b/setup/src/Magento/Setup/Module/I18n/Pack/WriterInterface.php
similarity index 70%
rename from dev/tools/Magento/Tools/I18n/Pack/WriterInterface.php
rename to setup/src/Magento/Setup/Module/I18n/Pack/WriterInterface.php
index eda2715b1f0df3a67a7d3962958751ad17d92400..19159add87aeca0b17f2207ad2b47079faa733fa 100644
--- a/dev/tools/Magento/Tools/I18n/Pack/WriterInterface.php
+++ b/setup/src/Magento/Setup/Module/I18n/Pack/WriterInterface.php
@@ -3,10 +3,10 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Pack;
+namespace Magento\Setup\Module\I18n\Pack;
-use Magento\Tools\I18n\Dictionary;
-use Magento\Tools\I18n\Locale;
+use Magento\Setup\Module\I18n\Dictionary;
+use Magento\Setup\Module\I18n\Locale;
/**
* Pack writer interface
@@ -25,9 +25,9 @@ interface WriterInterface
/**
* Write dictionary data to language pack
*
- * @param \Magento\Tools\I18n\Dictionary $dictionary
+ * @param \Magento\Setup\Module\I18n\Dictionary $dictionary
* @param string $packPath
- * @param \Magento\Tools\I18n\Locale $locale
+ * @param \Magento\Setup\Module\I18n\Locale $locale
* @param string $mode One of const of WriterInterface::MODE_
* @return void
*/
diff --git a/dev/tools/Magento/Tools/I18n/Parser/AbstractParser.php b/setup/src/Magento/Setup/Module/I18n/Parser/AbstractParser.php
similarity index 92%
rename from dev/tools/Magento/Tools/I18n/Parser/AbstractParser.php
rename to setup/src/Magento/Setup/Module/I18n/Parser/AbstractParser.php
index 9ee0c24ac2787ce6c9a47ccd7cd8184221318f29..3c38c17e1656a464058110a4bec513c067562a89 100644
--- a/dev/tools/Magento/Tools/I18n/Parser/AbstractParser.php
+++ b/setup/src/Magento/Setup/Module/I18n/Parser/AbstractParser.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Parser;
+namespace Magento\Setup\Module\I18n\Parser;
-use Magento\Tools\I18n;
+use Magento\Setup\Module\I18n;
/**
* Abstract parser
@@ -15,21 +15,21 @@ abstract class AbstractParser implements I18n\ParserInterface
/**
* Files collector
*
- * @var \Magento\Tools\I18n\FilesCollector
+ * @var \Magento\Setup\Module\I18n\FilesCollector
*/
protected $_filesCollector = [];
/**
* Domain abstract factory
*
- * @var \Magento\Tools\I18n\Factory
+ * @var \Magento\Setup\Module\I18n\Factory
*/
protected $_factory;
/**
* Adapters
*
- * @var \Magento\Tools\I18n\Parser\AdapterInterface[]
+ * @var \Magento\Setup\Module\I18n\Parser\AdapterInterface[]
*/
protected $_adapters = [];
diff --git a/dev/tools/Magento/Tools/I18n/Parser/Adapter/AbstractAdapter.php b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/AbstractAdapter.php
similarity index 94%
rename from dev/tools/Magento/Tools/I18n/Parser/Adapter/AbstractAdapter.php
rename to setup/src/Magento/Setup/Module/I18n/Parser/Adapter/AbstractAdapter.php
index 1b10e7b06282359b54c88ff274f5a14ca60f46db..3faf4f513bcb2124ac139d46b415c7d87fedd001 100644
--- a/dev/tools/Magento/Tools/I18n/Parser/Adapter/AbstractAdapter.php
+++ b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/AbstractAdapter.php
@@ -3,10 +3,10 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Parser\Adapter;
+namespace Magento\Setup\Module\I18n\Parser\Adapter;
-use Magento\Tools\I18n\Dictionary\Phrase;
-use Magento\Tools\I18n\Parser\AdapterInterface;
+use Magento\Setup\Module\I18n\Dictionary\Phrase;
+use Magento\Setup\Module\I18n\Parser\AdapterInterface;
/**
* Abstract parser adapter
diff --git a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Js.php b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Js.php
similarity index 94%
rename from dev/tools/Magento/Tools/I18n/Parser/Adapter/Js.php
rename to setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Js.php
index 5db512b0d1dc914cde9ec0308b1b811571b98ddc..98b45bf38541f952ccfd5bd9a37d7aa638e9ccd8 100644
--- a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Js.php
+++ b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Js.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Parser\Adapter;
+namespace Magento\Setup\Module\I18n\Parser\Adapter;
/**
* Js parser adapter
diff --git a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Php.php b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php.php
similarity index 70%
rename from dev/tools/Magento/Tools/I18n/Parser/Adapter/Php.php
rename to setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php.php
index fa9af6e339496c263464bff74663be2050907aa5..7164a871b85834c83be44c63383ce85e273128b0 100644
--- a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Php.php
+++ b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Parser\Adapter;
+namespace Magento\Setup\Module\I18n\Parser\Adapter;
-use Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector;
+use Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector;
/**
* Php parser adapter
@@ -15,14 +15,14 @@ class Php extends AbstractAdapter
/**
* Phrase collector
*
- * @var \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector
+ * @var \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector
*/
protected $_phraseCollector;
/**
* Adapter construct
*
- * @param \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector $phraseCollector
+ * @param \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector $phraseCollector
*/
public function __construct(PhraseCollector $phraseCollector)
{
diff --git a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Php/Tokenizer.php b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer.php
similarity index 93%
rename from dev/tools/Magento/Tools/I18n/Parser/Adapter/Php/Tokenizer.php
rename to setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer.php
index 84c0f1bde5ffea3bb8ccb7d0dfa82fb52cc7f0d3..a59845bdd8f9a603c56b82a8d066945a780d71fa 100644
--- a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Php/Tokenizer.php
+++ b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Parser\Adapter\Php;
+namespace Magento\Setup\Module\I18n\Parser\Adapter\Php;
/**
* Tokenizer
@@ -158,7 +158,7 @@ class Tokenizer
/**
* Get current token
*
- * @return \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token
+ * @return \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token
*/
public function getCurrentToken()
{
@@ -168,7 +168,7 @@ class Tokenizer
/**
* Get next token
*
- * @return bool|\Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token
+ * @return bool|\Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token
*/
public function getNextToken()
{
@@ -178,7 +178,7 @@ class Tokenizer
/**
* Get next token skipping all whitespaces
*
- * @return \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token|false
+ * @return \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token|false
*/
public function getNextRealToken()
{
@@ -202,7 +202,7 @@ class Tokenizer
* Create token from array|string
*
* @param array|string $tokenData
- * @return \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token
+ * @return \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token
*/
private function _createToken($tokenData)
{
diff --git a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollector.php b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollector.php
similarity index 93%
rename from dev/tools/Magento/Tools/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollector.php
rename to setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollector.php
index 297177e1071c7a2eea19118382e9ffef9a5ec97a..ee7ecd15e0c5fdc8ed9f24c2eb4a3092dffe0371 100644
--- a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollector.php
+++ b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollector.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer;
+namespace Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer;
-use Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer;
+use Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer;
/**
* PhraseCollector
@@ -13,7 +13,7 @@ use Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer;
class PhraseCollector
{
/**
- * @var \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer
+ * @var \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer
*/
protected $_tokenizer;
@@ -137,7 +137,7 @@ class PhraseCollector
{
$phrase = [];
if ($phraseTokens) {
- /** @var \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token $phraseToken */
+ /** @var \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token $phraseToken */
foreach ($phraseTokens as $phraseToken) {
if ($phraseToken->isConstantEncapsedString()) {
$phrase[] = $phraseToken->getValue();
diff --git a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Php/Tokenizer/Token.php b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/Token.php
similarity index 97%
rename from dev/tools/Magento/Tools/I18n/Parser/Adapter/Php/Tokenizer/Token.php
rename to setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/Token.php
index 3aa9091008b5f5c163b2f2ab09e4cb4cb2c5eb40..a36b8b1e885307150ba4ef9d95ccd8381bfd2137 100644
--- a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Php/Tokenizer/Token.php
+++ b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/Token.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer;
+namespace Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer;
/**
* Token
diff --git a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Php/Tokenizer/Translate/MethodCollector.php b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/Translate/MethodCollector.php
similarity index 83%
rename from dev/tools/Magento/Tools/I18n/Parser/Adapter/Php/Tokenizer/Translate/MethodCollector.php
rename to setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/Translate/MethodCollector.php
index dffc693d299dc6af8304e3c230e7087aa87741b9..6bd31c61b83f500c37dc48e50f474832fe2684d5 100644
--- a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Php/Tokenizer/Translate/MethodCollector.php
+++ b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Php/Tokenizer/Translate/MethodCollector.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Translate;
+namespace Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Translate;
-use Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector;
+use Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector;
/**
* MethodCollector
@@ -33,7 +33,7 @@ class MethodCollector extends PhraseCollector
/**
* Check if token is translated function
*
- * @param \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token $token
+ * @param \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token $token
* @return bool
*/
protected function _isTranslateFunction($token)
diff --git a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Xml.php b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Xml.php
similarity index 96%
rename from dev/tools/Magento/Tools/I18n/Parser/Adapter/Xml.php
rename to setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Xml.php
index df7d5f5ba57d901fc4c8b25d8585717355ed8e28..dd20f551d553560fdbd42dd77b870926970c98b6 100644
--- a/dev/tools/Magento/Tools/I18n/Parser/Adapter/Xml.php
+++ b/setup/src/Magento/Setup/Module/I18n/Parser/Adapter/Xml.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Parser\Adapter;
+namespace Magento\Setup\Module\I18n\Parser\Adapter;
/**
* Xml parser adapter
diff --git a/dev/tools/Magento/Tools/I18n/Parser/AdapterInterface.php b/setup/src/Magento/Setup/Module/I18n/Parser/AdapterInterface.php
similarity index 89%
rename from dev/tools/Magento/Tools/I18n/Parser/AdapterInterface.php
rename to setup/src/Magento/Setup/Module/I18n/Parser/AdapterInterface.php
index 30b31f2805da70bc55a3b6267980cabf6b629ba1..5621552a72090afbd636127f1e7843ce0a81c254 100644
--- a/dev/tools/Magento/Tools/I18n/Parser/AdapterInterface.php
+++ b/setup/src/Magento/Setup/Module/I18n/Parser/AdapterInterface.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Parser;
+namespace Magento\Setup\Module\I18n\Parser;
/**
* Adapter Interface
diff --git a/dev/tools/Magento/Tools/I18n/Parser/Contextual.php b/setup/src/Magento/Setup/Module/I18n/Parser/Contextual.php
similarity index 91%
rename from dev/tools/Magento/Tools/I18n/Parser/Contextual.php
rename to setup/src/Magento/Setup/Module/I18n/Parser/Contextual.php
index 8d6987f146541be38e7cc50845d66c28b9025c6d..1642f3b1683c04a3a50586226a5f873c27c43d02 100644
--- a/dev/tools/Magento/Tools/I18n/Parser/Contextual.php
+++ b/setup/src/Magento/Setup/Module/I18n/Parser/Contextual.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Parser;
+namespace Magento\Setup\Module\I18n\Parser;
-use Magento\Tools\I18n;
+use Magento\Setup\Module\I18n;
/**
* Contextual Parser
@@ -15,7 +15,7 @@ class Contextual extends AbstractParser
/**
* Context
*
- * @var \Magento\Tools\I18n\Context
+ * @var \Magento\Setup\Module\I18n\Context
*/
protected $_context;
@@ -66,7 +66,7 @@ class Contextual extends AbstractParser
$phraseKey = $contextType . $phraseData['phrase'];
if (isset($this->_phrases[$phraseKey])) {
- /** @var \Magento\Tools\I18n\Dictionary\Phrase $phrase */
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Phrase $phrase */
$phrase = $this->_phrases[$phraseKey];
$phrase->addContextValue($contextValue);
} else {
diff --git a/dev/tools/Magento/Tools/I18n/Parser/Parser.php b/setup/src/Magento/Setup/Module/I18n/Parser/Parser.php
similarity index 95%
rename from dev/tools/Magento/Tools/I18n/Parser/Parser.php
rename to setup/src/Magento/Setup/Module/I18n/Parser/Parser.php
index e125c2734b95d59320fe11d21c7c5edca369acab..5766154cd9196908d6ec6430a8b9a0a69a206cfc 100644
--- a/dev/tools/Magento/Tools/I18n/Parser/Parser.php
+++ b/setup/src/Magento/Setup/Module/I18n/Parser/Parser.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Parser;
+namespace Magento\Setup\Module\I18n\Parser;
/**
* Parser
diff --git a/dev/tools/Magento/Tools/I18n/ParserInterface.php b/setup/src/Magento/Setup/Module/I18n/ParserInterface.php
similarity index 92%
rename from dev/tools/Magento/Tools/I18n/ParserInterface.php
rename to setup/src/Magento/Setup/Module/I18n/ParserInterface.php
index 038cfc22475db1a113ffa4570f339b061a9635b9..026542170d9f4a65c82a8faa09cc650030adb9b2 100644
--- a/dev/tools/Magento/Tools/I18n/ParserInterface.php
+++ b/setup/src/Magento/Setup/Module/I18n/ParserInterface.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n;
+namespace Magento\Setup\Module\I18n;
/**
* Parser Interface
diff --git a/dev/tools/Magento/Tools/I18n/ServiceLocator.php b/setup/src/Magento/Setup/Module/I18n/ServiceLocator.php
similarity index 83%
rename from dev/tools/Magento/Tools/I18n/ServiceLocator.php
rename to setup/src/Magento/Setup/Module/I18n/ServiceLocator.php
index 021493b0155b1c5802cf1878330998b6bc0ab8b6..cbbbc7fed9f974dec1be8506198ab52227684566 100644
--- a/dev/tools/Magento/Tools/I18n/ServiceLocator.php
+++ b/setup/src/Magento/Setup/Module/I18n/ServiceLocator.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n;
+namespace Magento\Setup\Module\I18n;
/**
@@ -15,35 +15,35 @@ class ServiceLocator
/**
* Domain abstract factory
*
- * @var \Magento\Tools\I18n\Factory
+ * @var \Magento\Setup\Module\I18n\Factory
*/
private static $_factory;
/**
* Context manager
*
- * @var \Magento\Tools\I18n\Factory
+ * @var \Magento\Setup\Module\I18n\Factory
*/
private static $_context;
/**
* Dictionary generator
*
- * @var \Magento\Tools\I18n\Dictionary\Generator
+ * @var \Magento\Setup\Module\I18n\Dictionary\Generator
*/
private static $_dictionaryGenerator;
/**
* Pack generator
*
- * @var \Magento\Tools\I18n\Pack\Generator
+ * @var \Magento\Setup\Module\I18n\Pack\Generator
*/
private static $_packGenerator;
/**
* Get dictionary generator
*
- * @return \Magento\Tools\I18n\Dictionary\Generator
+ * @return \Magento\Setup\Module\I18n\Dictionary\Generator
*/
public static function getDictionaryGenerator()
{
@@ -77,7 +77,7 @@ class ServiceLocator
/**
* Get pack generator
*
- * @return \Magento\Tools\I18n\Pack\Generator
+ * @return \Magento\Setup\Module\I18n\Pack\Generator
*/
public static function getPackGenerator()
{
@@ -93,12 +93,12 @@ class ServiceLocator
/**
* Get factory
*
- * @return \Magento\Tools\I18n\Factory
+ * @return \Magento\Setup\Module\I18n\Factory
*/
private static function _getFactory()
{
if (null === self::$_factory) {
- self::$_factory = new \Magento\Tools\I18n\Factory();
+ self::$_factory = new \Magento\Setup\Module\I18n\Factory();
}
return self::$_factory;
}
@@ -106,7 +106,7 @@ class ServiceLocator
/**
* Get context
*
- * @return \Magento\Tools\I18n\Context
+ * @return \Magento\Setup\Module\I18n\Context
*/
private static function _getContext()
{
diff --git a/setup/src/Magento/Setup/Test/Unit/Console/Command/DeployStaticContentCommandTest.php b/setup/src/Magento/Setup/Test/Unit/Console/Command/DeployStaticContentCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..9f8d24d51667c62a7d37b3bedce1bf53124617a0
--- /dev/null
+++ b/setup/src/Magento/Setup/Test/Unit/Console/Command/DeployStaticContentCommandTest.php
@@ -0,0 +1,109 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Setup\Test\Unit\Console\Command;
+
+use Magento\Setup\Console\Command\DeployStaticContentCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class DeployStaticContentCommandTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @var \Magento\Framework\App\DeploymentConfig|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $deploymentConfig;
+
+ /**
+ * @var \Magento\Setup\Model\ObjectManagerProvider|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $objectManagerProvider;
+
+ /**
+ * @var \Magento\Setup\Model\Deployer|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $deployer;
+
+ /**
+ * @var \Magento\Framework\ObjectManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $objectManager;
+
+ /**
+ * @var \Magento\Framework\App\Utility\Files|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $filesUtil;
+
+ /**
+ * @var DeployStaticContentCommand
+ */
+ private $command;
+
+ protected function setUp()
+ {
+ $this->objectManagerProvider = $this->getMock('Magento\Setup\Model\ObjectManagerProvider', [], [], '', false);
+ $this->objectManager = $this->getMockForAbstractClass('Magento\Framework\ObjectManagerInterface');
+ $this->deployer = $this->getMock('Magento\Setup\Model\Deployer', [], [], '', false);
+ $this->deploymentConfig = $this->getMock('Magento\Framework\App\DeploymentConfig', [], [], '', false);
+ $this->filesUtil = $this->getMock('Magento\Framework\App\Utility\Files', [], [], '', false);
+ $this->command = new DeployStaticContentCommand($this->objectManagerProvider, $this->deploymentConfig);
+ }
+
+ public function testExecute()
+ {
+ $omFactory = $this->getMock('Magento\Framework\App\ObjectManagerFactory', [], [], '', false);
+ $this->objectManagerProvider->expects($this->any())
+ ->method('get')
+ ->will($this->returnValue($this->objectManager));
+
+ $this->objectManagerProvider->expects($this->once())
+ ->method('getObjectManagerFactory')
+ ->with([])
+ ->willReturn($omFactory);
+
+ $this->deployer->expects($this->once())->method('deploy');
+
+ $this->objectManager->expects($this->at(0))
+ ->method('create')
+ ->willReturn($this->filesUtil);
+
+ $this->objectManager->expects($this->at(1))
+ ->method('create')
+ ->willReturn($this->deployer);
+
+ $this->deploymentConfig->expects($this->once())
+ ->method('isAvailable')
+ ->will($this->returnValue(true));
+ $tester = new CommandTester($this->command);
+ $tester->execute([]);
+ }
+
+ public function testExecuteNotInstalled()
+ {
+ $this->deploymentConfig->expects($this->once())
+ ->method('isAvailable')
+ ->will($this->returnValue(false));
+ $this->objectManagerProvider->expects($this->never())->method('get');
+ $tester = new CommandTester($this->command);
+ $tester->execute([]);
+ $this->assertStringMatchesFormat(
+ 'You need to install the Magento application before running this utility.%w',
+ $tester->getDisplay()
+ );
+ }
+
+ /**
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage ARG_IS_WRONG argument has invalid value format
+ */
+ public function testExecuteInvalidLanguageArgument()
+ {
+ $this->deploymentConfig->expects($this->once())
+ ->method('isAvailable')
+ ->will($this->returnValue(true));
+ $wrongParam = ['languages' => ['ARG_IS_WRONG']];
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute($wrongParam);
+ }
+}
diff --git a/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..b2c5e9a65254d11e3eb2a18f778a9276c022aed1
--- /dev/null
+++ b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
@@ -0,0 +1,85 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Setup\Test\Unit\Console\Command;
+
+use Magento\Setup\Console\Command\DiCompileCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+
+class DiCompileCommandTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @var \Magento\Framework\App\DeploymentConfig|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $deploymentConfig;
+
+ /**
+ * @var \Magento\Setup\Module\Di\App\Task\Manager|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $manager;
+
+ /**
+ * @var \Magento\Framework\ObjectManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+ */
+ private $objectManager;
+
+ /**
+ * @var DiCompileCommand
+ */
+ private $command;
+
+ public function setUp()
+ {
+ $this->deploymentConfig = $this->getMock('Magento\Framework\App\DeploymentConfig', [], [], '', false);
+ $objectManagerProvider = $this->getMock(
+ 'Magento\Setup\Model\ObjectManagerProvider',
+ [],
+ [],
+ '',
+ false
+ );
+ $this->objectManager = $this->getMockForAbstractClass(
+ 'Magento\Framework\ObjectManagerInterface',
+ [],
+ '',
+ false
+ );
+ $objectManagerProvider->expects($this->once())->method('get')->willReturn($this->objectManager);
+ $this->manager = $this->getMock('Magento\Setup\Module\Di\App\Task\Manager', [], [], '', false);
+ $directoryList = $this->getMock('Magento\Framework\App\Filesystem\DirectoryList', [], [], '', false);
+ $directoryList->expects($this->exactly(3))->method('getPath');
+ $this->command = new DiCompileCommand(
+ $this->deploymentConfig,
+ $directoryList,
+ $this->manager,
+ $objectManagerProvider
+ );
+ }
+
+ public function testExecuteNotInstalled()
+ {
+ $this->deploymentConfig->expects($this->once())->method('isAvailable')->willReturn(false);
+ $tester = new CommandTester($this->command);
+ $tester->execute([]);
+ $this->assertEquals(
+ 'You cannot run this command because the Magento application is not installed.' . PHP_EOL,
+ $tester->getDisplay()
+ );
+ }
+
+ public function testExecute()
+ {
+ $this->deploymentConfig->expects($this->once())->method('isAvailable')->willReturn(true);
+ $this->objectManager->expects($this->once())->method('configure');
+ $this->manager->expects($this->exactly(5))->method('addOperation');
+ $this->manager->expects($this->once())->method('process');
+ $tester = new CommandTester($this->command);
+ $tester->execute([]);
+ $this->assertEquals(
+ 'Generated code and dependency injection configuration successfully.' . PHP_EOL,
+ $tester->getDisplay()
+ );
+ }
+}
diff --git a/setup/src/Magento/Setup/Test/Unit/Console/CommandListTest.php b/setup/src/Magento/Setup/Test/Unit/Console/CommandListTest.php
index 39e78dc660683bd3b555ed6553dfc9e09f591c63..65d1fa6db2ad81617ea7952cf5eff63f678bd5c9 100644
--- a/setup/src/Magento/Setup/Test/Unit/Console/CommandListTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Console/CommandListTest.php
@@ -28,33 +28,8 @@ class CommandListTest extends \PHPUnit_Framework_TestCase
public function testGetCommands()
{
- $commands = [
- 'Magento\Setup\Console\Command\AdminUserCreateCommand',
- 'Magento\Setup\Console\Command\ConfigSetCommand',
- 'Magento\Setup\Console\Command\DbDataUpgradeCommand',
- 'Magento\Setup\Console\Command\DbSchemaUpgradeCommand',
- 'Magento\Setup\Console\Command\DbStatusCommand',
- 'Magento\Setup\Console\Command\InfoCurrencyListCommand',
- 'Magento\Setup\Console\Command\InfoLanguageListCommand',
- 'Magento\Setup\Console\Command\InfoTimezoneListCommand',
- 'Magento\Setup\Console\Command\InstallCommand',
- 'Magento\Setup\Console\Command\InstallStoreConfigurationCommand',
- 'Magento\Setup\Console\Command\ModuleEnableCommand',
- 'Magento\Setup\Console\Command\ModuleDisableCommand',
- 'Magento\Setup\Console\Command\ModuleStatusCommand',
- 'Magento\Setup\Console\Command\MaintenanceAllowIpsCommand',
- 'Magento\Setup\Console\Command\MaintenanceDisableCommand',
- 'Magento\Setup\Console\Command\MaintenanceEnableCommand',
- 'Magento\Setup\Console\Command\MaintenanceStatusCommand',
- 'Magento\Setup\Console\Command\UpgradeCommand',
- 'Magento\Setup\Console\Command\UninstallCommand',
- ];
- $index = 0;
- foreach ($commands as $command) {
- $this->serviceManager->expects($this->at($index++))
- ->method('create')
- ->with($command);
- }
+ $this->serviceManager->expects($this->atLeastOnce())
+ ->method('create');
$this->commandList->getCommands();
}
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/App/Task/AreaTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/AreaTest.php
similarity index 81%
rename from dev/tools/Magento/Tools/Di/Test/Unit/App/Task/AreaTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/AreaTest.php
index c55f63e8ab9cefa9dc2ed4d3d64bc812b8c11c4d..f4a83fd3a97acfdfe3f08be0ce55ce51b4bc13ac 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/App/Task/AreaTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/AreaTest.php
@@ -3,13 +3,11 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\App\Task;
+namespace Magento\Setup\Test\Unit\Module\Di\App\Task;
use Magento\Framework\App;
-use Magento\Tools\Di\App\Task\Operation\Area;
-use Magento\Tools\Di\Code\Reader\ClassesScanner;
-use Magento\Tools\Di\Compiler\Config;
-use Magento\Tools\Di\Definition\Collection as DefinitionsCollection;
+use Magento\Setup\Module\Di\App\Task\Operation\Area;
+use Magento\Setup\Module\Di\Compiler\Config;
class AreaTest extends \PHPUnit_Framework_TestCase
{
@@ -19,7 +17,7 @@ class AreaTest extends \PHPUnit_Framework_TestCase
private $areaListMock;
/**
- * @var \Magento\Tools\Di\Code\Reader\Decorator\Area | \PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\Di\Code\Reader\Decorator\Area | \PHPUnit_Framework_MockObject_MockObject
*/
private $areaInstancesNamesList;
@@ -34,7 +32,7 @@ class AreaTest extends \PHPUnit_Framework_TestCase
private $configWriterMock;
/**
- * @var \Magento\Tools\Di\Compiler\Config\ModificationChain | \PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\Di\Compiler\Config\ModificationChain | \PHPUnit_Framework_MockObject_MockObject
*/
private $configChain;
@@ -43,16 +41,16 @@ class AreaTest extends \PHPUnit_Framework_TestCase
$this->areaListMock = $this->getMockBuilder('Magento\Framework\App\AreaList')
->disableOriginalConstructor()
->getMock();
- $this->areaInstancesNamesList = $this->getMockBuilder('\Magento\Tools\Di\Code\Reader\Decorator\Area')
+ $this->areaInstancesNamesList = $this->getMockBuilder('\Magento\Setup\Module\Di\Code\Reader\Decorator\Area')
->disableOriginalConstructor()
->getMock();
- $this->configReaderMock = $this->getMockBuilder('Magento\Tools\Di\Compiler\Config\Reader')
+ $this->configReaderMock = $this->getMockBuilder('Magento\Setup\Module\Di\Compiler\Config\Reader')
->disableOriginalConstructor()
->getMock();
- $this->configWriterMock = $this->getMockBuilder('Magento\Tools\Di\Compiler\Config\WriterInterface')
+ $this->configWriterMock = $this->getMockBuilder('Magento\Setup\Module\Di\Compiler\Config\WriterInterface')
->disableOriginalConstructor()
->getMock();
- $this->configChain = $this->getMockBuilder('Magento\Tools\Di\Compiler\Config\ModificationChain')
+ $this->configChain = $this->getMockBuilder('Magento\Setup\Module\Di\Compiler\Config\ModificationChain')
->disableOriginalConstructor()
->getMock();
}
@@ -99,7 +97,7 @@ class AreaTest extends \PHPUnit_Framework_TestCase
$this->configReaderMock->expects($this->once())
->method('generateCachePerScope')
->with(
- $this->isInstanceOf('Magento\Tools\Di\Definition\Collection'),
+ $this->isInstanceOf('Magento\Setup\Module\Di\Definition\Collection'),
App\Area::AREA_GLOBAL
)
->willReturn($generatedConfig);
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/App/Task/InterceptionCacheTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/InterceptionCacheTest.php
similarity index 89%
rename from dev/tools/Magento/Tools/Di/Test/Unit/App/Task/InterceptionCacheTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/InterceptionCacheTest.php
index 9d86c20b3b38195b16344fe00cec12b97d2c6ee8..a60932145180e39b0896a32146b9fbd62c1b6225 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/App/Task/InterceptionCacheTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/InterceptionCacheTest.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\App\Task;
+namespace Magento\Setup\Test\Unit\Module\Di\App\Task;
-use Magento\Tools\Di\App\Task\Operation\InterceptionCache;
+use Magento\Setup\Module\Di\App\Task\Operation\InterceptionCache;
class InterceptionCacheTest extends \PHPUnit_Framework_TestCase
{
@@ -15,7 +15,7 @@ class InterceptionCacheTest extends \PHPUnit_Framework_TestCase
private $configMock;
/**
- * @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Tools\Di\Code\Reader\Decorator\Interceptions
+ * @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Setup\Module\Di\Code\Reader\Decorator\Interceptions
*/
private $interceptionsListMock;
@@ -26,7 +26,7 @@ class InterceptionCacheTest extends \PHPUnit_Framework_TestCase
->disableOriginalConstructor()
->getMock();
$this->interceptionsListMock = $this->getMockBuilder(
- 'Magento\Tools\Di\Code\Reader\Decorator\Interceptions'
+ 'Magento\Setup\Module\Di\Code\Reader\Decorator\Interceptions'
)
->setMethods([])
->disableOriginalConstructor()
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/App/Task/OperationFactoryTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/OperationFactoryTest.php
similarity index 65%
rename from dev/tools/Magento/Tools/Di/Test/Unit/App/Task/OperationFactoryTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/OperationFactoryTest.php
index 0e9645a97822480eb1a9168f57b66257964a1793..9acc4b3cfdf35b66018b7edb0777b31031a56986 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/App/Task/OperationFactoryTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/OperationFactoryTest.php
@@ -6,10 +6,10 @@
// @codingStandardsIgnoreFile
-namespace Magento\Tools\Di\Test\Unit\App\Task;
+namespace Magento\Setup\Test\Unit\Module\Di\App\Task;
-use Magento\Tools\Di\App\Task\OperationFactory;
-use Magento\Tools\Di\App\Task\OperationException;
+use Magento\Setup\Module\Di\App\Task\OperationFactory;
+use Magento\Setup\Module\Di\App\Task\OperationException;
class OperationFactoryTest extends \PHPUnit_Framework_TestCase
{
@@ -28,8 +28,10 @@ class OperationFactoryTest extends \PHPUnit_Framework_TestCase
$this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManagerInterface')
->setMethods([])
->getMock();
+ $objectManagerProviderMock = $this->getMock('Magento\Setup\Model\ObjectManagerProvider', [], [], '', false);
+ $objectManagerProviderMock->expects($this->once())->method('get')->willReturn($this->objectManagerMock);
$this->factory = new OperationFactory(
- $this->objectManagerMock
+ $objectManagerProviderMock
);
}
@@ -40,7 +42,7 @@ class OperationFactoryTest extends \PHPUnit_Framework_TestCase
*/
public function testCreateSuccess($alias, $arguments, $instanceName)
{
- $operationInstance = $this->getMockBuilder('Magento\Tools\Di\App\Task\OperationInterface')
+ $operationInstance = $this->getMockBuilder('Magento\Setup\Module\Di\App\Task\OperationInterface')
->getMock();
$this->objectManagerMock->expects($this->once())
@@ -55,7 +57,7 @@ class OperationFactoryTest extends \PHPUnit_Framework_TestCase
{
$notRegisteredOperation = 'coffee';
$this->setExpectedException(
- 'Magento\Tools\Di\App\Task\OperationException',
+ 'Magento\Setup\Module\Di\App\Task\OperationException',
sprintf('Unrecognized operation "%s"', $notRegisteredOperation),
OperationException::UNAVAILABLE_OPERATION
);
@@ -68,9 +70,9 @@ class OperationFactoryTest extends \PHPUnit_Framework_TestCase
public function aliasesDataProvider()
{
return [
- [OperationFactory::AREA_CONFIG_GENERATOR, [], 'Magento\Tools\Di\App\Task\Operation\Area'],
- [OperationFactory::INTERCEPTION, null, 'Magento\Tools\Di\App\Task\Operation\Interception'],
- [OperationFactory::INTERCEPTION_CACHE, 1, 'Magento\Tools\Di\App\Task\Operation\InterceptionCache'],
+ [OperationFactory::AREA_CONFIG_GENERATOR, [], 'Magento\Setup\Module\Di\App\Task\Operation\Area'],
+ [OperationFactory::INTERCEPTION, null, 'Magento\Setup\Module\Di\App\Task\Operation\Interception'],
+ [OperationFactory::INTERCEPTION_CACHE, 1, 'Magento\Setup\Module\Di\App\Task\Operation\InterceptionCache'],
];
}
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/App/Task/RepositoryGeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/RepositoryGeneratorTest.php
similarity index 88%
rename from dev/tools/Magento/Tools/Di/Test/Unit/App/Task/RepositoryGeneratorTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/RepositoryGeneratorTest.php
index 37ec47ce228e737092040de57d9575972d2b16c2..0b2b5310c67b2e57fd168ec618b3626397cce02e 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/App/Task/RepositoryGeneratorTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/RepositoryGeneratorTest.php
@@ -4,11 +4,11 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\App\Task;
+namespace Magento\Setup\Test\Unit\Module\Di\App\Task;
-use Magento\Tools\Di\App\Task\Operation\RepositoryGenerator;
-use Magento\Tools\Di\Code\Scanner;
-use Magento\Tools\Di\Code\Reader\ClassesScanner;
+use Magento\Setup\Module\Di\App\Task\Operation\RepositoryGenerator;
+use Magento\Setup\Module\Di\Code\Scanner;
+use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
class RepositoryGeneratorTest extends \PHPUnit_Framework_TestCase
{
@@ -29,15 +29,15 @@ class RepositoryGeneratorTest extends \PHPUnit_Framework_TestCase
protected function setUp()
{
- $this->directoryScannerMock = $this->getMockBuilder('Magento\Tools\Di\Code\Scanner\DirectoryScanner')
+ $this->directoryScannerMock = $this->getMockBuilder('Magento\Setup\Module\Di\Code\Scanner\DirectoryScanner')
->setMethods([])
->disableOriginalConstructor()
->getMock();
- $this->repositoryScannerMock = $this->getMockBuilder('Magento\Tools\Di\Code\Scanner\RepositoryScanner')
+ $this->repositoryScannerMock = $this->getMockBuilder('Magento\Setup\Module\Di\Code\Scanner\RepositoryScanner')
->setMethods([])
->disableOriginalConstructor()
->getMock();
- $this->classesScannerMock = $this->getMockBuilder('Magento\Tools\Di\Code\Reader\ClassesScanner')
+ $this->classesScannerMock = $this->getMockBuilder('Magento\Setup\Module\Di\Code\Reader\ClassesScanner')
->setMethods([])
->disableOriginalConstructor()
->getMock();
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Generator/InterceptionConfigurationBuilderTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Generator/InterceptionConfigurationBuilderTest.php
similarity index 87%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Code/Generator/InterceptionConfigurationBuilderTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Generator/InterceptionConfigurationBuilderTest.php
index a8196935b92ad31806eb12602d83b48e92bbfae0..928afe76a0685ea8302b069ecbcc873782f51f99 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Generator/InterceptionConfigurationBuilderTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Generator/InterceptionConfigurationBuilderTest.php
@@ -3,14 +3,14 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Code\Generator;
+namespace Magento\Setup\Test\Unit\Module\Di\Code\Generator;
use Magento\Framework\App\Interception\Cache\CompiledConfig;
class InterceptionConfigurationBuilderTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Code\Generator\InterceptionConfigurationBuilder
+ * @var \Magento\Setup\Module\Di\Code\Generator\InterceptionConfigurationBuilder
*/
protected $model;
/**
@@ -43,7 +43,7 @@ class InterceptionConfigurationBuilderTest extends \PHPUnit_Framework_TestCase
false
);
$this->pluginList = $this->getMock(
- 'Magento\Tools\Di\Code\Generator\PluginList',
+ 'Magento\Setup\Module\Di\Code\Generator\PluginList',
['setInterceptedClasses', 'setScopePriorityScheme', 'getPluginsConfig'],
[],
'',
@@ -57,8 +57,8 @@ class InterceptionConfigurationBuilderTest extends \PHPUnit_Framework_TestCase
false
);
- $this->typeReader = $this->getMock('Magento\Tools\Di\Code\Reader\Type', ['isConcrete'], [], '', false);
- $this->model = new \Magento\Tools\Di\Code\Generator\InterceptionConfigurationBuilder(
+ $this->typeReader = $this->getMock('Magento\Setup\Module\Di\Code\Reader\Type', ['isConcrete'], [], '', false);
+ $this->model = new \Magento\Setup\Module\Di\Code\Generator\InterceptionConfigurationBuilder(
$this->interceptionConfig,
$this->pluginList,
$this->typeReader,
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Reader/ClassReaderDecoratorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Reader/ClassReaderDecoratorTest.php
similarity index 86%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Code/Reader/ClassReaderDecoratorTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Reader/ClassReaderDecoratorTest.php
index 2cbbbc173adb4b92b3cc6481b0c805b27f838e3c..9965a50ec82ca22cf0ad7dbcec589cd20a677378 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Reader/ClassReaderDecoratorTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Reader/ClassReaderDecoratorTest.php
@@ -3,14 +3,14 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Code\Reader;
+namespace Magento\Setup\Test\Unit\Module\Di\Code\Reader;
-use Magento\Tools\Di\Compiler\ConstructorArgument;
+use Magento\Setup\Module\Di\Compiler\ConstructorArgument;
class ClassReaderDecoratorTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Code\Reader\ClassReaderDecorator
+ * @var \Magento\Setup\Module\Di\Code\Reader\ClassReaderDecorator
*/
private $model;
@@ -25,7 +25,7 @@ class ClassReaderDecoratorTest extends \PHPUnit_Framework_TestCase
->disableOriginalConstructor()
->setMethods([])
->getMock();
- $this->model = new \Magento\Tools\Di\Code\Reader\ClassReaderDecorator($this->classReaderMock);
+ $this->model = new \Magento\Setup\Module\Di\Code\Reader\ClassReaderDecorator($this->classReaderMock);
}
/**
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Reader/InstancesNamesList/AreaTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Reader/InstancesNamesList/AreaTest.php
similarity index 74%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Code/Reader/InstancesNamesList/AreaTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Reader/InstancesNamesList/AreaTest.php
index 8a74b8a4dbe7a6a8aa5ced6f3743e4db54e6d704..1ef35e58f13fdbf857f2d11975e2afd3662574cd 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Reader/InstancesNamesList/AreaTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Reader/InstancesNamesList/AreaTest.php
@@ -3,24 +3,24 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Code\Reader\InstancesNamesList;
+namespace Magento\Setup\Test\Unit\Module\Di\Code\Reader\InstancesNamesList;
-use \Magento\Tools\Di\Code\Reader\Decorator\Area;
+use \Magento\Setup\Module\Di\Code\Reader\Decorator\Area;
/**
* Class AreaTest
*
- * @package Magento\Tools\Di\Code\Reader\Decorator
+ * @package Magento\Setup\Module\Di\Code\Reader\Decorator
*/
class AreaTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Code\Reader\ClassesScanner | \PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\Di\Code\Reader\ClassesScanner | \PHPUnit_Framework_MockObject_MockObject
*/
private $classesScannerMock;
/**
- * @var \Magento\Tools\Di\Code\Reader\ClassReaderDecorator | \PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\Di\Code\Reader\ClassReaderDecorator | \PHPUnit_Framework_MockObject_MockObject
*/
private $classReaderDecoratorMock;
@@ -31,17 +31,19 @@ class AreaTest extends \PHPUnit_Framework_TestCase
protected function setUp()
{
- $this->classesScannerMock = $this->getMockBuilder('\Magento\Tools\Di\Code\Reader\ClassesScanner')
+ $this->classesScannerMock = $this->getMockBuilder('\Magento\Setup\Module\Di\Code\Reader\ClassesScanner')
->disableOriginalConstructor()
->setMethods(['getList'])
->getMock();
- $this->classReaderDecoratorMock = $this->getMockBuilder('\Magento\Tools\Di\Code\Reader\ClassReaderDecorator')
+ $this->classReaderDecoratorMock = $this->getMockBuilder(
+ '\Magento\Setup\Module\Di\Code\Reader\ClassReaderDecorator'
+ )
->disableOriginalConstructor()
->setMethods(['getConstructor'])
->getMock();
- $this->model = new \Magento\Tools\Di\Code\Reader\Decorator\Area(
+ $this->model = new \Magento\Setup\Module\Di\Code\Reader\Decorator\Area(
$this->classesScannerMock,
$this->classReaderDecoratorMock
);
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Reader/InstancesNamesList/DirectoryTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Reader/InstancesNamesList/DirectoryTest.php
similarity index 88%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Code/Reader/InstancesNamesList/DirectoryTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Reader/InstancesNamesList/DirectoryTest.php
index aaa02faa6f70e79bfa7793ebfc05903cf3cc2535..759f25d2a2499f62422aa8a381a8d9f2c9a97ad6 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Reader/InstancesNamesList/DirectoryTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Reader/InstancesNamesList/DirectoryTest.php
@@ -3,19 +3,19 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Code\Reader\InstancesNamesList;
+namespace Magento\Setup\Test\Unit\Module\Di\Code\Reader\InstancesNamesList;
-use Magento\Tools\Di\Compiler\Log\Log;
+use Magento\Setup\Module\Di\Compiler\Log\Log;
/**
* Class DirectoryTest
*
- * @package Magento\Tools\Di\Code\Reader\Decorator
+ * @package Magento\Setup\Module\Di\Code\Reader\Decorator
*/
class DirectoryTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Code\Reader\ClassesScanner | \PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\Di\Code\Reader\ClassesScanner | \PHPUnit_Framework_MockObject_MockObject
*/
private $classesScanner;
@@ -25,7 +25,7 @@ class DirectoryTest extends \PHPUnit_Framework_TestCase
private $classReaderMock;
/**
- * @var \Magento\Tools\Di\Code\Reader\Decorator\Directory
+ * @var \Magento\Setup\Module\Di\Code\Reader\Decorator\Directory
*/
private $model;
@@ -35,18 +35,18 @@ class DirectoryTest extends \PHPUnit_Framework_TestCase
private $validatorMock;
/**
- * @var \Magento\Tools\Di\Compiler\Log\Log | \PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\Di\Compiler\Log\Log | \PHPUnit_Framework_MockObject_MockObject
*/
private $logMock;
protected function setUp()
{
- $this->logMock = $this->getMockBuilder('Magento\Tools\Di\Compiler\Log\Log')
+ $this->logMock = $this->getMockBuilder('Magento\Setup\Module\Di\Compiler\Log\Log')
->disableOriginalConstructor()
->setMethods(['add'])
->getMock();
- $this->classesScanner = $this->getMockBuilder('\Magento\Tools\Di\Code\Reader\ClassesScanner')
+ $this->classesScanner = $this->getMockBuilder('\Magento\Setup\Module\Di\Code\Reader\ClassesScanner')
->disableOriginalConstructor()
->setMethods(['getList'])
->getMock();
@@ -61,7 +61,7 @@ class DirectoryTest extends \PHPUnit_Framework_TestCase
->setMethods(['validate'])
->getMock();
- $this->model = new \Magento\Tools\Di\Code\Reader\Decorator\Directory(
+ $this->model = new \Magento\Setup\Module\Di\Code\Reader\Decorator\Directory(
$this->logMock,
$this->classReaderMock,
$this->classesScanner,
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Reader/InstancesNamesList/InterceptionsTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Reader/InstancesNamesList/InterceptionsTest.php
similarity index 86%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Code/Reader/InstancesNamesList/InterceptionsTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Reader/InstancesNamesList/InterceptionsTest.php
index 238274ff5f804db60ec726ede11fdba3b0c23936..b50cc6e71b012cdf2c1db79796903afe161ba94c 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Reader/InstancesNamesList/InterceptionsTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Reader/InstancesNamesList/InterceptionsTest.php
@@ -3,19 +3,19 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Code\Reader\InstancesNamesList;
+namespace Magento\Setup\Test\Unit\Module\Di\Code\Reader\InstancesNamesList;
-use Magento\Tools\Di\Compiler\Log\Log;
+use Magento\Setup\Module\Di\Compiler\Log\Log;
/**
* Class InterceptionsTest
*
- * @package Magento\Tools\Di\Code\Reader\Decorator
+ * @package Magento\Setup\Module\Di\Code\Reader\Decorator
*/
class InterceptionsTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Code\Reader\ClassesScanner | \PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\Di\Code\Reader\ClassesScanner | \PHPUnit_Framework_MockObject_MockObject
*/
private $classesScanner;
@@ -25,7 +25,7 @@ class InterceptionsTest extends \PHPUnit_Framework_TestCase
private $classReaderMock;
/**
- * @var \Magento\Tools\Di\Code\Reader\Decorator\Directory
+ * @var \Magento\Setup\Module\Di\Code\Reader\Decorator\Directory
*/
private $model;
@@ -35,18 +35,18 @@ class InterceptionsTest extends \PHPUnit_Framework_TestCase
private $validatorMock;
/**
- * @var \Magento\Tools\Di\Compiler\Log\Log | \PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\Di\Compiler\Log\Log | \PHPUnit_Framework_MockObject_MockObject
*/
private $logMock;
protected function setUp()
{
- $this->logMock = $this->getMockBuilder('Magento\Tools\Di\Compiler\Log\Log')
+ $this->logMock = $this->getMockBuilder('Magento\Setup\Module\Di\Compiler\Log\Log')
->disableOriginalConstructor()
->setMethods(['add', 'report'])
->getMock();
- $this->classesScanner = $this->getMockBuilder('\Magento\Tools\Di\Code\Reader\ClassesScanner')
+ $this->classesScanner = $this->getMockBuilder('\Magento\Setup\Module\Di\Code\Reader\ClassesScanner')
->disableOriginalConstructor()
->setMethods(['getList'])
->getMock();
@@ -61,7 +61,7 @@ class InterceptionsTest extends \PHPUnit_Framework_TestCase
->setMethods(['validate', 'add'])
->getMock();
- $this->model = new \Magento\Tools\Di\Code\Reader\Decorator\Interceptions(
+ $this->model = new \Magento\Setup\Module\Di\Code\Reader\Decorator\Interceptions(
$this->classesScanner,
$this->classReaderMock,
$this->validatorMock,
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/ArrayScannerTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/ArrayScannerTest.php
similarity index 76%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/ArrayScannerTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/ArrayScannerTest.php
index 9ecc4d54674817e047eaa7b738324890587422c6..b8891faf39af49dff6c725517556746baa8b4d04 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/ArrayScannerTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/ArrayScannerTest.php
@@ -3,12 +3,12 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Code\Scanner;
+namespace Magento\Setup\Test\Unit\Module\Di\Code\Scanner;
class ArrayScannerTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Code\Scanner\ArrayScanner
+ * @var \Magento\Setup\Module\Di\Code\Scanner\ArrayScanner
*/
protected $_model;
@@ -19,7 +19,7 @@ class ArrayScannerTest extends \PHPUnit_Framework_TestCase
protected function setUp()
{
- $this->_model = new \Magento\Tools\Di\Code\Scanner\ArrayScanner();
+ $this->_model = new \Magento\Setup\Module\Di\Code\Scanner\ArrayScanner();
$this->_testDir = str_replace('\\', '/', realpath(__DIR__ . '/../../') . '/_files');
}
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/CompositeScannerTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/CompositeScannerTest.php
similarity index 77%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/CompositeScannerTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/CompositeScannerTest.php
index 6d8c24373d5755870a6bf5b64caf5f1da08d64cd..e681c6d55d0864138f0ab41409deb07b6257a8b6 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/CompositeScannerTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/CompositeScannerTest.php
@@ -3,18 +3,18 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Code\Scanner;
+namespace Magento\Setup\Test\Unit\Module\Di\Code\Scanner;
class CompositeScannerTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Code\Scanner\CompositeScanner
+ * @var \Magento\Setup\Module\Di\Code\Scanner\CompositeScanner
*/
protected $_model;
protected function setUp()
{
- $this->_model = new \Magento\Tools\Di\Code\Scanner\CompositeScanner();
+ $this->_model = new \Magento\Setup\Module\Di\Code\Scanner\CompositeScanner();
}
public function testScan()
@@ -23,8 +23,8 @@ class CompositeScannerTest extends \PHPUnit_Framework_TestCase
$configFiles = ['one/file/config', 'two/file/config'];
$files = ['php' => $phpFiles, 'config' => $configFiles];
- $scannerPhp = $this->getMock('Magento\Tools\Di\Code\Scanner\ScannerInterface');
- $scannerXml = $this->getMock('Magento\Tools\Di\Code\Scanner\ScannerInterface');
+ $scannerPhp = $this->getMock('Magento\Setup\Module\Di\Code\Scanner\ScannerInterface');
+ $scannerXml = $this->getMock('Magento\Setup\Module\Di\Code\Scanner\ScannerInterface');
$scannerPhpExpected = ['Model_OneProxy', 'Model_TwoFactory'];
$scannerXmlExpected = ['Model_OneProxy', 'Model_ThreeFactory'];
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/DirectoryScannerTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/DirectoryScannerTest.php
similarity index 91%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/DirectoryScannerTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/DirectoryScannerTest.php
index 86c924b1f325a21b6c032f4b250217e1511e3af2..b44d3243065b6d44bbe8b2930f07c9a7740d9c5b 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/DirectoryScannerTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/DirectoryScannerTest.php
@@ -3,12 +3,12 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Code\Scanner;
+namespace Magento\Setup\Test\Unit\Module\Di\Code\Scanner;
class DirectoryScannerTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Code\Scanner\DirectoryScanner
+ * @var \Magento\Setup\Module\Di\Code\Scanner\DirectoryScanner
*/
protected $_model;
@@ -19,7 +19,7 @@ class DirectoryScannerTest extends \PHPUnit_Framework_TestCase
protected function setUp()
{
- $this->_model = new \Magento\Tools\Di\Code\Scanner\DirectoryScanner();
+ $this->_model = new \Magento\Setup\Module\Di\Code\Scanner\DirectoryScanner();
$this->_testDir = str_replace('\\', '/', realpath(__DIR__ . '/../../') . '/_files');
}
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/PhpScannerTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/PhpScannerTest.php
similarity index 83%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/PhpScannerTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/PhpScannerTest.php
index 6c148c6aba3bab32643523ce4fbb5d33634c4ae5..6403592e0aaf10104226b39e593eede5e1090964 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/PhpScannerTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/PhpScannerTest.php
@@ -3,14 +3,14 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Code\Scanner;
+namespace Magento\Setup\Test\Unit\Module\Di\Code\Scanner;
require_once __DIR__ . '/../../_files/app/code/Magento/SomeModule/Helper/Test.php';
require_once __DIR__ . '/../../_files/app/code/Magento/SomeModule/ElementFactory.php';
class PhpScannerTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Code\Scanner\PhpScanner
+ * @var \Magento\Setup\Module\Di\Code\Scanner\PhpScanner
*/
protected $_model;
@@ -31,8 +31,8 @@ class PhpScannerTest extends \PHPUnit_Framework_TestCase
protected function setUp()
{
- $this->_model = new \Magento\Tools\Di\Code\Scanner\PhpScanner(
- $this->_logMock = $this->getMock('\Magento\Tools\Di\Compiler\Log\Log', [], [], '', false)
+ $this->_model = new \Magento\Setup\Module\Di\Code\Scanner\PhpScanner(
+ $this->_logMock = $this->getMock('\Magento\Setup\Module\Di\Compiler\Log\Log', [], [], '', false)
);
$this->_testDir = str_replace('\\', '/', realpath(__DIR__ . '/../../') . '/_files');
$this->_testFiles = [$this->_testDir . '/app/code/Magento/SomeModule/Helper/Test.php'];
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/PluginScannerTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/PluginScannerTest.php
similarity index 85%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/PluginScannerTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/PluginScannerTest.php
index adc1ebf2eaa69c83ebad7a3bba9926d09141ac49..1ac34de3b4296e4ef04dc875ce6a23c0ce3cfac5 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/PluginScannerTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/PluginScannerTest.php
@@ -6,13 +6,13 @@
// @codingStandardsIgnoreFile
-namespace Magento\Tools\Di\Test\Unit\Code\Scanner;
+namespace Magento\Setup\Test\Unit\Module\Di\Code\Scanner;
class PluginScannerTest extends \PHPUnit_Framework_TestCase
{
protected function setUp()
{
- $this->_model = new \Magento\Tools\Di\Code\Scanner\PluginScanner();
+ $this->_model = new \Magento\Setup\Module\Di\Code\Scanner\PluginScanner();
$this->_testDir = str_replace('\\', '/', realpath(__DIR__ . '/../../') . '/_files');
$this->_testFiles = [
$this->_testDir . '/app/code/Magento/SomeModule/etc/di.xml',
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/XmlInterceptorScannerTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/XmlInterceptorScannerTest.php
similarity index 81%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/XmlInterceptorScannerTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/XmlInterceptorScannerTest.php
index 70556e0f9e7a5dcd7f1a9fa6e34e6a287e0261da..7ac2c227a243ca07bc72274604595f0cca0fe1f7 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/XmlInterceptorScannerTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/XmlInterceptorScannerTest.php
@@ -3,12 +3,12 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Code\Scanner;
+namespace Magento\Setup\Test\Unit\Module\Di\Code\Scanner;
class XmlInterceptorScannerTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Code\Scanner\XmlInterceptorScanner
+ * @var \Magento\Setup\Module\Di\Code\Scanner\XmlInterceptorScanner
*/
protected $_model;
@@ -24,7 +24,7 @@ class XmlInterceptorScannerTest extends \PHPUnit_Framework_TestCase
protected function setUp()
{
- $this->_model = new \Magento\Tools\Di\Code\Scanner\XmlInterceptorScanner();
+ $this->_model = new \Magento\Setup\Module\Di\Code\Scanner\XmlInterceptorScanner();
$this->_testDir = str_replace('\\', '/', realpath(__DIR__ . '/../../') . '/_files');
$this->_testFiles = [
$this->_testDir . '/app/code/Magento/SomeModule/etc/di.xml',
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/XmlScannerTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/XmlScannerTest.php
similarity index 85%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/XmlScannerTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/XmlScannerTest.php
index b1cd9b3dac280b565d3d152a5c49c2d9b9da1688..71b447e1c644e7e9745ef66d3a51c269b54668d3 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/XmlScannerTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/XmlScannerTest.php
@@ -6,12 +6,12 @@
// @codingStandardsIgnoreFile
-namespace Magento\Tools\Di\Test\Unit\Code\Scanner;
+namespace Magento\Setup\Test\Unit\Module\Di\Code\Scanner;
class XmlScannerTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Code\Scanner\XmlScanner
+ * @var \Magento\Setup\Module\Di\Code\Scanner\XmlScanner
*/
protected $_model;
@@ -27,8 +27,8 @@ class XmlScannerTest extends \PHPUnit_Framework_TestCase
protected function setUp()
{
- $this->_model = new \Magento\Tools\Di\Code\Scanner\XmlScanner(
- $this->_logMock = $this->getMock('\Magento\Tools\Di\Compiler\Log\Log', [], [], '', false)
+ $this->_model = new \Magento\Setup\Module\Di\Code\Scanner\XmlScanner(
+ $this->_logMock = $this->getMock('\Magento\Setup\Module\Di\Compiler\Log\Log', [], [], '', false)
);
$testDir = __DIR__ . '/../../' . '/_files';
$this->_testFiles = [
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/ArgumentsResolverTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/ArgumentsResolverTest.php
similarity index 96%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Compiler/ArgumentsResolverTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/ArgumentsResolverTest.php
index 128ef2adab42fe267cb82a97258b2c8beb09db42..b0924f54d382aed67b96bd0aa3339344282363bb 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/ArgumentsResolverTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/ArgumentsResolverTest.php
@@ -4,14 +4,14 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Compiler;
+namespace Magento\Setup\Test\Unit\Module\Di\Compiler;
-use Magento\Tools\Di\Compiler\ConstructorArgument;
+use Magento\Setup\Module\Di\Compiler\ConstructorArgument;
class ArgumentsResolverTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Compiler\ArgumentsResolver
+ * @var \Magento\Setup\Module\Di\Compiler\ArgumentsResolver
*/
protected $model;
@@ -29,7 +29,7 @@ class ArgumentsResolverTest extends \PHPUnit_Framework_TestCase
'',
false
);
- $this->model = new \Magento\Tools\Di\Compiler\ArgumentsResolver($this->diContainerConfig);
+ $this->model = new \Magento\Setup\Module\Di\Compiler\ArgumentsResolver($this->diContainerConfig);
}
public function testGetResolvedArgumentsConstructorFormat()
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/Chain/ArgumentsSerializationTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/Chain/ArgumentsSerializationTest.php
similarity index 86%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/Chain/ArgumentsSerializationTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/Chain/ArgumentsSerializationTest.php
index 390c0854f7ef06205109b41905d8b87b78ad908e..01018b451e36d73943d90bf1a517cdc7353bbab9 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/Chain/ArgumentsSerializationTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/Chain/ArgumentsSerializationTest.php
@@ -4,9 +4,9 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Compiler\Config\Chain;
+namespace Magento\Setup\Test\Unit\Module\Di\Compiler\Config\Chain;
-use \Magento\Tools\Di\Compiler\Config\Chain\ArgumentsSerialization;
+use \Magento\Setup\Module\Di\Compiler\Config\Chain\ArgumentsSerialization;
class ArgumentsSerializationTest extends \PHPUnit_Framework_TestCase
{
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/Chain/BackslashTrimTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/Chain/BackslashTrimTest.php
similarity index 94%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/Chain/BackslashTrimTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/Chain/BackslashTrimTest.php
index 14b95be2dee16a75d87214f8785a1ee1bc101d96..847a0f38627eb1494cb004f09b62c6cb773de0ef 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/Chain/BackslashTrimTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/Chain/BackslashTrimTest.php
@@ -4,9 +4,9 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Compiler\Config\Chain;
+namespace Magento\Setup\Test\Unit\Module\Di\Compiler\Config\Chain;
-use \Magento\Tools\Di\Compiler\Config\Chain\BackslashTrim;
+use \Magento\Setup\Module\Di\Compiler\Config\Chain\BackslashTrim;
class BackslashTrimTest extends \PHPUnit_Framework_TestCase
{
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/Chain/InterceptorSubstitutionTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/Chain/InterceptorSubstitutionTest.php
similarity index 96%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/Chain/InterceptorSubstitutionTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/Chain/InterceptorSubstitutionTest.php
index d30437d6eef1b258edec843676aade8171fadd37..9376f8334a02dcb0455581513d591ff17a628c48 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/Chain/InterceptorSubstitutionTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/Chain/InterceptorSubstitutionTest.php
@@ -3,9 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Compiler\Config\Chain;
+namespace Magento\Setup\Test\Unit\Module\Di\Compiler\Config\Chain;
-use Magento\Tools\Di\Compiler\Config\Chain\InterceptorSubstitution;
+use Magento\Setup\Module\Di\Compiler\Config\Chain\InterceptorSubstitution;
class InterceptorSubstitutionTest extends \PHPUnit_Framework_TestCase
{
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/Chain/PreferencesResolvingTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/Chain/PreferencesResolvingTest.php
similarity index 97%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/Chain/PreferencesResolvingTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/Chain/PreferencesResolvingTest.php
index c4cdc2f672ec4e70a88709061589df6f0c457abc..c73ff5109d07ad3047aa7c01cd2cd3dc225a1504 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/Chain/PreferencesResolvingTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/Chain/PreferencesResolvingTest.php
@@ -4,9 +4,9 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Compiler\Config\Chain;
+namespace Magento\Setup\Test\Unit\Module\Di\Compiler\Config\Chain;
-use Magento\Tools\Di\Compiler\Config\Chain\PreferencesResolving;
+use Magento\Setup\Module\Di\Compiler\Config\Chain\PreferencesResolving;
class PreferencesResolvingTest extends \PHPUnit_Framework_TestCase
{
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/ModificationChainTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/ModificationChainTest.php
similarity index 64%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/ModificationChainTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/ModificationChainTest.php
index 5cc1e2085feb262b5a2d798996be41d2ffbcf57f..42eebce83645b2e1d8cc2877f32e3479e2589e21 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/ModificationChainTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/ModificationChainTest.php
@@ -4,18 +4,18 @@
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Compiler\Config;
+namespace Magento\Setup\Test\Unit\Module\Di\Compiler\Config;
-use \Magento\Tools\Di\Compiler\Config\ModificationChain;
+use \Magento\Setup\Module\Di\Compiler\Config\ModificationChain;
class ModificationChainTest extends \PHPUnit_Framework_TestCase
{
public function testConstructor()
{
$modificationsList = [];
- $modificationsList[] = $this->getMockBuilder('Magento\Tools\Di\Compiler\Config\ModificationInterface')
+ $modificationsList[] = $this->getMockBuilder('Magento\Setup\Module\Di\Compiler\Config\ModificationInterface')
->getMock();
- $modificationsList[] = $this->getMockBuilder('Magento\Tools\Di\Compiler\Config\ModificationInterface')
+ $modificationsList[] = $this->getMockBuilder('Magento\Setup\Module\Di\Compiler\Config\ModificationInterface')
->getMock();
new ModificationChain($modificationsList);
@@ -25,9 +25,9 @@ class ModificationChainTest extends \PHPUnit_Framework_TestCase
{
$this->setExpectedException('InvalidArgumentException', 'Wrong modifier provided');
$modificationsList = [];
- $modificationsList[] = $this->getMockBuilder('Magento\Tools\Di\Compiler\Config\ModificationInterface')
+ $modificationsList[] = $this->getMockBuilder('Magento\Setup\Module\Di\Compiler\Config\ModificationInterface')
->getMock();
- $modificationsList[] = $this->getMockBuilder('Magento\Tools\Di\Compiler\Config\ModificationInterface')
+ $modificationsList[] = $this->getMockBuilder('Magento\Setup\Module\Di\Compiler\Config\ModificationInterface')
->getMock();
$modificationsList[] = 'banana';
@@ -48,9 +48,9 @@ class ModificationChainTest extends \PHPUnit_Framework_TestCase
'data' => [1, 2, 3, 1, 1]
];
- $modifier1 = $this->getMockBuilder('Magento\Tools\Di\Compiler\Config\ModificationInterface')
+ $modifier1 = $this->getMockBuilder('Magento\Setup\Module\Di\Compiler\Config\ModificationInterface')
->getMock();
- $modifier2 = $this->getMockBuilder('Magento\Tools\Di\Compiler\Config\ModificationInterface')
+ $modifier2 = $this->getMockBuilder('Magento\Setup\Module\Di\Compiler\Config\ModificationInterface')
->getMock();
$modificationsList = [$modifier1, $modifier2];
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/ReaderTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/ReaderTest.php
similarity index 90%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/ReaderTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/ReaderTest.php
index b0e35f72991d94e7b50b3242c2dcf467fb6fce59..ff05209a0769d3ac1662d642f0b7f7cf871b031e 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/Config/ReaderTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/Config/ReaderTest.php
@@ -3,15 +3,15 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Compiler\Config;
+namespace Magento\Setup\Test\Unit\Module\Di\Compiler\Config;
use Magento\Framework\App\Area;
-use Magento\Tools\Di\Definition\Collection;
+use Magento\Setup\Module\Di\Definition\Collection;
class ReaderTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Compiler\Config\Reader
+ * @var \Magento\Setup\Module\Di\Compiler\Config\Reader
*/
protected $model;
@@ -50,26 +50,32 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
$this->diContainerConfig = $this->getMock('Magento\Framework\ObjectManager\ConfigInterface', [], [], '', false);
$this->configLoader = $this->getMock('Magento\Framework\App\ObjectManager\ConfigLoader', [], [], '', false);
$this->argumentsResolverFactory = $this->getMock(
- 'Magento\Tools\Di\Compiler\ArgumentsResolverFactory',
+ 'Magento\Setup\Module\Di\Compiler\ArgumentsResolverFactory',
+ [],
+ [],
+ '',
+ false
+ );
+ $this->argumentsResolver = $this->getMock(
+ 'Magento\Setup\Module\Di\Compiler\ArgumentsResolver',
[],
[],
'',
false
);
- $this->argumentsResolver = $this->getMock('Magento\Tools\Di\Compiler\ArgumentsResolver', [], [], '', false);
$this->argumentsResolverFactory->expects($this->any())
->method('create')
->willReturn($this->argumentsResolver);
$this->classReaderDecorator = $this->getMock(
- 'Magento\Tools\Di\Code\Reader\ClassReaderDecorator',
+ 'Magento\Setup\Module\Di\Code\Reader\ClassReaderDecorator',
[],
[],
'',
false
);
- $this->typeReader = $this->getMock('Magento\Tools\Di\Code\Reader\Type', [], [], '', false);
+ $this->typeReader = $this->getMock('Magento\Setup\Module\Di\Code\Reader\Type', [], [], '', false);
- $this->model = new \Magento\Tools\Di\Compiler\Config\Reader(
+ $this->model = new \Magento\Setup\Module\Di\Compiler\Config\Reader(
$this->diContainerConfig,
$this->configLoader,
$this->argumentsResolverFactory,
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/ConstructorArgumentTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/ConstructorArgumentTest.php
similarity index 78%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Compiler/ConstructorArgumentTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/ConstructorArgumentTest.php
index b8209a222ffcbcd757e1e880a034a17891c74ea1..4f574217b480c65f05f0089bbb6e8f4e2c325c1d 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Compiler/ConstructorArgumentTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Compiler/ConstructorArgumentTest.php
@@ -3,14 +3,14 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\Di\Test\Unit\Compiler;
+namespace Magento\Setup\Test\Unit\Module\Di\Compiler;
class ConstructorArgumentTest extends \PHPUnit_Framework_TestCase
{
public function testInterface()
{
$argument = ['configuration', 'array', true, null];
- $model = new \Magento\Tools\Di\Compiler\ConstructorArgument($argument);
+ $model = new \Magento\Setup\Module\Di\Compiler\ConstructorArgument($argument);
$this->assertEquals($argument[0], $model->getName());
$this->assertEquals($argument[1], $model->getType());
$this->assertTrue($model->isRequired());
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Definition/CollectionTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Definition/CollectionTest.php
similarity index 87%
rename from dev/tools/Magento/Tools/Di/Test/Unit/Definition/CollectionTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/Definition/CollectionTest.php
index 96fd2a754093fa650ee6b41e7b7626a880e26dd9..87821d22b1a1b7537d4580b737612d5974551d24 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Definition/CollectionTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Definition/CollectionTest.php
@@ -6,21 +6,21 @@
// @codingStandardsIgnoreFile
-namespace Magento\Tools\Di\Test\Unit\Definition;
+namespace Magento\Setup\Test\Unit\Module\Di\Definition;
/**
* Class CollectionTest
- * @package Magento\Tools\Di\Definition
+ * @package Magento\Setup\Module\Di\Definition
*/
class CollectionTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\Di\Definition\Collection
+ * @var \Magento\Setup\Module\Di\Definition\Collection
*/
private $model;
/**
- * @var \Magento\Tools\Di\Definition\Collection | \PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\Di\Definition\Collection | \PHPUnit_Framework_MockObject_MockObject
*/
private $collectionMock;
@@ -56,9 +56,9 @@ class CollectionTest extends \PHPUnit_Framework_TestCase
protected function setUp()
{
- $this->collectionMock = $this->getMockBuilder('\Magento\Tools\Di\Definition\Collection')
+ $this->collectionMock = $this->getMockBuilder('\Magento\Setup\Module\Di\Definition\Collection')
->setMethods([])->getMock();
- $this->model = new \Magento\Tools\Di\Definition\Collection();
+ $this->model = new \Magento\Setup\Module\Di\Definition\Collection();
}
public function testAddDefinition()
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/additional.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/additional.php
similarity index 100%
rename from dev/tools/Magento/Tools/Di/Test/Unit/_files/additional.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/_files/additional.php
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/bootstrap.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/bootstrap.php
similarity index 100%
rename from dev/tools/Magento/Tools/Di/Test/Unit/_files/app/bootstrap.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/bootstrap.php
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/Element.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/Element.php
similarity index 100%
rename from dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/Element.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/Element.php
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/ElementFactory.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/ElementFactory.php
similarity index 100%
rename from dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/ElementFactory.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/ElementFactory.php
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/Helper/Test.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/Helper/Test.php
similarity index 100%
rename from dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/Helper/Test.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/Helper/Test.php
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/Model/Test.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/Model/Test.php
similarity index 100%
rename from dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/Model/Test.php
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/Model/Test.php
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/etc/adminhtml/system.xml b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/etc/adminhtml/system.xml
similarity index 94%
rename from dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/etc/adminhtml/system.xml
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/etc/adminhtml/system.xml
index cec22db9c722334136b1018cc07df7a8e7a17f82..d5b7796b99db9e40bb52a40e4270b2a3b2628081 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/etc/adminhtml/system.xml
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/etc/adminhtml/system.xml
@@ -5,7 +5,7 @@
* See COPYING.txt for license details.
*/
-->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../../../../../app/code/Magento/Config/etc/system_file.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../../../../../../app/code/Magento/Config/etc/system_file.xsd">
<system>
<section id="advanced" translate="label" type="text" sortOrder="910" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Advanced</label>
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/etc/di.xml b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/etc/di.xml
similarity index 94%
rename from dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/etc/di.xml
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/etc/di.xml
index 5466e9a385bc24a8e1766bf54613aae8c10701c1..ec1a122e8f6cd08f459b64b651d49baf87a188c1 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/etc/di.xml
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/etc/di.xml
@@ -5,7 +5,7 @@
* See COPYING.txt for license details.
*/
-->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
<preference for="Magento\Framework\App\RequestInterface" type="Magento\Framework\App\Request\Http\Proxy" />
<preference for="Magento\Store\Model\Config\InvalidatorInterface" type="Magento\Store\Model\Config\Invalidator\Proxy" />
<preference for="Magento\Framework\App\CacheInterface" type="Magento\Framework\App\Cache\Proxy" />
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/view/frontend/default.xml b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/view/frontend/default.xml
similarity index 86%
rename from dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/view/frontend/default.xml
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/view/frontend/default.xml
index 4033324ce46b1a54aee06c3c24588d15b2c7c3b8..4664b27f04c42eb6c3d71dd3bef5ae5c6280574f 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/view/frontend/default.xml
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/view/frontend/default.xml
@@ -5,7 +5,7 @@
* See COPYING.txt for license details.
*/
-->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_layout.xsd">
+<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_layout.xsd">
<referenceBlock name="root">
<block class="Magento\Backend\Block\Menu\Proxy" name="menu" as="menu" template="Magento_Backend::menu.phtml" />
</referenceBlock>
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/design/adminhtml/default/backend/layout.xml b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/design/adminhtml/default/backend/layout.xml
similarity index 100%
rename from dev/tools/Magento/Tools/Di/Test/Unit/_files/app/design/adminhtml/default/backend/layout.xml
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/design/adminhtml/default/backend/layout.xml
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/additional.xml b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/etc/additional.xml
similarity index 100%
rename from dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/additional.xml
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/etc/additional.xml
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/config.xml b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/etc/config.xml
similarity index 100%
rename from dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/config.xml
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/etc/config.xml
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/di/config.xml b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/etc/di/config.xml
similarity index 87%
rename from dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/di/config.xml
rename to setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/etc/di/config.xml
index 8638b10700e02310375a9dc43efe0a89b50eb15d..0b1395817de460ea28f44a6e79eadef1adf1446b 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/di/config.xml
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/etc/di/config.xml
@@ -5,7 +5,7 @@
* See COPYING.txt for license details.
*/
-->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
<type name="Magento\Framework\App\Cache">
<arguments>
<argument name="storeManager" xsi:type="object">customStoreManagerProxy</argument>
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/ContextTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/ContextTest.php
similarity index 93%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/ContextTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/ContextTest.php
index 1b89c9d07bf9d6bb10c9fc0375a976848eed9c23..5a641e556ff5539b2f3b25aa82fbe71b08913090 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/ContextTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/ContextTest.php
@@ -3,22 +3,21 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit;
-
-use \Magento\Tools\I18n\Context;
+namespace Magento\Setup\Test\Unit\Module\I18n;
+use \Magento\Setup\Module\I18n\Context;
class ContextTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\I18n\Context
+ * @var \Magento\Setup\Module\I18n\Context
*/
protected $context;
protected function setUp()
{
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- $this->context = $objectManagerHelper->getObject('Magento\Tools\I18n\Context');
+ $this->context = $objectManagerHelper->getObject('Magento\Setup\Module\I18n\Context');
}
/**
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/GeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/GeneratorTest.php
similarity index 73%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/GeneratorTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/GeneratorTest.php
index 6d77f2ab112f15f9fc15c2c5d10d3534f2bf43e7..5d56db8c8f2b7793f377bd0829e8c5a24ba1668c 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/GeneratorTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/GeneratorTest.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Dictionary;
+namespace Magento\Setup\Test\Unit\Module\I18n\Dictionary;
/**
* Generator test
@@ -11,53 +11,53 @@ namespace Magento\Tools\I18n\Test\Unit\Dictionary;
class GeneratorTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\I18n\Parser\Parser|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Parser\Parser|\PHPUnit_Framework_MockObject_MockObject
*/
protected $parserMock;
/**
- * @var \Magento\Tools\I18n\Parser\Contextual|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Parser\Contextual|\PHPUnit_Framework_MockObject_MockObject
*/
protected $contextualParserMock;
/**
- * @var \Magento\Tools\I18n\Factory|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Factory|\PHPUnit_Framework_MockObject_MockObject
*/
protected $factoryMock;
/**
- * @var \Magento\Tools\I18n\Dictionary\WriterInterface|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Dictionary\WriterInterface|\PHPUnit_Framework_MockObject_MockObject
*/
protected $writerMock;
/**
- * @var \Magento\Tools\I18n\Dictionary\Generator
+ * @var \Magento\Setup\Module\I18n\Dictionary\Generator
*/
protected $generator;
/**
- * @var \Magento\Tools\I18n\Dictionary\Options\ResolverFactory|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Dictionary\Options\ResolverFactory|\PHPUnit_Framework_MockObject_MockObject
*/
protected $optionsResolverFactory;
protected function setUp()
{
- $this->parserMock = $this->getMock('Magento\Tools\I18n\Parser\Parser', [], [], '', false);
+ $this->parserMock = $this->getMock('Magento\Setup\Module\I18n\Parser\Parser', [], [], '', false);
$this->contextualParserMock = $this->getMock(
- 'Magento\Tools\I18n\Parser\Contextual',
+ 'Magento\Setup\Module\I18n\Parser\Contextual',
[],
[],
'',
false
);
- $this->writerMock = $this->getMock('Magento\Tools\I18n\Dictionary\WriterInterface');
- $this->factoryMock = $this->getMock('Magento\Tools\I18n\Factory', [], [], '', false);
+ $this->writerMock = $this->getMock('Magento\Setup\Module\I18n\Dictionary\WriterInterface');
+ $this->factoryMock = $this->getMock('Magento\Setup\Module\I18n\Factory', [], [], '', false);
$this->factoryMock->expects($this->any())
->method('createDictionaryWriter')
->will($this->returnValue($this->writerMock));
$this->optionsResolverFactory = $this->getMock(
- 'Magento\Tools\I18n\Dictionary\Options\ResolverFactory',
+ 'Magento\Setup\Module\I18n\Dictionary\Options\ResolverFactory',
[],
[],
'',
@@ -66,7 +66,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
$this->generator = $objectManagerHelper->getObject(
- 'Magento\Tools\I18n\Dictionary\Generator',
+ 'Magento\Setup\Module\I18n\Dictionary\Generator',
[
'parser' => $this->parserMock,
'contextualParser' => $this->contextualParserMock,
@@ -80,14 +80,14 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
{
$outputFilename = 'test';
- $phrase = $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false);
+ $phrase = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false);
$this->factoryMock->expects($this->once())
->method('createDictionaryWriter')
->with($outputFilename)
->will($this->returnSelf());
$this->parserMock->expects($this->any())->method('getPhrases')->will($this->returnValue([$phrase]));
$options = [];
- $optionResolver = $this->getMock('Magento\Tools\I18n\Dictionary\Options\Resolver', [], [], '', false);
+ $optionResolver = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Options\Resolver', [], [], '', false);
$optionResolver->expects($this->once())
->method('getOptions')
->will($this->returnValue($options));
@@ -106,7 +106,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
$baseDir = 'right_parser';
$outputFilename = 'file.csv';
$filesOptions = ['file1', 'file2'];
- $optionResolver = $this->getMock('Magento\Tools\I18n\Dictionary\Options\Resolver', [], [], '', false);
+ $optionResolver = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Options\Resolver', [], [], '', false);
$optionResolver->expects($this->once())
->method('getOptions')
->will($this->returnValue($filesOptions));
@@ -121,7 +121,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
->with($this->equalTo($baseDir), $this->equalTo(false))
->will($this->returnValue($optionResolver));
$this->parserMock->expects($this->once())->method('parse')->with($filesOptions);
- $phrase = $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false);
+ $phrase = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false);
$this->parserMock->expects($this->once())->method('getPhrases')->will($this->returnValue([$phrase]));
$this->generator->generate($baseDir, $outputFilename);
}
@@ -131,7 +131,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
$baseDir = 'right_parser2';
$outputFilename = 'file.csv';
$filesOptions = ['file1', 'file2'];
- $optionResolver = $this->getMock('Magento\Tools\I18n\Dictionary\Options\Resolver', [], [], '', false);
+ $optionResolver = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Options\Resolver', [], [], '', false);
$optionResolver->expects($this->once())
->method('getOptions')
->will($this->returnValue($filesOptions));
@@ -141,7 +141,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
->will($this->returnValue($optionResolver));
$this->contextualParserMock->expects($this->once())->method('parse')->with($filesOptions);
- $phrase = $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false);
+ $phrase = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false);
$this->contextualParserMock->expects($this->once())->method('getPhrases')->will($this->returnValue([$phrase]));
$this->factoryMock->expects($this->once())
@@ -156,7 +156,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
{
$baseDir = 'WritingPhrases';
$filesOptions = ['file1', 'file2'];
- $optionResolver = $this->getMock('Magento\Tools\I18n\Dictionary\Options\Resolver', [], [], '', false);
+ $optionResolver = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Options\Resolver', [], [], '', false);
$optionResolver->expects($this->once())
->method('getOptions')
->will($this->returnValue($filesOptions));
@@ -166,8 +166,8 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
->will($this->returnValue($optionResolver));
$phrases = [
- $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false),
- $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false),
+ $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false),
+ $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false),
];
$this->parserMock->expects($this->once())->method('getPhrases')->will($this->returnValue($phrases));
@@ -186,7 +186,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
$baseDir = 'no_phrases';
$outputFilename = 'no_file.csv';
$filesOptions = ['file1', 'file2'];
- $optionResolver = $this->getMock('Magento\Tools\I18n\Dictionary\Options\Resolver', [], [], '', false);
+ $optionResolver = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Options\Resolver', [], [], '', false);
$optionResolver->expects($this->once())
->method('getOptions')
->will($this->returnValue($filesOptions));
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Loader/File/AbstractFileTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Loader/File/AbstractFileTest.php
similarity index 73%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Loader/File/AbstractFileTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Loader/File/AbstractFileTest.php
index 84659fb6e2db5b319bac1d2ca8ffdaaa94562f3e..fc4666d9dce9905eb74199c4ce1843f4f62a9586 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Loader/File/AbstractFileTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Loader/File/AbstractFileTest.php
@@ -3,29 +3,29 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Dictionary\Loader\File;
+namespace Magento\Setup\Test\Unit\Module\I18n\Dictionary\Loader\File;
class AbstractFileTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\I18n\Dictionary|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Dictionary|\PHPUnit_Framework_MockObject_MockObject
*/
protected $_dictionaryMock;
/**
- * @var \Magento\Tools\I18n\Factory|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Factory|\PHPUnit_Framework_MockObject_MockObject
*/
protected $_factoryMock;
/**
- * @var \Magento\Tools\I18n\Dictionary\Loader\File\AbstractFile|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Dictionary\Loader\File\AbstractFile|\PHPUnit_Framework_MockObject_MockObject
*/
protected $_abstractLoaderMock;
protected function setUp()
{
- $this->_dictionaryMock = $this->getMock('Magento\Tools\I18n\Dictionary', [], [], '', false);
- $this->_factoryMock = $this->getMock('Magento\Tools\I18n\Factory', [], [], '', false);
+ $this->_dictionaryMock = $this->getMock('Magento\Setup\Module\I18n\Dictionary', [], [], '', false);
+ $this->_factoryMock = $this->getMock('Magento\Setup\Module\I18n\Factory', [], [], '', false);
}
/**
@@ -35,20 +35,20 @@ class AbstractFileTest extends \PHPUnit_Framework_TestCase
public function testLoadWrongFile()
{
$abstractLoaderMock = $this->getMockForAbstractClass(
- 'Magento\Tools\I18n\Dictionary\Loader\File\AbstractFile',
+ 'Magento\Setup\Module\I18n\Dictionary\Loader\File\AbstractFile',
[],
'',
false
);
- /** @var \Magento\Tools\I18n\Dictionary\Loader\File\AbstractFile $abstractLoaderMock */
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Loader\File\AbstractFile $abstractLoaderMock */
$abstractLoaderMock->load('wrong_file.csv');
}
public function testLoad()
{
$abstractLoaderMock = $this->getMockForAbstractClass(
- 'Magento\Tools\I18n\Dictionary\Loader\File\AbstractFile',
+ 'Magento\Setup\Module\I18n\Dictionary\Loader\File\AbstractFile',
[$this->_factoryMock],
'',
true,
@@ -71,8 +71,8 @@ class AbstractFileTest extends \PHPUnit_Framework_TestCase
$this->returnValue(['phrase2', 'translation2', 'context_type2', 'context_value2'])
);
- $phraseFirstMock = $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false);
- $phraseSecondMock = $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false);
+ $phraseFirstMock = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false);
+ $phraseSecondMock = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false);
$this->_factoryMock->expects(
$this->once()
@@ -108,7 +108,7 @@ class AbstractFileTest extends \PHPUnit_Framework_TestCase
$this->_dictionaryMock->expects($this->at(0))->method('addPhrase')->with($phraseFirstMock);
$this->_dictionaryMock->expects($this->at(1))->method('addPhrase')->with($phraseSecondMock);
- /** @var \Magento\Tools\I18n\Dictionary\Loader\File\AbstractFile $abstractLoaderMock */
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Loader\File\AbstractFile $abstractLoaderMock */
$this->assertEquals($this->_dictionaryMock, $abstractLoaderMock->load('test.csv'));
}
@@ -119,7 +119,7 @@ class AbstractFileTest extends \PHPUnit_Framework_TestCase
public function testErrorsInPhraseCreating()
{
$abstractLoaderMock = $this->getMockForAbstractClass(
- 'Magento\Tools\I18n\Dictionary\Loader\File\AbstractFile',
+ 'Magento\Setup\Module\I18n\Dictionary\Loader\File\AbstractFile',
[$this->_factoryMock],
'',
true,
@@ -150,7 +150,7 @@ class AbstractFileTest extends \PHPUnit_Framework_TestCase
$this->throwException(new \DomainException('exception_message'))
);
- /** @var \Magento\Tools\I18n\Dictionary\Loader\File\AbstractFile $abstractLoaderMock */
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Loader\File\AbstractFile $abstractLoaderMock */
$this->assertEquals($this->_dictionaryMock, $abstractLoaderMock->load('test.csv'));
}
}
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/ResolverFactoryTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/ResolverFactoryTest.php
similarity index 65%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/ResolverFactoryTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/ResolverFactoryTest.php
index 3a01474be5f4889621fe415f95af3284d2f88dbd..82e905624d8a39f3e684145f302cb38869018045 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/ResolverFactoryTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/ResolverFactoryTest.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Dictionary\Options;
+namespace Magento\Setup\Test\Unit\Module\I18n\Dictionary\Options;
/**
* Class ResolverTest
@@ -13,11 +13,11 @@ class ResolverFactoryTest extends \PHPUnit_Framework_TestCase
public function testCreate()
{
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- /** @var \Magento\Tools\I18n\Dictionary\Options\ResolverFactory $resolverFactory */
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Options\ResolverFactory $resolverFactory */
$resolverFactory = $objectManagerHelper
- ->getObject('Magento\Tools\I18n\Dictionary\Options\ResolverFactory');
+ ->getObject('Magento\Setup\Module\I18n\Dictionary\Options\ResolverFactory');
$this->assertInstanceOf(
- \Magento\Tools\I18n\Dictionary\Options\ResolverFactory::DEFAULT_RESOLVER,
+ \Magento\Setup\Module\I18n\Dictionary\Options\ResolverFactory::DEFAULT_RESOLVER,
$resolverFactory->create('some_dir', true)
);
}
@@ -29,9 +29,9 @@ class ResolverFactoryTest extends \PHPUnit_Framework_TestCase
public function testCreateException()
{
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- /** @var \Magento\Tools\I18n\Dictionary\Options\ResolverFactory $resolverFactory */
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Options\ResolverFactory $resolverFactory */
$resolverFactory = $objectManagerHelper->getObject(
- 'Magento\Tools\I18n\Dictionary\Options\ResolverFactory',
+ 'Magento\Setup\Module\I18n\Dictionary\Options\ResolverFactory',
[
'resolverClass' => 'stdClass'
]
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/ResolverTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/ResolverTest.php
similarity index 90%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/ResolverTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/ResolverTest.php
index b3994660d05fe723c3b5b72c69fb3c84c50a6ed8..bb6ba63cfb35fbf044fa59243939ade462cd1af8 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/ResolverTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/ResolverTest.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Dictionary\Options;
+namespace Magento\Setup\Test\Unit\Module\I18n\Dictionary\Options;
/**
* Class ResolverTest
@@ -19,9 +19,9 @@ class ResolverTest extends \PHPUnit_Framework_TestCase
public function testGetOptions($directory, $withContext, $result)
{
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- /** @var \Magento\Tools\I18n\Dictionary\Options\Resolver $resolver */
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Options\Resolver $resolver */
$resolver = $objectManagerHelper->getObject(
- 'Magento\Tools\I18n\Dictionary\Options\Resolver',
+ 'Magento\Setup\Module\I18n\Dictionary\Options\Resolver',
[
'directory' => $directory,
'withContext' => $withContext,
@@ -85,9 +85,9 @@ class ResolverTest extends \PHPUnit_Framework_TestCase
public function testGetOptionsWrongDir($directory, $withContext, $message)
{
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- /** @var \Magento\Tools\I18n\Dictionary\Options\Resolver $resolver */
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Options\Resolver $resolver */
$resolver = $objectManagerHelper->getObject(
- 'Magento\Tools\I18n\Dictionary\Options\Resolver',
+ 'Magento\Setup\Module\I18n\Dictionary\Options\Resolver',
[
'directory' => $directory,
'withContext' => $withContext,
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/_files/source/app/code/.gitignore b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/_files/source/app/code/.gitignore
similarity index 100%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/_files/source/app/code/.gitignore
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/_files/source/app/code/.gitignore
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/_files/source/app/design/.gitignore b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/_files/source/app/design/.gitignore
similarity index 100%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/_files/source/app/design/.gitignore
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/_files/source/app/design/.gitignore
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/_files/source/lib/web/mage/.gitignore b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/_files/source/lib/web/mage/.gitignore
similarity index 100%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/_files/source/lib/web/mage/.gitignore
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/_files/source/lib/web/mage/.gitignore
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/_files/source/lib/web/varien/.gitignore b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/_files/source/lib/web/varien/.gitignore
similarity index 100%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Options/_files/source/lib/web/varien/.gitignore
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Options/_files/source/lib/web/varien/.gitignore
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/PhraseTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/PhraseTest.php
similarity index 94%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/PhraseTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/PhraseTest.php
index fa919d12c52dc9cbe437eeddae6f4d74b9dc818b..309478e36978baa6c0eb174c44f237bde3ac2851 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/PhraseTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/PhraseTest.php
@@ -3,10 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Dictionary;
-
-use \Magento\Tools\I18n\Dictionary\Phrase;
+namespace Magento\Setup\Test\Unit\Module\I18n\Dictionary;
+use \Magento\Setup\Module\I18n\Dictionary\Phrase;
class PhraseTest extends \PHPUnit_Framework_TestCase
{
@@ -18,7 +17,7 @@ class PhraseTest extends \PHPUnit_Framework_TestCase
*/
public function testPhraseCreation($constructArguments, $getter, $result)
{
- $reflectionClass = new \ReflectionClass('Magento\Tools\I18n\Dictionary\Phrase');
+ $reflectionClass = new \ReflectionClass('Magento\Setup\Module\I18n\Dictionary\Phrase');
$phrase = $reflectionClass->newInstanceArgs($constructArguments);
$this->assertEquals($result, $phrase->{$getter}());
}
@@ -59,7 +58,7 @@ class PhraseTest extends \PHPUnit_Framework_TestCase
{
$this->setExpectedException('DomainException', $message);
- $reflectionClass = new \ReflectionClass('Magento\Tools\I18n\Dictionary\Phrase');
+ $reflectionClass = new \ReflectionClass('Magento\Setup\Module\I18n\Dictionary\Phrase');
$reflectionClass->newInstanceArgs($constructArguments);
}
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Writer/Csv/StdoTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Writer/Csv/StdoTest.php
similarity index 68%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Writer/Csv/StdoTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Writer/Csv/StdoTest.php
index 95cb7cabdc59de61ac53fc2280c78cd37e361343..2ea739d71453bd509ad993cb6143219a306c5bc9 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Writer/Csv/StdoTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Writer/Csv/StdoTest.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Dictionary\Writer\Csv;
+namespace Magento\Setup\Test\Unit\Module\I18n\Dictionary\Writer\Csv;
class StdoTest extends \PHPUnit_Framework_TestCase
{
@@ -20,8 +20,8 @@ class StdoTest extends \PHPUnit_Framework_TestCase
public function testThatHandlerIsRight()
{
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- /** @var \Magento\Tools\I18n\Dictionary\Writer\Csv $writer */
- $writer = $objectManagerHelper->getObject('Magento\Tools\I18n\Dictionary\Writer\Csv\Stdo');
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Writer\Csv $writer */
+ $writer = $objectManagerHelper->getObject('Magento\Setup\Module\I18n\Dictionary\Writer\Csv\Stdo');
$this->assertAttributeEquals($this->_handler, '_fileHandler', $writer);
}
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Writer/CsvTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Writer/CsvTest.php
similarity index 87%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Writer/CsvTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Writer/CsvTest.php
index 72033add5315e18349da8079ff02c7a203e3202e..5edc74cb629394097225f22bc7d8e42211d7fdd1 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Writer/CsvTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Writer/CsvTest.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Dictionary\Writer;
+namespace Magento\Setup\Test\Unit\Module\I18n\Dictionary\Writer;
class CsvTest extends \PHPUnit_Framework_TestCase
{
@@ -13,12 +13,12 @@ class CsvTest extends \PHPUnit_Framework_TestCase
protected $_testFile;
/**
- * @var \Magento\Tools\I18n\Dictionary\Phrase|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Dictionary\Phrase|\PHPUnit_Framework_MockObject_MockObject
*/
protected $_phraseFirstMock;
/**
- * @var \Magento\Tools\I18n\Dictionary\Phrase|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Dictionary\Phrase|\PHPUnit_Framework_MockObject_MockObject
*/
protected $_phraseSecondMock;
@@ -27,14 +27,14 @@ class CsvTest extends \PHPUnit_Framework_TestCase
$this->_testFile = str_replace('\\', '/', realpath(dirname(__FILE__))) . '/_files/test.csv';
$this->_phraseFirstMock = $this->getMock(
- 'Magento\Tools\I18n\Dictionary\Phrase',
+ 'Magento\Setup\Module\I18n\Dictionary\Phrase',
[],
[],
'',
false
);
$this->_phraseSecondMock = $this->getMock(
- 'Magento\Tools\I18n\Dictionary\Phrase',
+ 'Magento\Setup\Module\I18n\Dictionary\Phrase',
[],
[],
'',
@@ -57,7 +57,7 @@ class CsvTest extends \PHPUnit_Framework_TestCase
{
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
$objectManagerHelper->getObject(
- 'Magento\Tools\I18n\Dictionary\Writer\Csv',
+ 'Magento\Setup\Module\I18n\Dictionary\Writer\Csv',
['outputFilename' => 'wrong/path']
);
}
@@ -123,9 +123,9 @@ class CsvTest extends \PHPUnit_Framework_TestCase
);
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- /** @var \Magento\Tools\I18n\Dictionary\Writer\Csv $writer */
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Writer\Csv $writer */
$writer = $objectManagerHelper->getObject(
- 'Magento\Tools\I18n\Dictionary\Writer\Csv',
+ 'Magento\Setup\Module\I18n\Dictionary\Writer\Csv',
['outputFilename' => $this->_testFile]
);
$writer->write($this->_phraseFirstMock);
@@ -176,9 +176,9 @@ EXPECTED;
);
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- /** @var \Magento\Tools\I18n\Dictionary\Writer\Csv $writer */
+ /** @var \Magento\Setup\Module\I18n\Dictionary\Writer\Csv $writer */
$writer = $objectManagerHelper->getObject(
- 'Magento\Tools\I18n\Dictionary\Writer\Csv',
+ 'Magento\Setup\Module\I18n\Dictionary\Writer\Csv',
['outputFilename' => $this->_testFile]
);
$writer->write($this->_phraseFirstMock);
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Writer/_files/.gitignore b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Writer/_files/.gitignore
similarity index 100%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Dictionary/Writer/_files/.gitignore
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Dictionary/Writer/_files/.gitignore
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/DictionaryTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/DictionaryTest.php
similarity index 66%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/DictionaryTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/DictionaryTest.php
index a901907b0d86f533bd9919be3134f48c209002f7..9ed72a939fd7e3b977e6a28bd89d86da2d7c20ba 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/DictionaryTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/DictionaryTest.php
@@ -3,25 +3,25 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit;
+namespace Magento\Setup\Test\Unit\Module\I18n;
class DictionaryTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\I18n\Dictionary
+ * @var \Magento\Setup\Module\I18n\Dictionary
*/
protected $_dictionary;
protected function setUp()
{
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- $this->_dictionary = $objectManagerHelper->getObject('Magento\Tools\I18n\Dictionary');
+ $this->_dictionary = $objectManagerHelper->getObject('Magento\Setup\Module\I18n\Dictionary');
}
public function testPhraseCollecting()
{
- $phraseFirstMock = $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false);
- $phraseSecondMock = $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false);
+ $phraseFirstMock = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false);
+ $phraseSecondMock = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false);
$this->_dictionary->addPhrase($phraseFirstMock);
$this->_dictionary->addPhrase($phraseSecondMock);
@@ -31,11 +31,11 @@ class DictionaryTest extends \PHPUnit_Framework_TestCase
public function testGetDuplicates()
{
- $phraseFirstMock = $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false);
+ $phraseFirstMock = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false);
$phraseFirstMock->expects($this->once())->method('getKey')->will($this->returnValue('key_1'));
- $phraseSecondMock = $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false);
+ $phraseSecondMock = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false);
$phraseSecondMock->expects($this->once())->method('getKey')->will($this->returnValue('key_1'));
- $phraseThirdMock = $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false);
+ $phraseThirdMock = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false);
$phraseThirdMock->expects($this->once())->method('getKey')->will($this->returnValue('key_3'));
$this->_dictionary->addPhrase($phraseFirstMock);
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/FactoryTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/FactoryTest.php
similarity index 75%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/FactoryTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/FactoryTest.php
index 9d7b19a228b410627c063090415fa43932b97442..fbce20193f2746455eeb02a3714263c90f9c316d 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/FactoryTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/FactoryTest.php
@@ -3,19 +3,19 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit;
+namespace Magento\Setup\Test\Unit\Module\I18n;
class FactoryTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\I18n\Factory
+ * @var \Magento\Setup\Module\I18n\Factory
*/
protected $factory;
protected function setUp()
{
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- $this->factory = $objectManagerHelper->getObject('Magento\Tools\I18n\Factory');
+ $this->factory = $objectManagerHelper->getObject('Magento\Setup\Module\I18n\Factory');
}
/**
@@ -38,19 +38,19 @@ class FactoryTest extends \PHPUnit_Framework_TestCase
{
return [
[
- 'Magento\Tools\I18n\Dictionary\Writer\Csv',
+ 'Magento\Setup\Module\I18n\Dictionary\Writer\Csv',
TESTS_TEMP_DIR . '/filename.invalid_type',
],
[
- 'Magento\Tools\I18n\Dictionary\Writer\Csv',
+ 'Magento\Setup\Module\I18n\Dictionary\Writer\Csv',
TESTS_TEMP_DIR . '/filename'
],
[
- 'Magento\Tools\I18n\Dictionary\Writer\Csv',
+ 'Magento\Setup\Module\I18n\Dictionary\Writer\Csv',
TESTS_TEMP_DIR . '/filename.csv'
],
[
- 'Magento\Tools\I18n\Dictionary\Writer\Csv\Stdo',
+ 'Magento\Setup\Module\I18n\Dictionary\Writer\Csv\Stdo',
''
],
];
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/FilesCollectorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/FilesCollectorTest.php
similarity index 88%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/FilesCollectorTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/FilesCollectorTest.php
index b21dbe6971cdcb5b8e108c984e1cbcfc796ba858..5d1f5cfe4857f49b632e38be6cf85a988a12e8a3 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/FilesCollectorTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/FilesCollectorTest.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit;
+namespace Magento\Setup\Test\Unit\Module\I18n;
class FilesCollectorTest extends \PHPUnit_Framework_TestCase
{
@@ -13,7 +13,7 @@ class FilesCollectorTest extends \PHPUnit_Framework_TestCase
protected $_testDir;
/**
- * @var \Magento\Tools\I18n\FilesCollector
+ * @var \Magento\Setup\Module\I18n\FilesCollector
*/
protected $_filesCollector;
@@ -22,7 +22,7 @@ class FilesCollectorTest extends \PHPUnit_Framework_TestCase
$this->_testDir = str_replace('\\', '/', realpath(dirname(__FILE__))) . '/_files/files_collector/';
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- $this->_filesCollector = $objectManagerHelper->getObject('Magento\Tools\I18n\FilesCollector');
+ $this->_filesCollector = $objectManagerHelper->getObject('Magento\Setup\Module\I18n\FilesCollector');
}
public function testGetFilesWithoutMask()
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/LocaleTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/LocaleTest.php
similarity index 90%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/LocaleTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/LocaleTest.php
index 816773c05ac7db073044cc2381106fe143266ee9..09914f7863146d54f3256457a71523da26c7889e 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/LocaleTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/LocaleTest.php
@@ -3,10 +3,9 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit;
-
-use \Magento\Tools\I18n\Locale;
+namespace Magento\Setup\Test\Unit\Module\I18n;
+use \Magento\Setup\Module\I18n\Locale;
class LocaleTest extends \PHPUnit_Framework_TestCase
{
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Pack/GeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Pack/GeneratorTest.php
similarity index 70%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Pack/GeneratorTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Pack/GeneratorTest.php
index 4ca23c946a99bd976d17deee464cf886ffe5ff8c..0866b50cf75aa2843100f24c9d9be920e510b6c4 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Pack/GeneratorTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Pack/GeneratorTest.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Pack;
+namespace Magento\Setup\Test\Unit\Module\I18n\Pack;
/**
* Generator test
@@ -11,40 +11,40 @@ namespace Magento\Tools\I18n\Test\Unit\Pack;
class GeneratorTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\I18n\Dictionary\Loader\FileInterface|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Dictionary\Loader\FileInterface|\PHPUnit_Framework_MockObject_MockObject
*/
protected $dictionaryLoaderMock;
/**
- * @var \Magento\Tools\I18n\Pack\WriterInterface|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Pack\WriterInterface|\PHPUnit_Framework_MockObject_MockObject
*/
protected $packWriterMock;
/**
- * @var \Magento\Tools\I18n\Factory|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Factory|\PHPUnit_Framework_MockObject_MockObject
*/
protected $factoryMock;
/**
- * @var \Magento\Tools\I18n\Dictionary|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Dictionary|\PHPUnit_Framework_MockObject_MockObject
*/
protected $dictionaryMock;
/**
- * @var \Magento\Tools\I18n\Pack\Generator
+ * @var \Magento\Setup\Module\I18n\Pack\Generator
*/
protected $_generator;
protected function setUp()
{
- $this->dictionaryLoaderMock = $this->getMock('Magento\Tools\I18n\Dictionary\Loader\FileInterface');
- $this->packWriterMock = $this->getMock('Magento\Tools\I18n\Pack\WriterInterface');
- $this->factoryMock = $this->getMock('Magento\Tools\I18n\Factory', [], [], '', false);
- $this->dictionaryMock = $this->getMock('Magento\Tools\I18n\Dictionary', [], [], '', false);
+ $this->dictionaryLoaderMock = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Loader\FileInterface');
+ $this->packWriterMock = $this->getMock('Magento\Setup\Module\I18n\Pack\WriterInterface');
+ $this->factoryMock = $this->getMock('Magento\Setup\Module\I18n\Factory', [], [], '', false);
+ $this->dictionaryMock = $this->getMock('Magento\Setup\Module\I18n\Dictionary', [], [], '', false);
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
$this->_generator = $objectManagerHelper->getObject(
- 'Magento\Tools\I18n\Pack\Generator',
+ 'Magento\Setup\Module\I18n\Pack\Generator',
[
'dictionaryLoader' => $this->dictionaryLoaderMock,
'packWriter' => $this->packWriterMock,
@@ -60,9 +60,9 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
$localeString = 'locale';
$mode = 'mode';
$allowDuplicates = true;
- $localeMock = $this->getMock('Magento\Tools\I18n\Locale', [], [], '', false);
+ $localeMock = $this->getMock('Magento\Setup\Module\I18n\Locale', [], [], '', false);
- $phrases = [$this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false)];
+ $phrases = [$this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false)];
$this->dictionaryMock->expects($this->once())
->method('getPhrases')
->will($this->returnValue([$phrases]));
@@ -93,7 +93,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
$localeString = 'locale';
$mode = 'mode';
$allowDuplicates = true;
- $localeMock = $this->getMock('Magento\Tools\I18n\Locale', [], [], '', false);
+ $localeMock = $this->getMock('Magento\Setup\Module\I18n\Locale', [], [], '', false);
$this->factoryMock->expects($this->once())
->method('createLocale')
@@ -116,15 +116,15 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
$allowDuplicates = false;
- $phraseFirstMock = $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false);
+ $phraseFirstMock = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false);
$phraseFirstMock->expects($this->once())->method('getPhrase')->will($this->returnValue('phrase1'));
- $phraseSecondMock = $this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false);
+ $phraseSecondMock = $this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false);
$phraseSecondMock->expects($this->once())->method('getPhrase')->will($this->returnValue('phrase2'));
$this->dictionaryLoaderMock->expects($this->any())
->method('load')
->will($this->returnValue($this->dictionaryMock));
- $phrases = [$this->getMock('Magento\Tools\I18n\Dictionary\Phrase', [], [], '', false)];
+ $phrases = [$this->getMock('Magento\Setup\Module\I18n\Dictionary\Phrase', [], [], '', false)];
$this->dictionaryMock->expects($this->once())
->method('getPhrases')
->will($this->returnValue([$phrases]));
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/AbstractParserTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/AbstractParserTest.php
similarity index 84%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Parser/AbstractParserTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/AbstractParserTest.php
index dc2bdcc6a8a197eca62dbedb1a204d46233a7c4d..3e43fbdb86e6008c5867a9cdfc74137c8fd28038 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/AbstractParserTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/AbstractParserTest.php
@@ -3,19 +3,19 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Parser;
+namespace Magento\Setup\Test\Unit\Module\I18n\Parser;
class AbstractParserTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\I18n\Parser\AbstractParser|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Parser\AbstractParser|\PHPUnit_Framework_MockObject_MockObject
*/
protected $_parserMock;
protected function setUp()
{
$this->_parserMock = $this->getMockForAbstractClass(
- 'Magento\Tools\I18n\Parser\AbstractParser',
+ 'Magento\Setup\Module\I18n\Parser\AbstractParser',
[],
'',
false
@@ -31,7 +31,7 @@ class AbstractParserTest extends \PHPUnit_Framework_TestCase
{
$this->setExpectedException('InvalidArgumentException', $message);
- $this->_parserMock->addAdapter('php', $this->getMock('Magento\Tools\I18n\Parser\AdapterInterface'));
+ $this->_parserMock->addAdapter('php', $this->getMock('Magento\Setup\Module\I18n\Parser\AdapterInterface'));
$this->_parserMock->parse($options);
}
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/AbstractAdapterTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/AbstractAdapterTest.php
similarity index 74%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/AbstractAdapterTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/AbstractAdapterTest.php
index d56d8c7e9232f6056c78799151c44ff1657980ba..676c24fb0877979d663a511342ddd4055685401d 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/AbstractAdapterTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/AbstractAdapterTest.php
@@ -3,19 +3,19 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Parser\Adapter;
+namespace Magento\Setup\Test\Unit\Module\I18n\Parser\Adapter;
class AbstractAdapterTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\I18n\Parser\Adapter\AbstractAdapter|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Parser\Adapter\AbstractAdapter|\PHPUnit_Framework_MockObject_MockObject
*/
protected $_adapterMock;
protected function setUp()
{
$this->_adapterMock = $this->getMockForAbstractClass(
- 'Magento\Tools\I18n\Parser\Adapter\AbstractAdapter',
+ 'Magento\Setup\Module\I18n\Parser\Adapter\AbstractAdapter',
[],
'',
false,
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/JsTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/JsTest.php
similarity index 85%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/JsTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/JsTest.php
index 7ed1d77bf9cfb91cf1ca535377c5c0eac3ab8a7c..5494f0d4cb1dc427a73521f2cb71876f244202d0 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/JsTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/JsTest.php
@@ -3,10 +3,10 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Parser\Adapter;
+namespace Magento\Setup\Test\Unit\Module\I18n\Parser\Adapter;
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
-use Magento\Tools\I18n\Dictionary\Phrase;
+use Magento\Setup\Module\I18n\Dictionary\Phrase;
class JsTest extends \PHPUnit_Framework_TestCase
{
@@ -21,7 +21,7 @@ class JsTest extends \PHPUnit_Framework_TestCase
protected $_stringsCount;
/**
- * @var \Magento\Tools\I18n\Parser\Adapter\Js
+ * @var \Magento\Setup\Module\I18n\Parser\Adapter\Js
*/
protected $_adapter;
@@ -30,7 +30,7 @@ class JsTest extends \PHPUnit_Framework_TestCase
$this->_testFile = str_replace('\\', '/', realpath(dirname(__FILE__))) . '/_files/file.js';
$this->_stringsCount = count(file($this->_testFile));
- $this->_adapter = (new ObjectManager($this))->getObject('Magento\Tools\I18n\Parser\Adapter\Js');
+ $this->_adapter = (new ObjectManager($this))->getObject('Magento\Setup\Module\I18n\Parser\Adapter\Js');
}
public function testParse()
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/Php/Tokenizer/PhraseCollectorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollectorTest.php
similarity index 89%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/Php/Tokenizer/PhraseCollectorTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollectorTest.php
index 22d394b40a74f13b179e983b982d03c142991c3c..954bcc013ade66bfdd3c10c10597fe205f6f5e58 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/Php/Tokenizer/PhraseCollectorTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/Php/Tokenizer/PhraseCollectorTest.php
@@ -3,15 +3,15 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Parser\Adapter\Php\Tokenizer;
+namespace Magento\Setup\Test\Unit\Module\I18n\Parser\Adapter\Php\Tokenizer;
-use Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector;
-use Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token;
+use Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector;
+use Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token;
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
-use Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer;
+use Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer;
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector
*/
class PhraseCollectorTest extends \PHPUnit_Framework_TestCase
{
@@ -33,11 +33,11 @@ class PhraseCollectorTest extends \PHPUnit_Framework_TestCase
protected function setUp()
{
$this->objectManager = new ObjectManager($this);
- $this->tokenizerMock = $this->getMockBuilder('Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer')
+ $this->tokenizerMock = $this->getMockBuilder('Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer')
->disableOriginalConstructor()
->getMock();
$this->phraseCollector = $this->objectManager->getObject(
- 'Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector',
+ 'Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector',
[
'tokenizer' => $this->tokenizerMock
]
@@ -45,7 +45,7 @@ class PhraseCollectorTest extends \PHPUnit_Framework_TestCase
}
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector::parse
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector::parse
*
* @param string $file
* @param array $isEndOfLoopReturnValues
@@ -180,7 +180,7 @@ class PhraseCollectorTest extends \PHPUnit_Framework_TestCase
$value,
$line = null
) {
- $token = $this->getMockBuilder('Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token')
+ $token = $this->getMockBuilder('Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token')
->disableOriginalConstructor()
->getMock();
$token->expects($this->any())
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/Php/Tokenizer/TokenTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/Php/Tokenizer/TokenTest.php
similarity index 84%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/Php/Tokenizer/TokenTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/Php/Tokenizer/TokenTest.php
index 7bb0366e99dd9e5e6a71a59ca7f5bd5429786f17..26bcea7516dd2495526e0b75202c3082591a77c6 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/Php/Tokenizer/TokenTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/Php/Tokenizer/TokenTest.php
@@ -3,13 +3,13 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Parser\Adapter\Php\Tokenizer;
+namespace Magento\Setup\Test\Unit\Module\I18n\Parser\Adapter\Php\Tokenizer;
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
-use Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token;
+use Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token;
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token
*/
class TokenTest extends \PHPUnit_Framework_TestCase
{
@@ -24,7 +24,7 @@ class TokenTest extends \PHPUnit_Framework_TestCase
}
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token::isNew
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token::isNew
*
* @param int $name
* @param string $value
@@ -38,7 +38,7 @@ class TokenTest extends \PHPUnit_Framework_TestCase
}
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token::isNamespaceSeparator
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token::isNamespaceSeparator
*
* @param int $name
* @param string $value
@@ -52,7 +52,7 @@ class TokenTest extends \PHPUnit_Framework_TestCase
}
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token::isIdentifier
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token::isIdentifier
*
* @param int $name
* @param string $value
@@ -110,7 +110,7 @@ class TokenTest extends \PHPUnit_Framework_TestCase
{
$line = 110;
return $this->objectManager->getObject(
- 'Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\Token',
+ 'Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\Token',
[
'name' => $name,
'value' => $value,
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/Php/TokenizerTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/Php/TokenizerTest.php
similarity index 87%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/Php/TokenizerTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/Php/TokenizerTest.php
index a55a23be8af49366538d181bea2f8ad2fe995339..553f6b4143172af1e5effda8cafd4718e6be3806 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/Php/TokenizerTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/Php/TokenizerTest.php
@@ -3,14 +3,14 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Parser\Adapter\Php;
+namespace Magento\Setup\Test\Unit\Module\I18n\Parser\Adapter\Php;
-use \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer;
+use \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer;
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer
*/
class TokenizerTest extends \PHPUnit_Framework_TestCase
{
@@ -28,12 +28,12 @@ class TokenizerTest extends \PHPUnit_Framework_TestCase
{
$this->objectManager = new ObjectManager($this);
$this->tokenizer = $this->objectManager->getObject(
- 'Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer'
+ 'Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer'
);
}
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer::isMatchingClass
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer::isMatchingClass
*/
public function testIsMatchingClass()
{
@@ -56,7 +56,7 @@ class TokenizerTest extends \PHPUnit_Framework_TestCase
}
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer::getNextRealToken
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer::getNextRealToken
*/
public function testGetNextRealToken()
{
@@ -75,7 +75,7 @@ class TokenizerTest extends \PHPUnit_Framework_TestCase
}
/**
- * @covers \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer::isEndOfLoop
+ * @covers \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer::isEndOfLoop
*/
public function testIsEndOfLoop()
{
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/Php/_files/objectsCode.php.txt b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/Php/_files/objectsCode.php.txt
similarity index 100%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/Php/_files/objectsCode.php.txt
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/Php/_files/objectsCode.php.txt
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/PhpTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/PhpTest.php
similarity index 79%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/PhpTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/PhpTest.php
index 998295d16256308250579f0d43909b2fbad16e88..822749f27463694d1622f55f0759bb8d1695178d 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/PhpTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/PhpTest.php
@@ -3,25 +3,25 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Parser\Adapter;
+namespace Magento\Setup\Test\Unit\Module\I18n\Parser\Adapter;
class PhpTest extends \PHPUnit_Framework_TestCase
{
/**
* @var \PHPUnit_Framework_MockObject_MockObject|
- * \Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector
+ * \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector
*/
protected $_phraseCollectorMock;
/**
- * @var \Magento\Tools\I18n\Parser\Adapter\Php
+ * @var \Magento\Setup\Module\I18n\Parser\Adapter\Php
*/
protected $_adapter;
protected function setUp()
{
$this->_phraseCollectorMock = $this->getMock(
- 'Magento\Tools\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector',
+ 'Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer\PhraseCollector',
[],
[],
'',
@@ -30,7 +30,7 @@ class PhpTest extends \PHPUnit_Framework_TestCase
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
$this->_adapter = $objectManagerHelper->getObject(
- 'Magento\Tools\I18n\Parser\Adapter\Php',
+ 'Magento\Setup\Module\I18n\Parser\Adapter\Php',
['phraseCollector' => $this->_phraseCollectorMock]
);
}
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/XmlTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/XmlTest.php
similarity index 86%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/XmlTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/XmlTest.php
index 3d15878c33195e605e75c52939dc67c17e4bf3d5..2ccc135e4ffa7dfd4714c45cd48b92d0b5aad178 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/XmlTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/XmlTest.php
@@ -3,7 +3,7 @@
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-namespace Magento\Tools\I18n\Test\Unit\Parser\Adapter;
+namespace Magento\Setup\Test\Unit\Module\I18n\Parser\Adapter;
class XmlTest extends \PHPUnit_Framework_TestCase
{
@@ -13,7 +13,7 @@ class XmlTest extends \PHPUnit_Framework_TestCase
protected $_testFile;
/**
- * @var \Magento\Tools\I18n\Parser\Adapter\Xml
+ * @var \Magento\Setup\Module\I18n\Parser\Adapter\Xml
*/
protected $_adapter;
@@ -22,7 +22,7 @@ class XmlTest extends \PHPUnit_Framework_TestCase
$this->_testFile = str_replace('\\', '/', realpath(dirname(__FILE__))) . '/_files/default.xml';
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- $this->_adapter = $objectManagerHelper->getObject('Magento\Tools\I18n\Parser\Adapter\Xml');
+ $this->_adapter = $objectManagerHelper->getObject('Magento\Setup\Module\I18n\Parser\Adapter\Xml');
}
public function testParse()
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/_files/default.xml b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/_files/default.xml
similarity index 100%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/_files/default.xml
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/_files/default.xml
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/_files/file.js b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/_files/file.js
similarity index 100%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Parser/Adapter/_files/file.js
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/Adapter/_files/file.js
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/ParserTest.php b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/ParserTest.php
similarity index 90%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/Parser/ParserTest.php
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/ParserTest.php
index b7a6794b931c989ad12717bd6dce9baed2e85c33..5b03113a86248211a8c24a2910b57d142305a3b3 100644
--- a/dev/tools/Magento/Tools/I18n/Test/Unit/Parser/ParserTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/I18n/Parser/ParserTest.php
@@ -6,32 +6,32 @@
// @codingStandardsIgnoreFile
-namespace Magento\Tools\I18n\Test\Unit\Parser;
+namespace Magento\Setup\Test\Unit\Module\I18n\Parser;
-use Magento\Tools\I18n\Parser as Parser;
+use Magento\Setup\Module\I18n\Parser as Parser;
class ParserTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Tools\I18n\Parser\AbstractParser|\PHPUnit_Framework_MockObject_MockObject
+ * @var \Magento\Setup\Module\I18n\Parser\AbstractParser|\PHPUnit_Framework_MockObject_MockObject
*/
protected $parser;
/**
- * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Tools\I18n\FilesCollector
+ * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Setup\Module\I18n\FilesCollector
*/
protected $filesCollector;
/**
- * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Tools\I18n\Factory
+ * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Setup\Module\I18n\Factory
*/
protected $factory;
protected function setUp()
{
- $this->filesCollector = $this->getMock('Magento\Tools\I18n\FilesCollector');
- $this->factory = $this->getMock('Magento\Tools\I18n\Factory');
+ $this->filesCollector = $this->getMock('Magento\Setup\Module\I18n\FilesCollector');
+ $this->factory = $this->getMock('Magento\Setup\Module\I18n\Factory');
$this->parser = new Parser\Parser($this->filesCollector, $this->factory);
}
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/_files/files_collector/default.xml b/setup/src/Magento/Setup/Test/Unit/Module/I18n/_files/files_collector/default.xml
similarity index 100%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/_files/files_collector/default.xml
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/_files/files_collector/default.xml
diff --git a/dev/tools/Magento/Tools/I18n/Test/Unit/_files/files_collector/file.js b/setup/src/Magento/Setup/Test/Unit/Module/I18n/_files/files_collector/file.js
similarity index 100%
rename from dev/tools/Magento/Tools/I18n/Test/Unit/_files/files_collector/file.js
rename to setup/src/Magento/Setup/Test/Unit/Module/I18n/_files/files_collector/file.js
diff --git a/setup/view/magento/setup/readiness-check/progress.phtml b/setup/view/magento/setup/readiness-check/progress.phtml
index 275d677b1c8795c019e4122da50dd8274a775de2..d247f60402d7bb0a46cdd36ecf4361f7c3f5d6aa 100644
--- a/setup/view/magento/setup/readiness-check/progress.phtml
+++ b/setup/view/magento/setup/readiness-check/progress.phtml
@@ -75,7 +75,7 @@
</a>
</p>
<p ng-show="version.expanded">
- Donwload and install PHP version {{version.data.required}} from <a href="http://www.php.net" target="_blank">www.php.net</a> using this <a href="http://www.php.net/docs.php" target="_blank">PHP Documentation</a>.
+ Download and install PHP version {{version.data.required}} from <a href="http://www.php.net" target="_blank">www.php.net</a> using this <a href="http://www.php.net/docs.php" target="_blank">PHP Documentation</a>.
</p>
<p ng-show="version.expanded">If you need more help please call your hosting provider.</p>
</div>
@@ -86,15 +86,15 @@
</div>
-<div id="php-rawpost" class="rediness-check-item" ng-show="rawpost.visible">
+<div id="php-settings" class="rediness-check-item" ng-show="settings.visible">
- <h3 class="readiness-check-title" ng-hide="version.processed">
+ <h3 class="readiness-check-title" ng-hide="settings.processed">
Checking PHP Settings...
</h3>
- <div ng-show="rawpost.processed" ng-switch="rawpost.responseType">
+ <div ng-show="settings.processed" ng-switch="settings.responseType">
- <div ng-switch-when="success" ng-init="updateOnSuccess(rawpost)">
+ <div ng-switch-when="success" ng-init="updateOnSuccess(settings)">
<span class="readiness-check-icon icon-success-round"></span>
@@ -107,31 +107,22 @@
</div>
- <div class="readiness-check-item" ng-switch-default ng-init="updateOnError(rawpost)">
-
- <div class="rediness-check-side">
- <p class="side-title">Need Help?</p>
- <a href="http://php.net/manual/en/ini.core.php#ini.always-populate-raw-post-data" target="_blank">PHP Documentation</a>
- </div>
+ <div class="readiness-check-item" ng-switch-default ng-init="updateOnError(settings)">
<span class="readiness-check-icon icon-failed-round"></span>
+ <h3 class="readiness-check-title">PHP Settings Check</h3>
- <div class="readiness-check-content">
- <h3 class="readiness-check-title">PHP Settings Check</h3>
- <p>
- Your PHP Version is {{rawpost.data.version}}, but always_populate_raw_post_data = {{rawpost.data.ini}}.
- <a href="#php-rawpost" ng-click="updateOnExpand(rawpost)">
- <span ng-hide="rawpost.expanded">Show detail</span>
- <span ng-show="rawpost.expanded">Hide detail</span>
- </a>
- </p>
- <p ng-show="rawpost.expanded">
- $HTTP_RAW_POST_DATA is deprecated from PHP 5.6 onwards and will stop the installer from running.
- Please open your php.ini file and set always_populate_raw_post_data to -1.
- </p>
- <p ng-show="rawpost.expanded">If you need more help please call your hosting provider.</p>
+ <div ng-repeat="setting in settings.data">
+ <div ng-show="setting.error && setting.helpUrl" class="rediness-check-side">
+ <p class="side-title">Need Help?</p>
+ <a href="{{setting.helpUrl}}" target="_blank">PHP Documentation</a>
+ </div>
+ <div ng-show="setting.error" class="readiness-check-content">
+ <p>
+ {{setting.message}}
+ </p>
+ </div>
</div>
-
</div>
</div>