mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Moving tests over to the HelpFormatter.
This commit is contained in:
parent
78e76a2f9e
commit
52a494402b
3 changed files with 16 additions and 236 deletions
|
@ -29,11 +29,12 @@ class HelpFormatter {
|
|||
}
|
||||
|
||||
/**
|
||||
* Get the help as text.
|
||||
* Get the help as formatted text suitable for output on the command line.
|
||||
*
|
||||
* @param integer $width The width of the help output.
|
||||
* @return string
|
||||
*/
|
||||
public function text($width) {
|
||||
public function text($width = 72) {
|
||||
$parser = $this->_parser;
|
||||
$out = array();
|
||||
$description = $parser->description();
|
||||
|
|
|
@ -366,64 +366,6 @@ class ConsoleOptionParserTest extends CakeTestCase {
|
|||
$this->assertEquals(2, count($result), 'Not enough subcommands');
|
||||
}
|
||||
|
||||
/**
|
||||
* test getting help with defined options.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testHelpWithOptions() {
|
||||
$parser = new ConsoleOptionParser('mycommand', false);
|
||||
$parser->addOption('test', array('help' => 'A test option.'))
|
||||
->addOption('connection', array(
|
||||
'short' => 'c', 'help' => 'The connection to use.', 'default' => 'default'
|
||||
));
|
||||
|
||||
$result = $parser->help();
|
||||
$expected = <<<TEXT
|
||||
<info>Usage:</info>
|
||||
cake mycommand [-h] [--test] [-c default]
|
||||
|
||||
<info>Options:</info>
|
||||
|
||||
--help, -h Display this help.
|
||||
--test A test option.
|
||||
--connection, -c The connection to use. <comment>(default:
|
||||
default)</comment>
|
||||
|
||||
TEXT;
|
||||
$this->assertEquals($expected, $result, 'Help does not match');
|
||||
}
|
||||
|
||||
/**
|
||||
* test getting help with defined options.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testHelpWithOptionsAndArguments() {
|
||||
$parser = new ConsoleOptionParser('mycommand', false);
|
||||
$parser->addOption('test', array('help' => 'A test option.'))
|
||||
->addArgument('model', array('help' => 'The model to make.', 'required' => true))
|
||||
->addArgument('other_longer', array('help' => 'Another argument.'));
|
||||
|
||||
$result = $parser->help();
|
||||
$expected = <<<TEXT
|
||||
<info>Usage:</info>
|
||||
cake mycommand [-h] [--test] <model> [<other_longer>]
|
||||
|
||||
<info>Options:</info>
|
||||
|
||||
--help, -h Display this help.
|
||||
--test A test option.
|
||||
|
||||
<info>Arguments:</info>
|
||||
|
||||
model The model to make.
|
||||
other_longer Another argument. <comment>(optional)</comment>
|
||||
|
||||
TEXT;
|
||||
$this->assertEquals($expected, $result, 'Help does not match');
|
||||
}
|
||||
|
||||
/**
|
||||
* test that no exception is triggered when help is being generated
|
||||
*
|
||||
|
@ -438,104 +380,6 @@ TEXT;
|
|||
$this->assertTrue($result[0]['help']);
|
||||
}
|
||||
|
||||
/**
|
||||
* test help() with options and arguments that have choices.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testHelpWithChoices() {
|
||||
$parser = new ConsoleOptionParser('mycommand', false);
|
||||
$parser->addOption('test', array('help' => 'A test option.', 'choices' => array('one', 'two')))
|
||||
->addArgument('type', array(
|
||||
'help' => 'Resource type.',
|
||||
'choices' => array('aco', 'aro'),
|
||||
'required' => true
|
||||
))
|
||||
->addArgument('other_longer', array('help' => 'Another argument.'));
|
||||
|
||||
$result = $parser->help();
|
||||
$expected = <<<TEXT
|
||||
<info>Usage:</info>
|
||||
cake mycommand [-h] [--test one|two] <aco|aro> [<other_longer>]
|
||||
|
||||
<info>Options:</info>
|
||||
|
||||
--help, -h Display this help.
|
||||
--test A test option. <comment>(choices: one|two)</comment>
|
||||
|
||||
<info>Arguments:</info>
|
||||
|
||||
type Resource type. <comment>(choices: aco|aro)</comment>
|
||||
other_longer Another argument. <comment>(optional)</comment>
|
||||
|
||||
TEXT;
|
||||
$this->assertEquals($expected, $result, 'Help does not match');
|
||||
}
|
||||
|
||||
/**
|
||||
* test description and epilog in the help
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testHelpDescriptionAndEpilog() {
|
||||
$parser = new ConsoleOptionParser('mycommand', false);
|
||||
$parser->description('Description text')
|
||||
->epilog('epilog text')
|
||||
->addOption('test', array('help' => 'A test option.'))
|
||||
->addArgument('model', array('help' => 'The model to make.', 'required' => true));
|
||||
|
||||
$result = $parser->help();
|
||||
$expected = <<<TEXT
|
||||
Description text
|
||||
|
||||
<info>Usage:</info>
|
||||
cake mycommand [-h] [--test] <model>
|
||||
|
||||
<info>Options:</info>
|
||||
|
||||
--help, -h Display this help.
|
||||
--test A test option.
|
||||
|
||||
<info>Arguments:</info>
|
||||
|
||||
model The model to make.
|
||||
|
||||
epilog text
|
||||
|
||||
TEXT;
|
||||
$this->assertEquals($expected, $result, 'Help is wrong.');
|
||||
}
|
||||
|
||||
/**
|
||||
* test that help() outputs subcommands.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testHelpSubcommand() {
|
||||
$parser = new ConsoleOptionParser('mycommand', false);
|
||||
$parser->addSubcommand('method', array('help' => 'This is another command'))
|
||||
->addOption('test', array('help' => 'A test option.'));
|
||||
|
||||
$result = $parser->help();
|
||||
$expected = <<<TEXT
|
||||
<info>Usage:</info>
|
||||
cake mycommand [subcommand] [-h] [--test]
|
||||
|
||||
<info>Subcommands:</info>
|
||||
|
||||
method This is another command
|
||||
|
||||
To see help on a subcommand use <info>`cake mycommand [subcommand] --help`</info>
|
||||
|
||||
<info>Options:</info>
|
||||
|
||||
--help, -h Display this help.
|
||||
--test A test option.
|
||||
|
||||
TEXT;
|
||||
$this->assertEquals($expected, $result, 'Help is not correct.');
|
||||
}
|
||||
|
||||
/**
|
||||
* test that help() with a command param shows the help for a subcommand
|
||||
*
|
||||
|
@ -648,46 +492,4 @@ TEXT;
|
|||
$this->assertEquals($expected, $result, 'Sub parser did not parse request.');
|
||||
}
|
||||
|
||||
/**
|
||||
* test that the console max width is respected when generating help.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testWidthFormatting() {
|
||||
$parser = new ConsoleOptionParser('test', false);
|
||||
$parser->description(__('This is fifteen This is fifteen This is fifteen'))
|
||||
->addOption('four', array('help' => 'this is help text this is help text'))
|
||||
->addArgument('four', array('help' => 'this is help text this is help text'))
|
||||
->addSubcommand('four', array('help' => 'this is help text this is help text'));
|
||||
$result = $parser->help(null, 30);
|
||||
$expected = <<<TEXT
|
||||
This is fifteen This is
|
||||
fifteen This is fifteen
|
||||
|
||||
<info>Usage:</info>
|
||||
cake test [subcommand] [-h] [--four] [<four>]
|
||||
|
||||
<info>Subcommands:</info>
|
||||
|
||||
four this is help text this
|
||||
is help text
|
||||
|
||||
To see help on a subcommand use <info>`cake test [subcommand] --help`</info>
|
||||
|
||||
<info>Options:</info>
|
||||
|
||||
--help, -h Display this help.
|
||||
--four this is help text
|
||||
this is help text
|
||||
|
||||
<info>Arguments:</info>
|
||||
|
||||
four this is help text this
|
||||
is help text
|
||||
<comment>(optional)</comment>
|
||||
|
||||
TEXT;
|
||||
$this->assertEquals($expected, $result, 'Generated help is too wide');
|
||||
}
|
||||
|
||||
}
|
|
@ -16,7 +16,9 @@ class HelpFormatterTest extends CakeTestCase {
|
|||
->addOption('four', array('help' => 'this is help text this is help text'))
|
||||
->addArgument('four', array('help' => 'this is help text this is help text'))
|
||||
->addSubcommand('four', array('help' => 'this is help text this is help text'));
|
||||
$result = $parser->help(null, 30);
|
||||
|
||||
$formatter = new HelpFormatter($parser);
|
||||
$result = $formatter->text(30);
|
||||
$expected = <<<TEXT
|
||||
This is fifteen This is
|
||||
fifteen This is fifteen
|
||||
|
@ -62,7 +64,8 @@ TEXT;
|
|||
))
|
||||
->addArgument('other_longer', array('help' => 'Another argument.'));
|
||||
|
||||
$result = $parser->help();
|
||||
$formatter = new HelpFormatter($parser);
|
||||
$result = $formatter->text();
|
||||
$expected = <<<TEXT
|
||||
<info>Usage:</info>
|
||||
cake mycommand [-h] [--test one|two] <aco|aro> [<other_longer>]
|
||||
|
@ -93,7 +96,8 @@ TEXT;
|
|||
->addOption('test', array('help' => 'A test option.'))
|
||||
->addArgument('model', array('help' => 'The model to make.', 'required' => true));
|
||||
|
||||
$result = $parser->help();
|
||||
$formatter = new HelpFormatter($parser);
|
||||
$result = $formatter->text();
|
||||
$expected = <<<TEXT
|
||||
Description text
|
||||
|
||||
|
@ -125,7 +129,8 @@ TEXT;
|
|||
$parser->addSubcommand('method', array('help' => 'This is another command'))
|
||||
->addOption('test', array('help' => 'A test option.'));
|
||||
|
||||
$result = $parser->help();
|
||||
$formatter = new HelpFormatter($parser);
|
||||
$result = $formatter->text();
|
||||
$expected = <<<TEXT
|
||||
<info>Usage:</info>
|
||||
cake mycommand [subcommand] [-h] [--test]
|
||||
|
@ -141,36 +146,6 @@ To see help on a subcommand use <info>`cake mycommand [subcommand] --help`</info
|
|||
--help, -h Display this help.
|
||||
--test A test option.
|
||||
|
||||
TEXT;
|
||||
$this->assertEquals($expected, $result, 'Help is not correct.');
|
||||
}
|
||||
|
||||
/**
|
||||
* test that help() with a command param shows the help for a subcommand
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testHelpSubcommandHelp() {
|
||||
$subParser = new ConsoleOptionParser('method', false);
|
||||
$subParser->addOption('connection', array('help' => 'Db connection.'));
|
||||
|
||||
$parser = new ConsoleOptionParser('mycommand', false);
|
||||
$parser->addSubcommand('method', array(
|
||||
'help' => 'This is another command',
|
||||
'parser' => $subParser
|
||||
))
|
||||
->addOption('test', array('help' => 'A test option.'));
|
||||
|
||||
$result = $parser->help('method');
|
||||
$expected = <<<TEXT
|
||||
<info>Usage:</info>
|
||||
cake mycommand method [-h] [--connection]
|
||||
|
||||
<info>Options:</info>
|
||||
|
||||
--help, -h Display this help.
|
||||
--connection Db connection.
|
||||
|
||||
TEXT;
|
||||
$this->assertEquals($expected, $result, 'Help is not correct.');
|
||||
}
|
||||
|
@ -187,7 +162,8 @@ TEXT;
|
|||
'short' => 'c', 'help' => 'The connection to use.', 'default' => 'default'
|
||||
));
|
||||
|
||||
$result = $parser->help();
|
||||
$formatter = new HelpFormatter($parser);
|
||||
$result = $formatter->text();
|
||||
$expected = <<<TEXT
|
||||
<info>Usage:</info>
|
||||
cake mycommand [-h] [--test] [-c default]
|
||||
|
@ -214,7 +190,8 @@ TEXT;
|
|||
->addArgument('model', array('help' => 'The model to make.', 'required' => true))
|
||||
->addArgument('other_longer', array('help' => 'Another argument.'));
|
||||
|
||||
$result = $parser->help();
|
||||
$formatter = new HelpFormatter($parser);
|
||||
$result = $formatter->text();
|
||||
$expected = <<<TEXT
|
||||
<info>Usage:</info>
|
||||
cake mycommand [-h] [--test] <model> [<other_longer>]
|
||||
|
|
Loading…
Reference in a new issue