Annotation of embedaddon/php/ext/filter/tests/029.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: filter_var() and FILTER_CALLBACK
! 3: --SKIPIF--
! 4: <?php if (!extension_loaded("filter")) die("skip"); ?>
! 5: --FILE--
! 6: <?php
! 7:
! 8: /* Simple callback function */
! 9: function test($var) {
! 10: return strtoupper($var);
! 11: }
! 12:
! 13: var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test")));
! 14: var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>"test")));
! 15: var_dump(filter_var("", FILTER_CALLBACK, array("options"=>"test")));
! 16: var_dump(filter_var("qwe", FILTER_CALLBACK, array("options"=>"no such func")));
! 17: var_dump(filter_var("qwe", FILTER_CALLBACK, array("options"=>"")));
! 18: var_dump(filter_var("qwe", FILTER_CALLBACK));
! 19:
! 20: /* Simple class method callback */
! 21: class test_class {
! 22: static function test ($var) {
! 23: return strtolower($var);
! 24: }
! 25: }
! 26:
! 27: var_dump(filter_var("dAtA", FILTER_CALLBACK, array("options"=>array("test_class", "test"))));
! 28: var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>array("test_class","test"))));
! 29: var_dump(filter_var("", FILTER_CALLBACK, array("options"=>array("test_class","test"))));
! 30:
! 31: /* empty function without return value */
! 32: function test1($var) {
! 33: }
! 34:
! 35: var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test1")));
! 36: var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>"test1")));
! 37: var_dump(filter_var("", FILTER_CALLBACK, array("options"=>"test1")));
! 38:
! 39: /* attempting to change data by reference */
! 40: function test2(&$var) {
! 41: $var = 1;
! 42: }
! 43:
! 44: var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test2")));
! 45: var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>"test2")));
! 46: var_dump(filter_var("", FILTER_CALLBACK, array("options"=>"test2")));
! 47:
! 48: /* unsetting data */
! 49: function test3(&$var) {
! 50: unset($var);
! 51: }
! 52:
! 53: var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test3")));
! 54: var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>"test3")));
! 55: var_dump(filter_var("", FILTER_CALLBACK, array("options"=>"test3")));
! 56:
! 57: /* unset data and return value */
! 58: function test4(&$var) {
! 59: unset($var);
! 60: return 1;
! 61: }
! 62:
! 63: var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test4")));
! 64:
! 65: /* thrown exception in the callback */
! 66: function test5(&$var) {
! 67: throw new Exception("test");
! 68: }
! 69:
! 70: try {
! 71: var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test5")));
! 72: } catch (Exception $e) {
! 73: var_dump($e->getMessage());
! 74: }
! 75:
! 76: echo "Done\n";
! 77: ?>
! 78: --EXPECTF--
! 79: string(4) "DATA"
! 80: string(46) "~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?"}{:"
! 81: string(0) ""
! 82:
! 83: Warning: filter_var(): First argument is expected to be a valid callback in %s on line %d
! 84: NULL
! 85:
! 86: Warning: filter_var(): First argument is expected to be a valid callback in %s on line %d
! 87: NULL
! 88:
! 89: Warning: filter_var(): First argument is expected to be a valid callback in %s on line %d
! 90: NULL
! 91: string(4) "data"
! 92: string(46) "~!@#$%^&*()_qwertyuiopasdfghjklzxcvbnm<>>?"}{:"
! 93: string(0) ""
! 94: NULL
! 95: NULL
! 96: NULL
! 97: NULL
! 98: NULL
! 99: NULL
! 100: NULL
! 101: NULL
! 102: NULL
! 103: int(1)
! 104: string(4) "test"
! 105: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>