diff vendor/pear/console_commandline/tests/tests.inc.php @ 0:1e000243b222

vanilla 1.3.3 distro, I hope
author Charlie Root
date Thu, 04 Jan 2018 15:50:29 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/pear/console_commandline/tests/tests.inc.php	Thu Jan 04 15:50:29 2018 -0500
@@ -0,0 +1,494 @@
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * This file is part of the PEAR Console_CommandLine package.
+ *
+ * PHP version 5
+ *
+ * LICENSE: This source file is subject to the MIT license that is available
+ * through the world-wide-web at the following URI:
+ * http://opensource.org/licenses/mit-license.php
+ *
+ * @category  Console 
+ * @package   Console_CommandLine
+ * @author    David JEAN LOUIS <izimobil@gmail.com>
+ * @copyright 2007 David JEAN LOUIS
+ * @license   http://opensource.org/licenses/mit-license.php MIT License 
+ * @version   CVS: $Id$
+ * @link      http://pear.php.net/package/Console_CommandLine
+ * @since     File available since release 0.1.0
+ */
+
+if (php_sapi_name() != 'cli') {
+    // tests with php-cgi need this
+    ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR 
+        . dirname(__FILE__) . '/../');
+}
+
+/**
+ * Required classes
+ */
+require_once 'Console/CommandLine.php';
+require_once 'Console/CommandLine/Renderer.php';
+require_once 'Console/CommandLine/Outputter.php';
+require_once 'Console/CommandLine/MessageProvider.php';
+
+// rot13Callback() {{{
+
+/**
+ * A dummy callback for tests purposes.
+ * 
+ * @param mixed  $value  value provided by the user
+ * @param object $option the option instance
+ * @param object $result the result instance
+ * @param object $parser the parser instance
+ * @param array  $params optional params array
+ * 
+ * @return string
+ */
+function rot13Callback($value, $option, $result, $parser, $params=array())
+{
+    $ret = '';
+    if (isset($params['prefix'])) {
+        $ret .= $params['prefix'] . '__';
+    }
+    $ret .= str_rot13($value);
+    if (isset($params['suffix'])) {
+        $ret .= '__' . $params['suffix'];
+    }
+    return $ret;
+}
+
+// }}}
+// buildParser1() {{{
+
+/**
+ * Build a parser instance and return it.
+ *
+ * @return object Console_CommandLine instance
+ */
+function buildParser1()
+{
+    $parser              = new Console_CommandLine();
+    $parser->name        = 'some_program';
+    $parser->version     = '0.1.0';
+    $parser->description = 'Description of our parser goes here...';
+
+    // add options
+    $parser->addOption('true', array(
+        'short_name'  => '-t',
+        'long_name'   => '--true',
+        'action'      => 'StoreTrue',
+        'description' => 'test the StoreTrue action'
+    ));
+    $parser->addOption('false', array(
+        'short_name'  => '-f',
+        'long_name'   => '--false',
+        'action'      => 'StoreFalse',
+        'description' => 'test the StoreFalse action'
+    ));
+    $parser->addOption('int', array(
+        'long_name'   => '--int',
+        'action'      => 'StoreInt',
+        'description' => 'test the StoreInt action',
+        'help_name'   => 'INT',
+        'default'     => 1
+    ));
+    $parser->addOption('float', array(
+        'long_name'   => '--float',
+        'action'      => 'StoreFloat',
+        'description' => 'test the StoreFloat action',
+        'help_name'   => 'FLOAT',
+        'default'     => 1.0
+    ));
+    $parser->addOption('string', array(
+        'short_name'  => '-s',
+        'long_name'   => '--string',
+        'action'      => 'StoreString',
+        'description' => 'test the StoreString action',
+        'help_name'   => 'STRING',
+        'choices'     => array('foo', 'bar', 'baz')
+    ));
+    $parser->addOption('counter', array(
+        'short_name'  => '-c',
+        'long_name'   => '--counter',
+        'action'      => 'Counter',
+        'description' => 'test the Counter action'
+    ));
+    $parser->addOption('callback', array(
+        'long_name'     => '--callback',
+        'action'        => 'Callback',
+        'description'   => 'test the Callback action',
+        'callback'      => 'rot13Callback',
+        'action_params' => array('prefix' => 'foo', 'suffix' => 'bar')
+    ));
+    $parser->addOption('array', array(
+        'short_name'  => '-a',
+        'long_name'   => '--array',
+        'default'     => array('spam', 'egg'),
+        'action'      => 'StoreArray',
+        'help_name'   => 'ARRAY',
+        'description' => 'test the StoreArray action'
+    ));
+    $parser->addOption('password', array(
+        'short_name'  => '-p',
+        'long_name'   => '--password',
+        'action'      => 'Password',
+        'description' => 'test the Password action'
+    ));
+    $parser->addArgument('simple', array(
+        'description' => 'test a simple argument'
+    ));
+    $parser->addArgument('multiple', array(
+        'description' => 'test a multiple argument',
+        'multiple'    => true,
+        'optional'    => true
+    ));
+    return $parser;
+}
+
+// }}}
+// buildParser2() {{{
+
+/**
+ * Build a parser instance and return it.
+ *
+ * @return object Console_CommandLine instance
+ */
+function buildParser2()
+{
+    $parser              = new Console_CommandLine();
+    $parser->name        = 'some_program';
+    $parser->version     = '0.1.0';
+    $parser->description = 'Description of our parser goes here...';
+
+    // add general options
+    $parser->addOption('verbose', array(
+        'short_name'  => '-v',
+        'long_name'   => '--verbose',
+        'action'      => 'StoreTrue',
+        'description' => 'verbose mode'
+    ));
+    $parser->addOption('logfile', array(
+        'short_name'  => '-l',
+        'long_name'   => '--logfile',
+        'action'      => 'StoreString',
+        'description' => 'path to logfile'
+    ));
+ 
+    // install subcommand
+    $cmd1 = $parser->addCommand('install', array(
+        'description' => 'install given package',
+        'aliases'     => array('inst', 'instbis'),
+    ));
+    $cmd1->addOption('force', array(
+        'short_name'  => '-f',
+        'long_name'   => '--force',
+        'action'      => 'StoreTrue',
+        'description' => 'force installation'
+    ));
+    $cmd1->addArgument('package', array(
+        'description' => 'package to install'
+    ));
+
+    // uninstall subcommand
+    $cmd2 = $parser->addCommand('uninstall', array(
+        'description' => 'uninstall given package'
+    ));
+    $cmd2->addArgument('package', array(
+        'description' => 'package to uninstall'
+    ));
+    return $parser;
+}
+
+// }}}
+// buildParser3() {{{
+
+/**
+ * Build a parser instance and return it.
+ *
+ * @return object Console_CommandLine instance
+ */
+function buildParser3()
+{
+    $parser              = new Console_CommandLine();
+    $parser->name        = 'some_program';
+    $parser->version     = '0.1.0';
+    $parser->description = 'Description of our parser goes here...';
+    // we force options default values
+    $parser->force_options_defaults = true;
+
+    // add options
+    $parser->addOption('true', array(
+        'short_name'  => '-t',
+        'long_name'   => '--true',
+        'action'      => 'StoreTrue',
+        'description' => 'test the StoreTrue action',
+    ));
+    $parser->addOption('false', array(
+        'short_name'  => '-f',
+        'long_name'   => '--false',
+        'action'      => 'StoreFalse',
+        'description' => 'test the StoreFalse action',
+    ));
+    $parser->addOption('int', array(
+        'long_name'   => '--int',
+        'action'      => 'StoreInt',
+        'description' => 'test the StoreInt action',
+        'help_name'   => 'INT',
+    ));
+    $parser->addOption('float', array(
+        'long_name'   => '--float',
+        'action'      => 'StoreFloat',
+        'description' => 'test the StoreFloat action',
+        'help_name'   => 'FLOAT',
+    ));
+    $parser->addOption('string', array(
+        'short_name'  => '-s',
+        'long_name'   => '--string',
+        'action'      => 'StoreString',
+        'description' => 'test the StoreString action',
+        'help_name'   => 'STRING',
+        'choices'     => array('foo', 'bar', 'baz')
+    ));
+    $parser->addOption('counter', array(
+        'short_name'  => '-c',
+        'long_name'   => '--counter',
+        'action'      => 'Counter',
+        'description' => 'test the Counter action'
+    ));
+    $parser->addOption('callback', array(
+        'long_name'     => '--callback',
+        'action'        => 'Callback',
+        'description'   => 'test the Callback action',
+        'callback'      => 'rot13Callback',
+        'action_params' => array('prefix' => 'foo', 'suffix' => 'bar')
+    ));
+    $parser->addOption('array', array(
+        'short_name'  => '-a',
+        'long_name'   => '--array',
+        'action'      => 'StoreArray',
+        'help_name'   => 'ARRAY',
+        'description' => 'test the StoreArray action'
+    ));
+    $parser->addOption('password', array(
+        'short_name'  => '-p',
+        'long_name'   => '--password',
+        'action'      => 'Password',
+        'description' => 'test the Password action'
+    ));
+    return $parser;
+}
+
+// }}}
+// {{{ buildParser4()
+
+/**
+ * Build a parser instance and return it.
+ *
+ * For testing custom messages.
+ *
+ * @return object Console_CommandLine instance
+ */
+function buildParser4()
+{
+    $parser = new Console_CommandLine(array(
+        'messages' => array(
+            'INVALID_SUBCOMMAND' => 'Only "upgrade" is supported.',
+        ),
+    ));
+    $parser->name        = 'some_program';
+    $parser->version     = '0.1.0';
+    $parser->description = 'Description of our parser goes here...';
+
+    // some subcommand
+    $cmd1 = $parser->addCommand('upgrade', array(
+        'description' => 'upgrade given package',
+        'aliases'     => array('up'),
+        'messages'    => array(
+            'ARGUMENT_REQUIRED'       => 'Package name is required.',
+            'OPTION_VALUE_REQUIRED'   => 'Option requires value.',
+            'OPTION_VALUE_UNEXPECTED' => 'Option should not have a value.',
+            'OPTION_UNKNOWN'          => 'Mysterious option encountered.',
+        ),
+    ));
+    // add option
+    $cmd1->addOption('state', array(
+        'short_name'  => '-s',
+        'long_name'   => '--state',
+        'action'      => 'StoreString',
+        'choices'     => array('stable', 'beta'),
+        'description' => 'accepted package states',
+        'messages'    => array(
+            'OPTION_VALUE_NOT_VALID' => 'Valid states are "stable" and "beta".',
+        ),
+    ));
+    // add another option
+    $cmd1->addOption('dry_run', array(
+        'short_name'  => '-d',
+        'long_name'   => '--dry-run',
+        'action'      => 'StoreTrue',
+        'description' => 'dry run',
+    ));
+    // add argument
+    $cmd1->addArgument('package', array(
+        'description' => 'package to upgrade'
+    ));
+
+    return $parser;
+}
+
+// }}}
+// CustomRenderer() {{{
+
+/**
+ * Some custom renderer for tests purposes.
+ *
+ * @category  Console
+ * @package   Console_CommandLine
+ * @author    David JEAN LOUIS <izimobil@gmail.com>
+ * @copyright 2007 David JEAN LOUIS
+ * @license   http://opensource.org/licenses/mit-license.php MIT License 
+ * @version   Release: @package_version@
+ * @link      http://pear.php.net/package/Console_CommandLine
+ * @since     File available since release 0.1.0
+ */
+class CustomRenderer implements Console_CommandLine_Renderer
+{
+    // usage() {{{
+
+    /**
+     * Return the full usage message
+     *
+     * @return string the usage message
+     * @access public
+     */
+    public function usage()
+    {
+        return __METHOD__ . '()';
+    }
+    // }}}
+    // error() {{{
+
+    /**
+     * Return a formatted error message
+     *
+     * @param string $error the error message to format
+     *
+     * @return string the error string
+     * @access public
+     */
+    public function error($error)
+    {
+        return __METHOD__ . "($error)";
+    }
+
+    // }}}
+    // version() {{{
+
+    /**
+     * Return the program version string
+     *
+     * @return string the version string
+     * @access public
+     */
+    public function version()
+    {
+        return __METHOD__ . '()';
+    }
+
+    // }}}
+}
+
+// }}}
+// CustomOutputter() {{{
+
+/**
+ * Some custom outputter for tests purposes.
+ *
+ * @category  Console
+ * @package   Console_CommandLine
+ * @author    David JEAN LOUIS <izimobil@gmail.com>
+ * @copyright 2007 David JEAN LOUIS
+ * @license   http://opensource.org/licenses/mit-license.php MIT License 
+ * @version   Release: @package_version@
+ * @link      http://pear.php.net/package/Console_CommandLine
+ * @since     File available since release 0.1.0
+ */
+class CustomOutputter implements Console_CommandLine_Outputter
+{
+    // stdout() {{{
+
+    /**
+     * Called for stdout messages.
+     *
+     * @param string $msg the message to output
+     *
+     * @return void
+     * @access public
+     */
+    public function stdout($msg)
+    {
+        echo "STDOUT >> $msg\n";
+    }
+
+    // }}}
+    // stderr() {{{
+
+    /**
+     * Called for stderr messages.
+     *
+     * @param string $msg the message to output
+     *
+     * @return void
+     * @access public
+     */
+    public function stderr($msg)
+    {
+        echo "STDERR >> $msg\n";
+    }
+
+    // }}}
+}
+
+// }}}
+// CustomMessageProvider() {{{
+
+/**
+ * Some custom message provider for tests purposes.
+ *
+ * @category  Console
+ * @package   Console_CommandLine
+ * @author    David JEAN LOUIS <izimobil@gmail.com>
+ * @copyright 2007 David JEAN LOUIS
+ * @license   http://opensource.org/licenses/mit-license.php MIT License 
+ * @version   Release: @package_version@
+ * @link      http://pear.php.net/package/Console_CommandLine
+ * @since     File available since release 0.1.0
+ */
+class CustomMessageProvider implements Console_CommandLine_MessageProvider
+{
+    // get() {{{
+
+    /**
+     * Retrieve the given string identifier corresponding message.
+     *
+     * @param string $code the string identifier of the message
+     * @param array  $vars an array of template variables
+     *
+     * @return string
+     * @access public
+     */
+    public function get($code, $vars = array())
+    {
+        return $code;
+    }
+
+    // }}}
+}
+
+// }}}
+
+?>