/usr/share/php/tests/Horde_Argv/Horde/Argv/CallbackMeddleArgsTest.php is in php-horde-argv 2.0.7-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | <?php
require_once __DIR__ . '/TestCase.php';
/**
* @author Chuck Hagenbuch <chuck@horde.org>
* @author Mike Naberezny <mike@maintainable.com>
* @license http://www.horde.org/licenses/bsd BSD
* @category Horde
* @package Argv
* @subpackage UnitTests
*/
class Horde_Argv_CallbackMeddleArgsTest extends Horde_Argv_TestCase
{
public function setUp()
{
parent::setUp();
$options = array();
for ($i = -1; $i > -6; $i--) {
$options[] = $this->makeOption((string)$i, array('action' => 'callback',
'callback' => array($this, 'process_n'),
'dest' => 'things'));
}
$this->parser = new Horde_Argv_Parser(array('optionList' => $options));
}
/**
* Callback that meddles in rargs, largs
*/
public function process_n($option, $opt, $value, $parser)
{
// option is -3, -5, etc.
$nargs = (int)substr($opt, 1);
$rargs =& $parser->rargs;
if (count($rargs) < $nargs) {
$this->fail(sprintf("Expected %d arguments for %s option.", $nargs, $opt));
}
$parser->values->{$option->dest}[] = array_splice($rargs, 0, $nargs);
$parser->largs[] = $nargs;
}
public function testCallbackMeddleArgs()
{
$this->assertParseOK(array("-1", "foo", "-3", "bar", "baz", "qux"),
array('things' => array(array('foo'), array('bar', 'baz', 'qux'))),
array(1, 3));
}
public function testCallbackMeddleArgsSeparator()
{
$this->assertParseOK(array("-2", "foo", "--"),
array('things' => array(array('foo', '--'))),
array(2));
}
}
|