diff options
Diffstat (limited to 'devel-utf8/tests/exec.t')
-rwxr-xr-x | devel-utf8/tests/exec.t | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/devel-utf8/tests/exec.t b/devel-utf8/tests/exec.t new file mode 100755 index 0000000..689bd26 --- /dev/null +++ b/devel-utf8/tests/exec.t @@ -0,0 +1,23 @@ +#!/www/server/bin/php -qC +<?php + +# Tests for getopt in it.class + +is(it::exec("echo gna"), "gna\n", "basic exec"); +is(it::exec("echo {arg}", array('arg' => 'gna')), "gna\n", "exec with argument"); +is(it::shell_command("echo {arg}", array('arg' => 'gna07,-:blah')), "echo gna07,-:blah", "don't quote arguments with only whitelistes characters"); +is(it::shell_command("echo {arg}", array('arg' => '2>&1')), "echo '2>&1'", "quote arguments with dangerous characters"); +is(it::shell_command("echo {arg}", array('arg' => '')), "echo ''", "quote empty arguments"); + +foreach (array("", "C", "de_CH", "de_CH.utf8") as $locale) { + setlocale(LC_ALL, $locale); + $arg = "preüpost"; + if (it::match('utf8', $locale)) + $arg = utf8_encode($arg); + is(it::exec("echo " . $arg), $arg . "\n", "exec with umlaut (locale '$locale')"); + is(it::exec("echo {arg}", array('arg' => $arg)), $arg . "\n", "exec with argument and umlaut (locale '$locale')"); +} + +is(it::_exec_quotevalue(""), "''", "empty arg needs quotes"); +is(it::_exec_quotevalue("*"), "'*'", "special chars need quotes"); +is(it::_exec_quotevalue("Aabcdef0123456789"), "Aabcdef0123456789", "simple case. tel:debug_getdata needs unquoted vals"); |