diff options
| author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
|---|---|---|
| committer | <> | 2013-04-03 16:25:08 +0000 |
| commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
| tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /ext/filter/tests/029.phpt | |
| download | php2-master.tar.gz | |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/filter/tests/029.phpt')
| -rw-r--r-- | ext/filter/tests/029.phpt | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/ext/filter/tests/029.phpt b/ext/filter/tests/029.phpt new file mode 100644 index 0000000..c1ede74 --- /dev/null +++ b/ext/filter/tests/029.phpt @@ -0,0 +1,105 @@ +--TEST-- +filter_var() and FILTER_CALLBACK +--SKIPIF-- +<?php if (!extension_loaded("filter")) die("skip"); ?> +--FILE-- +<?php + +/* Simple callback function */ +function test($var) { + return strtoupper($var); +} + +var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test"))); +var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>"test"))); +var_dump(filter_var("", FILTER_CALLBACK, array("options"=>"test"))); +var_dump(filter_var("qwe", FILTER_CALLBACK, array("options"=>"no such func"))); +var_dump(filter_var("qwe", FILTER_CALLBACK, array("options"=>""))); +var_dump(filter_var("qwe", FILTER_CALLBACK)); + +/* Simple class method callback */ +class test_class { + static function test ($var) { + return strtolower($var); + } +} + +var_dump(filter_var("dAtA", FILTER_CALLBACK, array("options"=>array("test_class", "test")))); +var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>array("test_class","test")))); +var_dump(filter_var("", FILTER_CALLBACK, array("options"=>array("test_class","test")))); + +/* empty function without return value */ +function test1($var) { +} + +var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test1"))); +var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>"test1"))); +var_dump(filter_var("", FILTER_CALLBACK, array("options"=>"test1"))); + +/* attempting to change data by reference */ +function test2(&$var) { + $var = 1; +} + +var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test2"))); +var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>"test2"))); +var_dump(filter_var("", FILTER_CALLBACK, array("options"=>"test2"))); + +/* unsetting data */ +function test3(&$var) { + unset($var); +} + +var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test3"))); +var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>"test3"))); +var_dump(filter_var("", FILTER_CALLBACK, array("options"=>"test3"))); + +/* unset data and return value */ +function test4(&$var) { + unset($var); + return 1; +} + +var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test4"))); + +/* thrown exception in the callback */ +function test5(&$var) { + throw new Exception("test"); +} + +try { + var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test5"))); +} catch (Exception $e) { + var_dump($e->getMessage()); +} + +echo "Done\n"; +?> +--EXPECTF-- +string(4) "DATA" +string(46) "~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?"}{:" +string(0) "" + +Warning: filter_var(): First argument is expected to be a valid callback in %s on line %d +NULL + +Warning: filter_var(): First argument is expected to be a valid callback in %s on line %d +NULL + +Warning: filter_var(): First argument is expected to be a valid callback in %s on line %d +NULL +string(4) "data" +string(46) "~!@#$%^&*()_qwertyuiopasdfghjklzxcvbnm<>>?"}{:" +string(0) "" +NULL +NULL +NULL +NULL +NULL +NULL +NULL +NULL +NULL +int(1) +string(4) "test" +Done |
