diff options
author | andy wharmby <wharmby@php.net> | 2009-01-19 15:54:45 +0000 |
---|---|---|
committer | andy wharmby <wharmby@php.net> | 2009-01-19 15:54:45 +0000 |
commit | ce85cecb55fd48b5f5083079f5326d3a513a9ded (patch) | |
tree | 7cc7d33a34f6c49d369a8e04cbccb6a0504091ec /ext/standard/tests | |
parent | 8be7bef0a6e50ec5fc34d6ca96f1b77714d51949 (diff) | |
download | php-git-ce85cecb55fd48b5f5083079f5326d3a513a9ded.tar.gz |
New strval() tests. Tested on Windows, Linux and Linux 64 bit.
Diffstat (limited to 'ext/standard/tests')
-rw-r--r-- | ext/standard/tests/strings/strval_basic.phpt | 77 | ||||
-rw-r--r-- | ext/standard/tests/strings/strval_error.phpt | 51 | ||||
-rw-r--r-- | ext/standard/tests/strings/strval_variation1.phpt | 190 | ||||
-rw-r--r-- | ext/standard/tests/strings/strval_variation2.phpt | 82 |
4 files changed, 400 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/strval_basic.phpt b/ext/standard/tests/strings/strval_basic.phpt new file mode 100644 index 0000000000..9d2d1af197 --- /dev/null +++ b/ext/standard/tests/strings/strval_basic.phpt @@ -0,0 +1,77 @@ +--TEST-- +Test strval() function : basic functionality +--FILE-- +<?php +/* Prototype : string strval ( mixed $var ) + * Description: Get the string value of a variable. + * Source code: ext/standard/string.c + */ + +echo "*** Testing strval() : basic variations ***\n"; + +error_reporting(E_ALL ^ E_NOTICE); + +$simple_heredoc =<<<EOT +Simple HEREDOC string +EOT; + + +//array of values to iterate over +$values = array( + // Simple strings +/*1*/ "Hello World", + 'Hello World', + + // String with control chars +/*3*/ "String\nwith\ncontrol\ncharacters\r\n", + + // String with quotes +/*4*/ "String with \"quotes\"", + + //Numeric String +/*5*/ "123456", + + // Hexadecimal string +/*6*/ "0xABC", + + //Heredoc String +/*7*/ $simple_heredoc +); + +// loop through each element of the array for strval +$iterator = 1; +foreach($values as $value) { + echo "\n-- Iteration $iterator --\n"; + var_dump( strval($value) ); + $iterator++; +}; +?> +===DONE=== +--EXPECTF-- +*** Testing strval() : basic variations *** + +-- Iteration 1 -- +unicode(11) "Hello World" + +-- Iteration 2 -- +unicode(11) "Hello World" + +-- Iteration 3 -- +unicode(32) "String +with +control +characters +" + +-- Iteration 4 -- +unicode(20) "String with "quotes"" + +-- Iteration 5 -- +unicode(6) "123456" + +-- Iteration 6 -- +unicode(5) "0xABC" + +-- Iteration 7 -- +unicode(21) "Simple HEREDOC string" +===DONE===
\ No newline at end of file diff --git a/ext/standard/tests/strings/strval_error.phpt b/ext/standard/tests/strings/strval_error.phpt new file mode 100644 index 0000000000..c31a2ab35b --- /dev/null +++ b/ext/standard/tests/strings/strval_error.phpt @@ -0,0 +1,51 @@ +--TEST-- +Test strval() function : usage variations - error conditions +--FILE-- +<?php +/* Prototype : string strval ( mixed $var ) + * Description: Get the string value of a variable. + * Source code: ext/standard/string.c + */ + +echo "*** Testing strval() : error conditions ***\n"; + +error_reporting(E_ALL ^ E_NOTICE); + +class MyClass +{ + // no toString() method defined +} + +$string = "Hello"; +$extra_arg = 10; + +//Test strval with one more than the expected number of arguments +echo "\n-- Testing strval() function with more than expected no. of arguments --\n"; +var_dump( strval($string, $extra_arg) ); + +// Testing strval with one less than the expected number of arguments +echo "\n-- Testing strval() function with less than expected no. of arguments --\n"; +var_dump( strval() ); + +// Testing strval with a object which has no toString() method +echo "\n-- Testing strval() function with object which has not toString() method --\n"; +var_dump( strval(new MyClass()) ); + +?> +===DONE=== +--EXPECTF-- +*** Testing strval() : error conditions *** + +-- Testing strval() function with more than expected no. of arguments -- + +Warning: strval() expects exactly 1 parameter, 2 given in %s on line %d +NULL + +-- Testing strval() function with less than expected no. of arguments -- + +Warning: strval() expects exactly 1 parameter, 0 given in %s on line %d +NULL + +-- Testing strval() function with object which has not toString() method -- + +Catchable fatal error: Object of class MyClass could not be converted to string in %s on line %d
\ No newline at end of file diff --git a/ext/standard/tests/strings/strval_variation1.phpt b/ext/standard/tests/strings/strval_variation1.phpt new file mode 100644 index 0000000000..b397bd4e5f --- /dev/null +++ b/ext/standard/tests/strings/strval_variation1.phpt @@ -0,0 +1,190 @@ +--TEST-- +Test strval() function : usage variations - Pass different data types as strval +--FILE-- +<?php +/* Prototype : string strval ( mixed $var ) + * Description: Get the string value of a variable. + * Source code: ext/standard/string.c + */ + +echo "*** Testing strval() : usage variations ***\n"; + +error_reporting(E_ALL ^ E_NOTICE); + +//get an unset variable +$unset_var = 10; +unset ($unset_var); + +//getting the resource +$file_handle = fopen(__FILE__, "r"); + +class MyClass +{ + function __toString() { + return "MyClass"; + } +} + +//array of values to iterate over +$values = array( + //Decimal values +/*1*/ 0, + 1, + 12345, + -12345, + + //Octal values +/*5*/ 02, + 010, + 030071, + -030071, + + //Hexadecimal values +/*9*/ 0x0, + 0x1, + 0xABCD, + -0xABCD, + + // float data +/*13*/ 100.5, + -100.5, + 100.1234567e10, + 100.7654321E-10, + .5, + + // array data +/*18*/ array(), + array('color' => 'red', 'item' => 'pen'), + + // null data +/*20*/ NULL, + null, + + // boolean data +/*22*/ true, + false, + TRUE, + FALSE, + + // empty data +/*26*/ "", + '', + + // object data +/*28*/ new MyClass(), + + // resource +/*29*/ $file_handle, + + // undefined data +/*30*/ @$undefined_var, + + // unset data +/*31*/ @$unset_var, +); + +// loop through each element of the array for strval +$iterator = 1; +foreach($values as $value) { + echo "\n-- Iteration $iterator --\n"; + var_dump( strval($value) ); + $iterator++; +}; +?> +===DONE=== +--EXPECTF-- +*** Testing strval() : usage variations *** + +-- Iteration 1 -- +unicode(1) "0" + +-- Iteration 2 -- +unicode(1) "1" + +-- Iteration 3 -- +unicode(5) "12345" + +-- Iteration 4 -- +unicode(6) "-12345" + +-- Iteration 5 -- +unicode(1) "2" + +-- Iteration 6 -- +unicode(1) "8" + +-- Iteration 7 -- +unicode(5) "12345" + +-- Iteration 8 -- +unicode(6) "-12345" + +-- Iteration 9 -- +unicode(1) "0" + +-- Iteration 10 -- +unicode(1) "1" + +-- Iteration 11 -- +unicode(5) "43981" + +-- Iteration 12 -- +unicode(6) "-43981" + +-- Iteration 13 -- +unicode(5) "100.5" + +-- Iteration 14 -- +unicode(6) "-100.5" + +-- Iteration 15 -- +unicode(13) "1001234567000" + +-- Iteration 16 -- +unicode(14) "1.007654321E-8" + +-- Iteration 17 -- +unicode(3) "0.5" + +-- Iteration 18 -- +unicode(5) "Array" + +-- Iteration 19 -- +unicode(5) "Array" + +-- Iteration 20 -- +unicode(0) "" + +-- Iteration 21 -- +unicode(0) "" + +-- Iteration 22 -- +unicode(1) "1" + +-- Iteration 23 -- +unicode(0) "" + +-- Iteration 24 -- +unicode(1) "1" + +-- Iteration 25 -- +unicode(0) "" + +-- Iteration 26 -- +unicode(0) "" + +-- Iteration 27 -- +unicode(0) "" + +-- Iteration 28 -- +unicode(7) "MyClass" + +-- Iteration 29 -- +unicode(%d) "Resource id #%d" + +-- Iteration 30 -- +unicode(0) "" + +-- Iteration 31 -- +unicode(0) "" +===DONE===
\ No newline at end of file diff --git a/ext/standard/tests/strings/strval_variation2.phpt b/ext/standard/tests/strings/strval_variation2.phpt new file mode 100644 index 0000000000..c4f7d3a482 --- /dev/null +++ b/ext/standard/tests/strings/strval_variation2.phpt @@ -0,0 +1,82 @@ +--TEST-- +Test strval() function : usage variations - Pass all valid char codes +--FILE-- +<?php +/* Prototype : string strval ( mixed $var ) + * Description: Get the string value of a variable. + * Source code: ext/standard/string.c + */ + +echo "*** Testing strval() : usage variations - Pass all valid char codes ***\n"; + +$s0 = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"; +$s1 = "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"; +$s2 = "\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"; +$s3 = "\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"; +$s4 = "\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"; +$s5 = "\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"; +$s6 = "\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"; +$s7 = "\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"; +$s8 = "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"; +$s9 = "\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"; +$sa = "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf"; +$sb = "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"; +$sc = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"; +$sd = "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"; +$se = "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef"; +$sf = "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"; + +echo bin2hex((binary)strval($s0)); +echo "\n"; +echo bin2hex((binary)strval($s1)); +echo "\n"; +echo bin2hex((binary)strval($s2)); +echo "\n"; +echo bin2hex((binary)strval($s3)); +echo "\n"; +echo bin2hex((binary)strval($s4)); +echo "\n"; +echo bin2hex((binary)strval($s5)); +echo "\n"; +echo bin2hex((binary)strval($s6)); +echo "\n"; +echo bin2hex((binary)strval($s7)); +echo "\n"; +echo bin2hex((binary)strval($s8)); +echo "\n"; +echo bin2hex((binary)strval($s9)); +echo "\n"; +echo bin2hex((binary)strval($sa)); +echo "\n"; +echo bin2hex((binary)strval($sb)); +echo "\n"; +echo bin2hex((binary)strval($sc)); +echo "\n"; +echo bin2hex((binary)strval($sd)); +echo "\n"; +echo bin2hex((binary)strval($se)); +echo "\n"; +echo bin2hex((binary)strval($sf)); +echo "\n"; + +?> +===DONE=== +--EXPECTF-- +*** Testing strval() : usage variations - Pass all valid char codes *** +000102030405060708090a0b0c0d0e0f +101112131415161718191a1b1c1d1e1f +202122232425262728292a2b2c2d2e2f +303132333435363738393a3b3c3d3e3f +404142434445464748494a4b4c4d4e4f +505152535455565758595a5b5c5d5e5f +606162636465666768696a6b6c6d6e6f +707172737475767778797a7b7c7d7e7f +808182838485868788898a8b8c8d8e8f +909192939495969798999a9b9c9d9e9f +a0a1a2a3a4a5a6a7a8a9aaabacadaeaf +b0b1b2b3b4b5b6b7b8b9babbbcbdbebf +c0c1c2c3c4c5c6c7c8c9cacbcccdcecf +d0d1d2d3d4d5d6d7d8d9dadbdcdddedf +e0e1e2e3e4e5e6e7e8e9eaebecedeeef +f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff +===DONE===
\ No newline at end of file |