diff --git a/cake/console/libs/help_formatter.php b/cake/console/libs/help_formatter.php index 82f40563ad0..a728d147314 100644 --- a/cake/console/libs/help_formatter.php +++ b/cake/console/libs/help_formatter.php @@ -29,11 +29,12 @@ public function __construct(ConsoleOptionParser $parser) { } /** - * 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(); diff --git a/cake/tests/cases/console/libs/console_option_parser.test.php b/cake/tests/cases/console/libs/console_option_parser.test.php index a3806d82a31..2b46cd00b7f 100644 --- a/cake/tests/cases/console/libs/console_option_parser.test.php +++ b/cake/tests/cases/console/libs/console_option_parser.test.php @@ -366,64 +366,6 @@ function testAddSubcommands() { $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 = <<Usage: -cake mycommand [-h] [--test] [-c default] - -Options: - ---help, -h Display this help. ---test A test option. ---connection, -c The connection to use. (default: - default) - -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 = <<Usage: -cake mycommand [-h] [--test] [] - -Options: - ---help, -h Display this help. ---test A test option. - -Arguments: - -model The model to make. -other_longer Another argument. (optional) - -TEXT; - $this->assertEquals($expected, $result, 'Help does not match'); - } - /** * test that no exception is triggered when help is being generated * @@ -438,104 +380,6 @@ function testHelpNoExceptionWhenGettingHelp() { $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 = <<Usage: -cake mycommand [-h] [--test one|two] [] - -Options: - ---help, -h Display this help. ---test A test option. (choices: one|two) - -Arguments: - -type Resource type. (choices: aco|aro) -other_longer Another argument. (optional) - -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 = <<Usage: -cake mycommand [-h] [--test] - -Options: - ---help, -h Display this help. ---test A test option. - -Arguments: - -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 = <<Usage: -cake mycommand [subcommand] [-h] [--test] - -Subcommands: - -method This is another command - -To see help on a subcommand use `cake mycommand [subcommand] --help` - -Options: - ---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 @@ function testParsingWithSubParser() { $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 = <<Usage: -cake test [subcommand] [-h] [--four] [] - -Subcommands: - -four this is help text this - is help text - -To see help on a subcommand use `cake test [subcommand] --help` - -Options: - ---help, -h Display this help. ---four this is help text - this is help text - -Arguments: - -four this is help text this - is help text - (optional) - -TEXT; - $this->assertEquals($expected, $result, 'Generated help is too wide'); - } - } \ No newline at end of file diff --git a/cake/tests/cases/console/libs/help_formatter.test.php b/cake/tests/cases/console/libs/help_formatter.test.php index 06a24d96cfc..4b54e37fc69 100644 --- a/cake/tests/cases/console/libs/help_formatter.test.php +++ b/cake/tests/cases/console/libs/help_formatter.test.php @@ -16,7 +16,9 @@ function testWidthFormatting() { ->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 = <<addArgument('other_longer', array('help' => 'Another argument.')); - $result = $parser->help(); + $formatter = new HelpFormatter($parser); + $result = $formatter->text(); $expected = <<Usage: cake mycommand [-h] [--test one|two] [] @@ -93,7 +96,8 @@ function testHelpDescriptionAndEpilog() { ->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 = <<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 = <<Usage: cake mycommand [subcommand] [-h] [--test] @@ -141,36 +146,6 @@ function testHelpSubcommand() { --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 = <<Usage: -cake mycommand method [-h] [--connection] - -Options: - ---help, -h Display this help. ---connection Db connection. - TEXT; $this->assertEquals($expected, $result, 'Help is not correct.'); } @@ -187,7 +162,8 @@ function testHelpWithOptions() { 'short' => 'c', 'help' => 'The connection to use.', 'default' => 'default' )); - $result = $parser->help(); + $formatter = new HelpFormatter($parser); + $result = $formatter->text(); $expected = <<Usage: cake mycommand [-h] [--test] [-c default] @@ -214,7 +190,8 @@ function testHelpWithOptionsAndArguments() { ->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 = <<Usage: cake mycommand [-h] [--test] []