Annotation of embedaddon/php/ext/iconv/tests/iconv_strlen_variation1.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test iconv_strlen() function : usage variations - Pass different data types as $str arg
! 3: --SKIPIF--
! 4: <?php
! 5: extension_loaded('iconv') or die('skip');
! 6: function_exists('iconv_strlen') or die("skip iconv_strlen() is not available in this build");
! 7: ?>
! 8: --FILE--
! 9: <?php
! 10: /* Prototype : int iconv_strlen(string str [, string charset])
! 11: * Description: Get character numbers of a string
! 12: * Source code: ext/iconv/iconv.c
! 13: */
! 14:
! 15: /*
! 16: * Test iconv_strlen by passing different data types as $str argument
! 17: */
! 18:
! 19: echo "*** Testing iconv_strlen() : usage variations ***\n";
! 20:
! 21: // Initialise function arguments not being substituted
! 22: $encoding = 'utf-8';
! 23:
! 24: //get an unset variable
! 25: $unset_var = 10;
! 26: unset ($unset_var);
! 27:
! 28: // get a class
! 29: class classA
! 30: {
! 31: public function __toString() {
! 32: return "Class A object";
! 33: }
! 34: }
! 35:
! 36: // heredoc string
! 37: $heredoc = <<<EOT
! 38: hello world
! 39: EOT;
! 40:
! 41: // get a resource variable
! 42: $fp = fopen(__FILE__, "r");
! 43:
! 44: // unexpected values to be passed to $str argument
! 45: $inputs = array(
! 46:
! 47: // int data
! 48: /*1*/
! 49: 'int 0' => 0,
! 50: 'int 1' => 1,
! 51: 'int 12345' => 12345,
! 52: 'int -12345' => -12345,
! 53:
! 54: // float data
! 55: /*5*/
! 56: 'float 10.5' => 10.5,
! 57: 'float -10.5' => -10.5,
! 58: 'float 12.3456789000e10' => 12.3456789000e10,
! 59: 'float 12.3456789000e-10' => 12.3456789000e-10,
! 60: 'float .5' => .5,
! 61:
! 62: // null data
! 63: /*10*/
! 64: 'uppercase NULL' => NULL,
! 65: 'lowercase null' => null,
! 66:
! 67: // boolean data
! 68: /*12*/
! 69: 'lowercase true' => true,
! 70: 'lowercase false' =>false,
! 71: 'uppercase TRUE' =>TRUE,
! 72: 'uppercase FALSE' =>FALSE,
! 73:
! 74: // empty data
! 75: /*16*/
! 76: 'empty string DQ' => "",
! 77: 'empty string SQ' => '',
! 78:
! 79: // string data
! 80: /*18*/
! 81: 'string DQ' => "string",
! 82: 'string SQ' => 'string',
! 83: 'mixed case string' => "sTrInG",
! 84: 'heredoc' => $heredoc,
! 85:
! 86: // object data
! 87: /*21*/
! 88: 'instance of class' => new classA(),
! 89:
! 90: // undefined data
! 91: /*22*/
! 92: 'undefined var' => @$undefined_var,
! 93:
! 94: // unset data
! 95: /*23*/
! 96: 'unset var' => @$unset_var,
! 97:
! 98: // resource variable
! 99: /*24*/
! 100: 'resource' => $fp
! 101: );
! 102:
! 103: // loop through each element of $inputs to check the behavior of iconv_strlen()
! 104: $iterator = 1;
! 105: foreach($inputs as $key =>$value) {
! 106: echo "\n--$key--\n";
! 107: var_dump( iconv_strlen($value, $encoding));
! 108: $iterator++;
! 109: };
! 110:
! 111: fclose($fp);
! 112: ?>
! 113: ===DONE===
! 114: --EXPECTF--
! 115: *** Testing iconv_strlen() : usage variations ***
! 116:
! 117: --int 0--
! 118: int(1)
! 119:
! 120: --int 1--
! 121: int(1)
! 122:
! 123: --int 12345--
! 124: int(5)
! 125:
! 126: --int -12345--
! 127: int(6)
! 128:
! 129: --float 10.5--
! 130: int(4)
! 131:
! 132: --float -10.5--
! 133: int(5)
! 134:
! 135: --float 12.3456789000e10--
! 136: int(12)
! 137:
! 138: --float 12.3456789000e-10--
! 139: int(13)
! 140:
! 141: --float .5--
! 142: int(3)
! 143:
! 144: --uppercase NULL--
! 145: int(0)
! 146:
! 147: --lowercase null--
! 148: int(0)
! 149:
! 150: --lowercase true--
! 151: int(1)
! 152:
! 153: --lowercase false--
! 154: int(0)
! 155:
! 156: --uppercase TRUE--
! 157: int(1)
! 158:
! 159: --uppercase FALSE--
! 160: int(0)
! 161:
! 162: --empty string DQ--
! 163: int(0)
! 164:
! 165: --empty string SQ--
! 166: int(0)
! 167:
! 168: --string DQ--
! 169: int(6)
! 170:
! 171: --string SQ--
! 172: int(6)
! 173:
! 174: --mixed case string--
! 175: int(6)
! 176:
! 177: --heredoc--
! 178: int(11)
! 179:
! 180: --instance of class--
! 181: int(14)
! 182:
! 183: --undefined var--
! 184: int(0)
! 185:
! 186: --unset var--
! 187: int(0)
! 188:
! 189: --resource--
! 190:
! 191: Warning: iconv_strlen() expects parameter 1 to be string, resource given in %s on line %d
! 192: bool(false)
! 193: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>