1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\CoreConsole\Commands;
use Piwik\Development;
use Piwik\Plugin\ConsoleCommand;
class DevelopmentManageTestFiles extends ConsoleCommand
{
public function isEnabled(): bool
{
return Development::isEnabled();
}
protected function configure()
{
$this->setName('development:test-files');
$this->setDescription("Manage test files.");
$this->addRequiredArgument('operation', 'The operation to apply. Supported operations include: '
. '"copy"');
$this->addRequiredValueOption('file', null, "The file (or files) to apply the operation to.");
// TODO: allow copying by regex pattern
}
protected function doExecute(): int
{
$operation = $this->getInput()->getArgument('operation');
if ($operation == 'copy') {
$this->copy();
} else {
throw new \Exception("Invalid operation '$operation'.");
}
return self::SUCCESS;
}
private function copy()
{
$file = $this->getInput()->getOption('file');
$prefix = PIWIK_INCLUDE_PATH . '/tests/PHPUnit/System/processed/';
$guesses = array(
'/' . $file,
$prefix . $file,
$prefix . $file . '.xml',
);
foreach ($guesses as $guess) {
if (is_file($guess)) {
$file = $guess;
}
}
copy($file, PIWIK_INCLUDE_PATH . '/tests/PHPUnit/System/expected/' . basename($file));
}
}
|