mirror of
				https://github.com/brmlab/brmbiolab_sklad.git
				synced 2025-10-30 23:14:01 +01:00 
			
		
		
		
	Initial commit
This commit is contained in:
		
						commit
						3b93da31de
					
				
					 1004 changed files with 265840 additions and 0 deletions
				
			
		
							
								
								
									
										509
									
								
								lib/Cake/Test/Case/Console/HelpFormatterTest.php
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										509
									
								
								lib/Cake/Test/Case/Console/HelpFormatterTest.php
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,509 @@ | |||
| <?php | ||||
| /** | ||||
|  * HelpFormatterTest file | ||||
|  * | ||||
|  * CakePHP(tm) Tests <http://book.cakephp.org/2.0/en/development/testing.html> | ||||
|  * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) | ||||
|  * | ||||
|  * Licensed under The MIT License | ||||
|  * For full copyright and license information, please see the LICENSE.txt | ||||
|  * Redistributions of files must retain the above copyright notice | ||||
|  * | ||||
|  * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) | ||||
|  * @link          http://book.cakephp.org/2.0/en/development/testing.html CakePHP(tm) Tests | ||||
|  * @package       Cake.Test.Case.Console | ||||
|  * @since         CakePHP(tm) v 2.0 | ||||
|  * @license       http://www.opensource.org/licenses/mit-license.php MIT License | ||||
|  */ | ||||
| 
 | ||||
| App::uses('ConsoleOptionParser', 'Console'); | ||||
| App::uses('HelpFormatter', 'Console'); | ||||
| 
 | ||||
| /** | ||||
|  * Class HelpFormatterTest | ||||
|  * | ||||
|  * @package       Cake.Test.Case.Console | ||||
|  */ | ||||
| class HelpFormatterTest extends CakeTestCase { | ||||
| 
 | ||||
| /** | ||||
|  * test that the console max width is respected when generating help. | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public 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')); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->text(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->assertTextEquals($expected, $result, 'Generated help is too wide'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * test help() with options and arguments that have choices. | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public 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.')); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->text(); | ||||
| 		$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->assertTextEquals($expected, $result, 'Help does not match'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * test description and epilog in the help | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public 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)); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->text(); | ||||
| 		$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->assertTextEquals($expected, $result, 'Help is wrong.'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * test that help() outputs subcommands. | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testHelpSubcommand() { | ||||
| 		$parser = new ConsoleOptionParser('mycommand', false); | ||||
| 		$parser->addSubcommand('method', array('help' => 'This is another command')) | ||||
| 			->addOption('test', array('help' => 'A test option.')); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->text(); | ||||
| 		$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->assertTextEquals($expected, $result, 'Help is not correct.'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * test getting help with defined options. | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public 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' | ||||
| 			)); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->text(); | ||||
| 		$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->assertTextEquals($expected, $result, 'Help does not match'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * test getting help with defined options. | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public 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.')); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->text(); | ||||
| 		$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->assertTextEquals($expected, $result, 'Help does not match'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * Test that a long set of options doesn't make useless output. | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testHelpWithLotsOfOptions() { | ||||
| 		$parser = new ConsoleOptionParser('mycommand', false); | ||||
| 		$parser | ||||
| 			->addOption('test', array('help' => 'A test option.')) | ||||
| 			->addOption('test2', array('help' => 'A test option.')) | ||||
| 			->addOption('test3', array('help' => 'A test option.')) | ||||
| 			->addOption('test4', array('help' => 'A test option.')) | ||||
| 			->addOption('test5', array('help' => 'A test option.')) | ||||
| 			->addOption('test6', array('help' => 'A test option.')) | ||||
| 			->addOption('test7', array('help' => 'A test option.')) | ||||
| 			->addArgument('model', array('help' => 'The model to make.', 'required' => true)) | ||||
| 			->addArgument('other_longer', array('help' => 'Another argument.')); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->text(); | ||||
| 		$expected = 'cake mycommand [options] <model> [<other_longer>]'; | ||||
| 		$this->assertContains($expected, $result); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * Test that a long set of arguments doesn't make useless output. | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testHelpWithLotsOfArguments() { | ||||
| 		$parser = new ConsoleOptionParser('mycommand', false); | ||||
| 		$parser | ||||
| 			->addArgument('test', array('help' => 'A test option.')) | ||||
| 			->addArgument('test2', array('help' => 'A test option.')) | ||||
| 			->addArgument('test3', array('help' => 'A test option.')) | ||||
| 			->addArgument('test4', array('help' => 'A test option.')) | ||||
| 			->addArgument('test5', array('help' => 'A test option.')) | ||||
| 			->addArgument('test6', array('help' => 'A test option.')) | ||||
| 			->addArgument('test7', array('help' => 'A test option.')) | ||||
| 			->addArgument('model', array('help' => 'The model to make.', 'required' => true)) | ||||
| 			->addArgument('other_longer', array('help' => 'Another argument.')); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->text(); | ||||
| 		$expected = 'cake mycommand [-h] [arguments]'; | ||||
| 		$this->assertContains($expected, $result); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * test help() with options and arguments that have choices. | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testXmlHelpWithChoices() { | ||||
| 		$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.')); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->xml(); | ||||
| 		$expected = <<<TEXT | ||||
| <?xml version="1.0"?>
 | ||||
| <shell> | ||||
| <name>mycommand</name> | ||||
| <description>Description text</description> | ||||
| <subcommands /> | ||||
| <options> | ||||
| 	<option name="--help" short="-h" help="Display this help." boolean="1"> | ||||
| 		<default></default> | ||||
| 		<choices></choices> | ||||
| 	</option> | ||||
| 	<option name="--test" short="" help="A test option." boolean="0"> | ||||
| 		<default></default> | ||||
| 		<choices> | ||||
| 			<choice>one</choice> | ||||
| 			<choice>two</choice> | ||||
| 		</choices> | ||||
| 	</option> | ||||
| </options> | ||||
| <arguments> | ||||
| 	<argument name="type" help="Resource type." required="1"> | ||||
| 		<choices> | ||||
| 			<choice>aco</choice> | ||||
| 			<choice>aro</choice> | ||||
| 		</choices> | ||||
| 	</argument> | ||||
| </arguments> | ||||
| <epilog>epilog text</epilog> | ||||
| </shell> | ||||
| TEXT; | ||||
| 		$this->assertEquals(new DomDocument($expected), new DomDocument($result), 'Help does not match'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * test description and epilog in the help | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testXmlHelpDescriptionAndEpilog() { | ||||
| 		$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)); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->xml(); | ||||
| 		$expected = <<<TEXT | ||||
| <?xml version="1.0"?>
 | ||||
| <shell> | ||||
| <name>mycommand</name> | ||||
| <description>Description text</description> | ||||
| <subcommands /> | ||||
| <options> | ||||
| 	<option name="--help" short="-h" help="Display this help." boolean="1"> | ||||
| 		<default></default> | ||||
| 		<choices></choices> | ||||
| 	</option> | ||||
| 	<option name="--test" short="" help="A test option." boolean="0"> | ||||
| 		<default></default> | ||||
| 		<choices></choices> | ||||
| 	</option> | ||||
| </options> | ||||
| <arguments> | ||||
| 	<argument name="model" help="The model to make." required="1"> | ||||
| 		<choices></choices> | ||||
| 	</argument> | ||||
| </arguments> | ||||
| <epilog>epilog text</epilog> | ||||
| </shell> | ||||
| TEXT; | ||||
| 		$this->assertEquals(new DomDocument($expected), new DomDocument($result), 'Help does not match'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * test that help() outputs subcommands. | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testXmlHelpSubcommand() { | ||||
| 		$parser = new ConsoleOptionParser('mycommand', false); | ||||
| 		$parser->addSubcommand('method', array('help' => 'This is another command')) | ||||
| 			->addOption('test', array('help' => 'A test option.')); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->xml(); | ||||
| 		$expected = <<<TEXT | ||||
| <?xml version="1.0"?>
 | ||||
| <shell> | ||||
| <name>mycommand</name> | ||||
| <description/> | ||||
| <subcommands> | ||||
| 	<command name="method" help="This is another command" /> | ||||
| </subcommands> | ||||
| <options> | ||||
| 	<option name="--help" short="-h" help="Display this help." boolean="1"> | ||||
| 		<default></default> | ||||
| 		<choices></choices> | ||||
| 	</option> | ||||
| 	<option name="--test" short="" help="A test option." boolean="0"> | ||||
| 		<default></default> | ||||
| 		<choices></choices> | ||||
| 	</option> | ||||
| </options> | ||||
| <arguments/> | ||||
| <epilog/> | ||||
| </shell> | ||||
| TEXT; | ||||
| 		$this->assertEquals(new DomDocument($expected), new DomDocument($result), 'Help does not match'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * test getting help with defined options. | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testXmlHelpWithOptions() { | ||||
| 		$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' | ||||
| 			)); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->xml(); | ||||
| 		$expected = <<<TEXT | ||||
| <?xml version="1.0"?>
 | ||||
| <shell> | ||||
| <name>mycommand</name> | ||||
| <description/> | ||||
| <subcommands/> | ||||
| <options> | ||||
| 	<option name="--help" short="-h" help="Display this help." boolean="1"> | ||||
| 		<default></default> | ||||
| 		<choices></choices> | ||||
| 	</option> | ||||
| 	<option name="--test" short="" help="A test option." boolean="0"> | ||||
| 		<default></default> | ||||
| 		<choices></choices> | ||||
| 	</option> | ||||
| 	<option name="--connection" short="-c" help="The connection to use." boolean="0"> | ||||
| 		<default>default</default> | ||||
| 		<choices></choices> | ||||
| 	</option> | ||||
| </options> | ||||
| <arguments/> | ||||
| <epilog/> | ||||
| </shell> | ||||
| TEXT; | ||||
| 		$this->assertEquals(new DomDocument($expected), new DomDocument($result), 'Help does not match'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * test getting help with defined options. | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testXmlHelpWithOptionsAndArguments() { | ||||
| 		$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.')); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->xml(); | ||||
| 		$expected = <<<TEXT | ||||
| <?xml version="1.0"?>
 | ||||
| <shell> | ||||
| 	<name>mycommand</name> | ||||
| 	<description/> | ||||
| 	<subcommands/> | ||||
| 	<options> | ||||
| 		<option name="--help" short="-h" help="Display this help." boolean="1"> | ||||
| 			<default></default> | ||||
| 			<choices></choices> | ||||
| 		</option> | ||||
| 		<option name="--test" short="" help="A test option." boolean="0"> | ||||
| 			<default></default> | ||||
| 			<choices></choices> | ||||
| 		</option> | ||||
| 	</options> | ||||
| 	<arguments> | ||||
| 		<argument name="model" help="The model to make." required="1"> | ||||
| 			<choices></choices> | ||||
| 		</argument> | ||||
| 		<argument name="other_longer" help="Another argument." required="0"> | ||||
| 			<choices></choices> | ||||
| 		</argument> | ||||
| 	</arguments> | ||||
| 	<epilog/> | ||||
| </shell> | ||||
| TEXT; | ||||
| 		$this->assertEquals(new DomDocument($expected), new DomDocument($result), 'Help does not match'); | ||||
| 	} | ||||
| 
 | ||||
| /** | ||||
|  * Test xml help as object | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| 	public function testXmlHelpAsObject() { | ||||
| 		$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.')); | ||||
| 
 | ||||
| 		$formatter = new HelpFormatter($parser); | ||||
| 		$result = $formatter->xml(false); | ||||
| 		$this->assertInstanceOf('SimpleXmlElement', $result); | ||||
| 	} | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 mareksebera
						mareksebera