[ticket/12610] Fix tests and use getOption() for console

PHPBB3-12610
This commit is contained in:
Marc Alexander 2016-12-05 15:46:05 +01:00
parent 32aa0596f3
commit 103d344cd4
No known key found for this signature in database
GPG key ID: 50E0D2423696F995
2 changed files with 32 additions and 25 deletions

View file

@ -110,25 +110,26 @@ class check extends \phpbb\console\command\command
} }
else else
{ {
return $this->check_ext($io, $stability, $recheck, $ext_name); return $this->check_ext($input, $io, $stability, $recheck, $ext_name);
} }
} }
else else
{ {
return $this->check_core($io,$stability, $recheck); return $this->check_core($input, $io, $stability, $recheck);
} }
} }
/** /**
* Check if a given extension is up to date * Check if a given extension is up to date
* *
* @param SymfonyStyle $io IO handler, for formatted and unified IO * @param InputInterface $input Input stream, used to get the options.
* @param string $stability Force a given stability * @param SymfonyStyle $io IO handler, for formatted and unified IO
* @param bool $recheck Disallow the use of the cache * @param string $stability Force a given stability
* @param string $ext_name The extension name * @param bool $recheck Disallow the use of the cache
* @param string $ext_name The extension name
* @return int * @return int
*/ */
protected function check_ext(SymfonyStyle $io, $stability, $recheck, $ext_name) protected function check_ext(InputInterface $input, SymfonyStyle $io, $stability, $recheck, $ext_name)
{ {
try try
{ {
@ -137,7 +138,7 @@ class check extends \phpbb\console\command\command
$updates_available = $ext_manager->version_check($md_manager, $recheck, false, $stability); $updates_available = $ext_manager->version_check($md_manager, $recheck, false, $stability);
$metadata = $md_manager->get_metadata('all'); $metadata = $md_manager->get_metadata('all');
if ($io->isVerbose()) if ($input->getOption('verbose'))
{ {
$io->title($md_manager->get_metadata('display-name')); $io->title($md_manager->get_metadata('display-name'));
@ -146,7 +147,7 @@ class check extends \phpbb\console\command\command
if (!empty($updates_available)) if (!empty($updates_available))
{ {
if ($io->isVerbose()) if ($input->getOption('verbose'))
{ {
$io->caution($this->language->lang('NOT_UP_TO_DATE', $metadata['name'])); $io->caution($this->language->lang('NOT_UP_TO_DATE', $metadata['name']));
@ -157,7 +158,7 @@ class check extends \phpbb\console\command\command
} }
else else
{ {
if ($io->isVerbose()) if ($input->getOption('verbose'))
{ {
$io->success($this->language->lang('UPDATE_NOT_NEEDED')); $io->success($this->language->lang('UPDATE_NOT_NEEDED'));
} }
@ -176,19 +177,20 @@ class check extends \phpbb\console\command\command
/** /**
* Check if the core is up to date * Check if the core is up to date
* *
* @param SymfonyStyle $io IO handler, for formatted and unified IO * @param InputInterface $input Input stream, used to get the options.
* @param string $stability Force a given stability * @param SymfonyStyle $io IO handler, for formatted and unified IO
* @param bool $recheck Disallow the use of the cache * @param string $stability Force a given stability
* @param bool $recheck Disallow the use of the cache
* @return int * @return int
*/ */
protected function check_core(SymfonyStyle $io, $stability, $recheck) protected function check_core(InputInterface $input, SymfonyStyle $io, $stability, $recheck)
{ {
$version_helper = $this->phpbb_container->get('version_helper'); $version_helper = $this->phpbb_container->get('version_helper');
$version_helper->force_stability($stability); $version_helper->force_stability($stability);
$updates_available = $version_helper->get_suggested_updates($recheck); $updates_available = $version_helper->get_suggested_updates($recheck);
if ($io->isVerbose()) if ($input->getOption('verbose'))
{ {
$io->title('phpBB core'); $io->title('phpBB core');
@ -199,7 +201,7 @@ class check extends \phpbb\console\command\command
{ {
$io->caution($this->language->lang('UPDATE_NEEDED')); $io->caution($this->language->lang('UPDATE_NEEDED'));
if ($io->isVerbose()) if ($input->getOption('verbose'))
{ {
$this->display_versions($io, $updates_available); $this->display_versions($io, $updates_available);
} }
@ -208,7 +210,7 @@ class check extends \phpbb\console\command\command
} }
else else
{ {
if ($io->isVerbose()) if ($input->getOption('verbose'))
{ {
$io->success($this->language->lang('UPDATE_NOT_NEEDED')); $io->success($this->language->lang('UPDATE_NOT_NEEDED'));
} }
@ -220,7 +222,7 @@ class check extends \phpbb\console\command\command
/** /**
* Check if all the available extensions are up to date * Check if all the available extensions are up to date
* *
* @param SymfonyStyle $io IO handler, for formatted and unified IO * @param SymfonyStyle $io IO handler, for formatted and unified IO
* @param bool $recheck Disallow the use of the cache * @param bool $recheck Disallow the use of the cache
* @return int * @return int
*/ */

View file

@ -28,6 +28,9 @@ class phpbb_console_command_check_test extends phpbb_test_case
protected $version_helper; protected $version_helper;
/** @var \phpbb\language\language */
protected $language;
public function test_up_to_date() public function test_up_to_date()
{ {
$command_tester = $this->get_command_tester('100000'); $command_tester = $this->get_command_tester('100000');
@ -40,7 +43,7 @@ class phpbb_console_command_check_test extends phpbb_test_case
{ {
$command_tester = $this->get_command_tester('100000'); $command_tester = $this->get_command_tester('100000');
$status = $command_tester->execute(array('command' => $this->command_name, '--no-ansi' => true, '--verbose' => true)); $status = $command_tester->execute(array('command' => $this->command_name, '--no-ansi' => true, '--verbose' => true));
$this->assertContains('UPDATE_NOT_NEEDED', $command_tester->getDisplay()); $this->assertContains($this->language->lang('UPDATE_NOT_NEEDED'), $command_tester->getDisplay());
$this->assertSame($status, 0); $this->assertSame($status, 0);
} }
@ -49,7 +52,7 @@ class phpbb_console_command_check_test extends phpbb_test_case
{ {
$command_tester = $this->get_command_tester('0'); $command_tester = $this->get_command_tester('0');
$status = $command_tester->execute(array('command' => $this->command_name, '--no-ansi' => true)); $status = $command_tester->execute(array('command' => $this->command_name, '--no-ansi' => true));
$this->assertContains('UPDATE_NEEDED', $command_tester->getDisplay()); $this->assertContains($this->language->lang('UPDATE_NEEDED'), $command_tester->getDisplay());
$this->assertSame($status, 1); $this->assertSame($status, 1);
} }
@ -57,8 +60,8 @@ class phpbb_console_command_check_test extends phpbb_test_case
{ {
$command_tester = $this->get_command_tester('0'); $command_tester = $this->get_command_tester('0');
$status = $command_tester->execute(array('command' => $this->command_name, '--no-ansi' => true, '--verbose' => true)); $status = $command_tester->execute(array('command' => $this->command_name, '--no-ansi' => true, '--verbose' => true));
$this->assertContains('UPDATE_NEEDED', $command_tester->getDisplay()); $this->assertContains($this->language->lang('UPDATE_NEEDED'), $command_tester->getDisplay());
$this->assertContains('UPDATES_AVAILABLE', $command_tester->getDisplay()); $this->assertContains($this->language->lang('UPDATES_AVAILABLE'), $command_tester->getDisplay());
$this->assertSame($status, 1); $this->assertSame($status, 1);
} }
@ -77,10 +80,12 @@ class phpbb_console_command_check_test extends phpbb_test_case
public function get_command_tester($current_version) public function get_command_tester($current_version)
{ {
global $user; global $user, $phpbb_root_path, $phpEx;
$this->language = new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx));
$user = $this->getMock('\phpbb\user', array(), array( $user = $this->getMock('\phpbb\user', array(), array(
new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx)), $this->language,
'\phpbb\datetime' '\phpbb\datetime'
)); ));
$user->method('lang')->will($this->returnArgument(0)); $user->method('lang')->will($this->returnArgument(0));
@ -96,7 +101,7 @@ class phpbb_console_command_check_test extends phpbb_test_case
$container->set('version_helper', $this->version_helper); $container->set('version_helper', $this->version_helper);
$application = new Application(); $application = new Application();
$application->add(new check($user, $config, $container)); $application->add(new check($user, $config, $container, $this->language));
$command = $application->find('update:check'); $command = $application->find('update:check');
$this->command_name = $command->getName(); $this->command_name = $command->getName();