From: Robin Fernandes Date: Thu, 6 Mar 2008 10:56:07 +0000 (+0000) Subject: Add new tests for class/object functions and features. X-Git-Tag: php-5.2.6RC2~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1af0116cf09e25805b6a5dc383bd345e6e55e66e;p=php Add new tests for class/object functions and features. --- diff --git a/ext/standard/tests/class_object/class_exists_basic_001.phpt b/ext/standard/tests/class_object/class_exists_basic_001.phpt new file mode 100644 index 0000000000..4cb6cbd327 --- /dev/null +++ b/ext/standard/tests/class_object/class_exists_basic_001.phpt @@ -0,0 +1,55 @@ +--TEST-- +Test class_exists() function : basic functionality +--FILE-- + +--EXPECTF-- +*** Testing class_exists() : basic functionality *** +Calling class_exists() on non-existent class with autoload explicitly enabled: +In __autoload(C) +bool(false) + +Calling class_exists() on existing class with autoload explicitly enabled: +bool(true) + +Calling class_exists() on non-existent class with autoload explicitly enabled: +bool(false) + +Calling class_exists() on existing class with autoload explicitly disabled: +bool(true) + +Calling class_exists() on non-existent class with autoload unspecified: +In __autoload(E) +bool(false) + +Calling class_exists() on existing class with autoload unspecified: +bool(true) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/class_exists_error_001.phpt b/ext/standard/tests/class_object/class_exists_error_001.phpt new file mode 100644 index 0000000000..99c0b89b3c --- /dev/null +++ b/ext/standard/tests/class_object/class_exists_error_001.phpt @@ -0,0 +1,42 @@ +--TEST-- +Test class_exists() function : error conditions (wrong number of arguments) +--FILE-- + +--EXPECTF-- +*** Testing class_exists() : error conditions *** + +-- Testing class_exists() function with Zero arguments -- + +Warning: class_exists() expects at least 1 parameter, 0 given in %s on line 16 +NULL + +-- Testing class_exists() function with more than expected no. of arguments -- + +Warning: class_exists() expects at most 2 parameters, 3 given in %s on line 23 +NULL +Done diff --git a/ext/standard/tests/class_object/class_exists_variation_001.phpt b/ext/standard/tests/class_object/class_exists_variation_001.phpt new file mode 100644 index 0000000000..2141d65eb8 --- /dev/null +++ b/ext/standard/tests/class_object/class_exists_variation_001.phpt @@ -0,0 +1,182 @@ +--TEST-- +Test class_exists() function : usage variations - unexpected types for agument 1 +--FILE-- + 'red', 'item' => 'pen'), + + // null data + NULL, + null, + + // boolean data + true, + false, + TRUE, + FALSE, + + // empty data + "", + '', + + // object data + new stdclass(), + + // undefined data + $undefined_var, + + // unset data + $unset_var, +); + +// loop through each element of the array for classname + +foreach($values as $value) { + echo "\nArg value $value \n"; + var_dump( class_exists($value, $autoload) ); +}; + +echo "Done"; +?> +--EXPECTF-- +*** Testing class_exists() : usage variations *** +Error: 8 - Undefined variable: undefined_var, %s(67) +Error: 8 - Undefined variable: unset_var, %s(70) + +Arg value 0 +In __autoload(0) +bool(false) + +Arg value 1 +In __autoload(1) +bool(false) + +Arg value 12345 +In __autoload(12345) +bool(false) + +Arg value -2345 +In __autoload(-2345) +bool(false) + +Arg value 10.5 +In __autoload(10.5) +bool(false) + +Arg value -10.5 +In __autoload(-10.5) +bool(false) + +Arg value 101234567000 +In __autoload(101234567000) +bool(false) + +Arg value 1.07654321E-9 +In __autoload(1.07654321E-9) +bool(false) + +Arg value 0.5 +In __autoload(0.5) +bool(false) + +Arg value Array +Error: 2 - class_exists() expects parameter 1 to be string, array given, %s(77) +NULL + +Arg value Array +Error: 2 - class_exists() expects parameter 1 to be string, array given, %s(77) +NULL + +Arg value Array +Error: 2 - class_exists() expects parameter 1 to be string, array given, %s(77) +NULL + +Arg value Array +Error: 2 - class_exists() expects parameter 1 to be string, array given, %s(77) +NULL + +Arg value Array +Error: 2 - class_exists() expects parameter 1 to be string, array given, %s(77) +NULL + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value 1 +In __autoload(1) +bool(false) + +Arg value +bool(false) + +Arg value 1 +In __autoload(1) +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) +Error: 4096 - Object of class stdClass could not be converted to string, %s(76) + +Arg value +Error: 2 - class_exists() expects parameter 1 to be string, object given, %s(77) +NULL + +Arg value +bool(false) + +Arg value +bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/class_exists_variation_002.phpt b/ext/standard/tests/class_object/class_exists_variation_002.phpt new file mode 100644 index 0000000000..da10cac908 --- /dev/null +++ b/ext/standard/tests/class_object/class_exists_variation_002.phpt @@ -0,0 +1,193 @@ +--TEST-- +Test class_exists() function : usage variations - unexpected types for agument 2 +--FILE-- + 'red', 'item' => 'pen'), + + // null data + NULL, + null, + + // boolean data + true, + false, + TRUE, + FALSE, + + // empty data + "", + '', + + // string data + "string", + 'string', + + // object data + new stdclass(), + + // undefined data + $undefined_var, + + // unset data + $unset_var, +); + +// loop through each element of the array for autoload + +foreach($values as $value) { + echo "\nArg value $value \n"; + var_dump( class_exists($classname, $value) ); +}; + +echo "Done"; +?> +--EXPECTF-- +*** Testing class_exists() : usage variations *** +Error: 8 - Undefined variable: undefined_var, %s(71) +Error: 8 - Undefined variable: unset_var, %s(74) + +Arg value 0 +bool(false) + +Arg value 1 +In __autoload(string_val) +bool(false) + +Arg value 12345 +In __autoload(string_val) +bool(false) + +Arg value -2345 +In __autoload(string_val) +bool(false) + +Arg value 10.5 +In __autoload(string_val) +bool(false) + +Arg value -10.5 +In __autoload(string_val) +bool(false) + +Arg value 101234567000 +In __autoload(string_val) +bool(false) + +Arg value 1.07654321E-9 +In __autoload(string_val) +bool(false) + +Arg value 0.5 +In __autoload(string_val) +bool(false) + +Arg value Array +Error: 2 - class_exists() expects parameter 2 to be boolean, array given, %s(81) +NULL + +Arg value Array +Error: 2 - class_exists() expects parameter 2 to be boolean, array given, %s(81) +NULL + +Arg value Array +Error: 2 - class_exists() expects parameter 2 to be boolean, array given, %s(81) +NULL + +Arg value Array +Error: 2 - class_exists() expects parameter 2 to be boolean, array given, %s(81) +NULL + +Arg value Array +Error: 2 - class_exists() expects parameter 2 to be boolean, array given, %s(81) +NULL + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value 1 +In __autoload(string_val) +bool(false) + +Arg value +bool(false) + +Arg value 1 +In __autoload(string_val) +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value string +In __autoload(string_val) +bool(false) + +Arg value string +In __autoload(string_val) +bool(false) +Error: 4096 - Object of class stdClass could not be converted to string, %s(80) + +Arg value +Error: 2 - class_exists() expects parameter 2 to be boolean, object given, %s(81) +NULL + +Arg value +bool(false) + +Arg value +bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/class_exists_variation_003.phpt b/ext/standard/tests/class_object/class_exists_variation_003.phpt new file mode 100644 index 0000000000..0745601452 --- /dev/null +++ b/ext/standard/tests/class_object/class_exists_variation_003.phpt @@ -0,0 +1,18 @@ +--TEST-- +Test class_exists() function : usage variations - case sensitivity +--FILE-- + +--EXPECTF-- +bool(true) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_class_error_001.phpt b/ext/standard/tests/class_object/get_class_error_001.phpt new file mode 100644 index 0000000000..b563c31881 --- /dev/null +++ b/ext/standard/tests/class_object/get_class_error_001.phpt @@ -0,0 +1,28 @@ +--TEST-- +Test get_class() function : error conditions - wrong number of arguments. +--FILE-- + +--EXPECTF-- +*** Testing get_class() : error conditions *** + +-- Testing get_class() function with more than expected no. of arguments -- + +Warning: Wrong parameter count for get_class() in %s on line 14 +NULL +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_class_methods_basic_001.phpt b/ext/standard/tests/class_object/get_class_methods_basic_001.phpt new file mode 100644 index 0000000000..b2b87af4ec --- /dev/null +++ b/ext/standard/tests/class_object/get_class_methods_basic_001.phpt @@ -0,0 +1,63 @@ +--TEST-- +Test get_class_methods() function : basic functionality +--FILE-- + +--EXPECTF-- +*** Testing get_class_methods() : basic functionality *** +Argument is class name: +array(3) { + [0]=> + string(1) "f" + [1]=> + string(1) "g" + [2]=> + string(1) "h" +} +Argument is class instance: +array(3) { + [0]=> + string(1) "f" + [1]=> + string(1) "g" + [2]=> + string(1) "h" +} +Argument is name of class which has no methods: +array(0) { +} +Argument is non existent class: +NULL +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_class_methods_basic_002.phpt b/ext/standard/tests/class_object/get_class_methods_basic_002.phpt new file mode 100644 index 0000000000..441bb45d6d --- /dev/null +++ b/ext/standard/tests/class_object/get_class_methods_basic_002.phpt @@ -0,0 +1,178 @@ +--TEST-- +Test get_class_methods() function : basic functionality +--FILE-- + +--EXPECTF-- +Accessing D from global scope: +array(4) { + [0]=> + string(4) "pubD" + [1]=> + string(9) "testFromD" + [2]=> + string(4) "pubC" + [3]=> + string(9) "testFromC" +} +Accessing C from C: +array(4) { + [0]=> + string(5) "privC" + [1]=> + string(5) "protC" + [2]=> + string(4) "pubC" + [3]=> + string(9) "testFromC" +} +Accessing D from C: +array(7) { + [0]=> + string(5) "protD" + [1]=> + string(4) "pubD" + [2]=> + string(9) "testFromD" + [3]=> + string(5) "privC" + [4]=> + string(5) "protC" + [5]=> + string(4) "pubC" + [6]=> + string(9) "testFromC" +} +Accessing X from C: +array(2) { + [0]=> + string(4) "pubX" + [1]=> + string(9) "testFromX" +} +Accessing C from D: +array(3) { + [0]=> + string(5) "protC" + [1]=> + string(4) "pubC" + [2]=> + string(9) "testFromC" +} +Accessing D from D: +array(7) { + [0]=> + string(5) "privD" + [1]=> + string(5) "protD" + [2]=> + string(4) "pubD" + [3]=> + string(9) "testFromD" + [4]=> + string(5) "protC" + [5]=> + string(4) "pubC" + [6]=> + string(9) "testFromC" +} +Accessing X from D: +array(2) { + [0]=> + string(4) "pubX" + [1]=> + string(9) "testFromX" +} +Accessing C from X: +array(2) { + [0]=> + string(4) "pubC" + [1]=> + string(9) "testFromC" +} +Accessing D from X: +array(4) { + [0]=> + string(4) "pubD" + [1]=> + string(9) "testFromD" + [2]=> + string(4) "pubC" + [3]=> + string(9) "testFromC" +} +Accessing X from X: +array(4) { + [0]=> + string(5) "privX" + [1]=> + string(5) "protX" + [2]=> + string(4) "pubX" + [3]=> + string(9) "testFromX" +} +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_class_methods_basic_003.phpt b/ext/standard/tests/class_object/get_class_methods_basic_003.phpt new file mode 100644 index 0000000000..b64f702b85 --- /dev/null +++ b/ext/standard/tests/class_object/get_class_methods_basic_003.phpt @@ -0,0 +1,76 @@ +--TEST-- +Test get_class_methods() function : basic functionality +--FILE-- + +--EXPECTF-- +Accessing I from global scope: +array(1) { + [0]=> + string(4) "pubI" +} +Accessing C from global scope: +array(3) { + [0]=> + string(4) "pubI" + [1]=> + string(4) "pubC" + [2]=> + string(9) "testFromC" +} +Accessing I from C: +array(1) { + [0]=> + string(4) "pubI" +} +Accessing C from C: +array(5) { + [0]=> + string(4) "pubI" + [1]=> + string(5) "privC" + [2]=> + string(5) "protC" + [3]=> + string(4) "pubC" + [4]=> + string(9) "testFromC" +} +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_class_methods_error_001.phpt b/ext/standard/tests/class_object/get_class_methods_error_001.phpt new file mode 100644 index 0000000000..6edb108032 --- /dev/null +++ b/ext/standard/tests/class_object/get_class_methods_error_001.phpt @@ -0,0 +1,41 @@ +--TEST-- +Test get_class_methods() function : error conditions +--FILE-- + +--EXPECTF-- +*** Testing get_class_methods() : error conditions *** + +-- Testing get_class_methods() function with Zero arguments -- + +Warning: Wrong parameter count for get_class_methods() in %s on line 16 +NULL + +-- Testing get_class_methods() function with more than expected no. of arguments -- + +Warning: Wrong parameter count for get_class_methods() in %s on line 22 +NULL +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_class_methods_variation_001.phpt b/ext/standard/tests/class_object/get_class_methods_variation_001.phpt new file mode 100644 index 0000000000..b881452b4c --- /dev/null +++ b/ext/standard/tests/class_object/get_class_methods_variation_001.phpt @@ -0,0 +1,172 @@ +--TEST-- +Test get_class_methods() function : usage variations - unexpected types +--FILE-- + 'red', 'item' => 'pen'), + + // null data + NULL, + null, + + // boolean data + true, + false, + TRUE, + FALSE, + + // empty data + "", + '', + + // string data + "string", + 'string', + + // object data + new stdclass(), + + // undefined data + $undefined_var, + + // unset data + $unset_var, +); + +// loop through each element of the array for class + +foreach($values as $value) { + echo "\nArg value $value \n"; + var_dump( get_class_methods($value) ); +}; + +echo "Done"; +?> +--EXPECTF-- +*** Testing get_class_methods() : usage variations *** +Error: 8 - Undefined variable: undefined_var, %s(67) +Error: 8 - Undefined variable: unset_var, %s(70) + +Arg value 0 +NULL + +Arg value 1 +NULL + +Arg value 12345 +NULL + +Arg value -2345 +NULL + +Arg value 10.5 +NULL + +Arg value -10.5 +NULL + +Arg value 101234567000 +NULL + +Arg value 1.07654321E-9 +NULL + +Arg value 0.5 +NULL + +Arg value Array +NULL + +Arg value Array +NULL + +Arg value Array +NULL + +Arg value Array +NULL + +Arg value Array +NULL + +Arg value +NULL + +Arg value +NULL + +Arg value 1 +NULL + +Arg value +NULL + +Arg value 1 +NULL + +Arg value +NULL + +Arg value +NULL + +Arg value +NULL + +Arg value string +NULL + +Arg value string +NULL +Error: 4096 - Object of class stdClass could not be converted to string, %s(76) + +Arg value +array(0) { +} + +Arg value +NULL + +Arg value +NULL +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_class_methods_variation_002.phpt b/ext/standard/tests/class_object/get_class_methods_variation_002.phpt new file mode 100644 index 0000000000..60b944c69c --- /dev/null +++ b/ext/standard/tests/class_object/get_class_methods_variation_002.phpt @@ -0,0 +1,27 @@ +--TEST-- +Test get_class_methods() function : usage variations - case sensitivity +--FILE-- + +--EXPECTF-- +*** Testing get_class_methods() : usage variations *** +array(1) { + [0]=> + string(8) "MyMeThOd" +} +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_class_variation_001.phpt b/ext/standard/tests/class_object/get_class_variation_001.phpt new file mode 100644 index 0000000000..6cbe0b3683 --- /dev/null +++ b/ext/standard/tests/class_object/get_class_variation_001.phpt @@ -0,0 +1,160 @@ +--TEST-- +Test get_class() function : usage variations - passing unexpected types. +--FILE-- + 'red', 'item' => 'pen'), + + // null data + NULL, + null, + + // boolean data + true, + false, + TRUE, + FALSE, + + // empty data + "", + '', + + // string data + "string", + 'string', + + // undefined data + $undefined_var, + + // unset data + $unset_var, +); + +// loop through each element of the array for object + +foreach($values as $value) { + echo "\nArg value: $value (type: " . gettype($value) . ")\n"; + var_dump( get_class($value) ); +}; + +echo "Done"; +?> +--EXPECTF-- +*** Testing get_class() : usage variations *** + +Notice: Undefined variable: undefined_var in %s on line 58 + +Notice: Undefined variable: unset_var in %s on line 61 + +Arg value: 0 (type: integer) +bool(false) + +Arg value: 1 (type: integer) +bool(false) + +Arg value: 12345 (type: integer) +bool(false) + +Arg value: -2345 (type: integer) +bool(false) + +Arg value: 10.5 (type: double) +bool(false) + +Arg value: -10.5 (type: double) +bool(false) + +Arg value: 101234567000 (type: double) +bool(false) + +Arg value: 1.07654321E-9 (type: double) +bool(false) + +Arg value: 0.5 (type: double) +bool(false) + +Arg value: Array (type: array) +bool(false) + +Arg value: Array (type: array) +bool(false) + +Arg value: Array (type: array) +bool(false) + +Arg value: Array (type: array) +bool(false) + +Arg value: Array (type: array) +bool(false) + +Arg value: (type: NULL) +bool(false) + +Arg value: (type: NULL) +bool(false) + +Arg value: 1 (type: boolean) +bool(false) + +Arg value: (type: boolean) +bool(false) + +Arg value: 1 (type: boolean) +bool(false) + +Arg value: (type: boolean) +bool(false) + +Arg value: (type: string) +bool(false) + +Arg value: (type: string) +bool(false) + +Arg value: string (type: string) +bool(false) + +Arg value: string (type: string) +bool(false) + +Arg value: (type: NULL) +bool(false) + +Arg value: (type: NULL) +bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_class_variation_002.phpt b/ext/standard/tests/class_object/get_class_variation_002.phpt new file mode 100644 index 0000000000..1ee3529818 --- /dev/null +++ b/ext/standard/tests/class_object/get_class_variation_002.phpt @@ -0,0 +1,18 @@ +--TEST-- +Test get_class() function : usage variations - ensure class name case is preserved. +--FILE-- + +--EXPECTF-- +string(19) "caseSensitivityTest" +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_declared_classes_basic_001.phpt b/ext/standard/tests/class_object/get_declared_classes_basic_001.phpt new file mode 100644 index 0000000000..123e9772cc --- /dev/null +++ b/ext/standard/tests/class_object/get_declared_classes_basic_001.phpt @@ -0,0 +1,47 @@ +--TEST-- +Test get_declared_classes() function : basic functionality +--FILE-- + +--EXPECTF-- +*** Testing get_declared_classes() : basic functionality *** + +-- Testing get_declared_classes() function with Zero arguments -- +array(%d) { +%a +} + +-- Ensure userspace classes are listed -- +bool(true) + +-- Ensure userspace interfaces are not listed -- +bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_declared_classes_error_001.phpt b/ext/standard/tests/class_object/get_declared_classes_error_001.phpt new file mode 100644 index 0000000000..a508443678 --- /dev/null +++ b/ext/standard/tests/class_object/get_declared_classes_error_001.phpt @@ -0,0 +1,27 @@ +--TEST-- +Test get_declared_classes() function : error conditions +--FILE-- + +--EXPECTF-- +*** Testing get_declared_classes() : error conditions *** + +-- Testing get_declared_classes() function with one argument -- + +Warning: Wrong parameter count for get_declared_classes() in %s on line 13 +NULL +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_declared_interfaces_basic_001.phpt b/ext/standard/tests/class_object/get_declared_interfaces_basic_001.phpt new file mode 100644 index 0000000000..a0ec715187 --- /dev/null +++ b/ext/standard/tests/class_object/get_declared_interfaces_basic_001.phpt @@ -0,0 +1,47 @@ +--TEST-- +Test get_declared_interfaces() function : basic functionality +--FILE-- + +--EXPECTF-- +*** Testing get_declared_interfaces() : basic functionality *** + +-- Testing get_declared_interfaces() function with Zero arguments -- +array(%d) { +%a +} + +-- Ensure userspace classes are not listed -- +bool(false) + +-- Ensure userspace interfaces are listed -- +bool(true) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_declared_interfaces_error_001.phpt b/ext/standard/tests/class_object/get_declared_interfaces_error_001.phpt new file mode 100644 index 0000000000..93aabb6f61 --- /dev/null +++ b/ext/standard/tests/class_object/get_declared_interfaces_error_001.phpt @@ -0,0 +1,27 @@ +--TEST-- +Test get_declared_interfaces() function : error conditions +--FILE-- + +--EXPECTF-- +*** Testing get_declared_interfaces() : error conditions *** + +-- Testing get_declared_interfaces() function with one argument -- + +Warning: Wrong parameter count for get_declared_interfaces() in %s on line 13 +NULL +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_object_vars_basic_001.phpt b/ext/standard/tests/class_object/get_object_vars_basic_001.phpt new file mode 100644 index 0000000000..38ed74fb07 --- /dev/null +++ b/ext/standard/tests/class_object/get_object_vars_basic_001.phpt @@ -0,0 +1,107 @@ +--TEST-- +get_object_vars(): visibility from static methods (target object passed as arg) +--FILE-- + +--EXPECTF-- + +---( Global scope: )--- +array(1) { + ["pub"]=> + string(6) "B::pub" +} + +---( Declaring class: )--- +B::test +array(4) { + ["hiddenPriv"]=> + string(13) "B::hiddenPriv" + ["priv"]=> + string(7) "B::priv" + ["prot"]=> + string(7) "B::prot" + ["pub"]=> + string(6) "B::pub" +} + +---( Subclass: )--- +C::test +array(2) { + ["prot"]=> + string(7) "B::prot" + ["pub"]=> + string(6) "B::pub" +} + +---( Superclass: )--- +A::test +array(3) { + ["prot"]=> + string(7) "B::prot" + ["pub"]=> + string(6) "B::pub" + ["hiddenPriv"]=> + string(13) "A::hiddenPriv" +} + +---( Unrelated class: )--- +X::test +array(1) { + ["pub"]=> + string(6) "B::pub" +} \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_object_vars_basic_002.phpt b/ext/standard/tests/class_object/get_object_vars_basic_002.phpt new file mode 100644 index 0000000000..910926bc1f --- /dev/null +++ b/ext/standard/tests/class_object/get_object_vars_basic_002.phpt @@ -0,0 +1,64 @@ +--TEST-- +get_object_vars(): visibility from non static methods (target object passed as arg) +--FILE-- +testB($b); +echo "\n---( Superclass: )---\n"; +$b->testA($b); + +?> +--EXPECTF-- + +---( Declaring class: )--- +B::testB +array(4) { + ["hiddenPriv"]=> + string(13) "B::hiddenPriv" + ["priv"]=> + string(7) "B::priv" + ["prot"]=> + string(7) "B::prot" + ["pub"]=> + string(6) "B::pub" +} + +---( Superclass: )--- +A::testA +array(3) { + ["prot"]=> + string(7) "B::prot" + ["pub"]=> + string(6) "B::pub" + ["hiddenPriv"]=> + string(13) "A::hiddenPriv" +} \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_object_vars_error_001.phpt b/ext/standard/tests/class_object/get_object_vars_error_001.phpt new file mode 100644 index 0000000000..67a2705d05 --- /dev/null +++ b/ext/standard/tests/class_object/get_object_vars_error_001.phpt @@ -0,0 +1,37 @@ +--TEST-- +Test get_object_vars() function : error conditions - wrong number of args +--FILE-- + +--EXPECTF-- +*** Testing get_object_vars() : error conditions *** + +-- Testing get_object_vars() function with Zero arguments -- + +Warning: Wrong parameter count for get_object_vars() in %s on line 12 +NULL + +-- Testing get_object_vars() function with more than expected no. of arguments -- + +Warning: Wrong parameter count for get_object_vars() in %s on line 18 +NULL +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_object_vars_variation_001.phpt b/ext/standard/tests/class_object/get_object_vars_variation_001.phpt new file mode 100644 index 0000000000..89fbc53e93 --- /dev/null +++ b/ext/standard/tests/class_object/get_object_vars_variation_001.phpt @@ -0,0 +1,20 @@ +--TEST-- +get_object_vars() - ensure statics are not shown +--FILE-- + +--EXPECTF-- +array(0) { +} \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_object_vars_variation_002.phpt b/ext/standard/tests/class_object/get_object_vars_variation_002.phpt new file mode 100644 index 0000000000..73478de79a --- /dev/null +++ b/ext/standard/tests/class_object/get_object_vars_variation_002.phpt @@ -0,0 +1,47 @@ +--TEST-- +get_object_vars() - ensure references are preserved +--FILE-- +ref = &$a; +$obj->val = $a; + +$arr = get_object_vars($obj); +var_dump($arr); + +$arr['ref'] = 'changed.ref'; +$arr['val'] = 'changed.val'; + +var_dump($arr, $obj, $a); +?> +--EXPECTF-- +array(0) { +} +array(2) { + ["ref"]=> + &string(10) "original.a" + ["val"]=> + string(10) "original.a" +} +array(2) { + ["ref"]=> + &string(11) "changed.ref" + ["val"]=> + string(11) "changed.val" +} +object(stdClass)#1 (2) { + ["ref"]=> + &string(11) "changed.ref" + ["val"]=> + string(10) "original.a" +} +string(11) "changed.ref" \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_object_vars_variation_003.phpt b/ext/standard/tests/class_object/get_object_vars_variation_003.phpt new file mode 100644 index 0000000000..70794e7d57 --- /dev/null +++ b/ext/standard/tests/class_object/get_object_vars_variation_003.phpt @@ -0,0 +1,158 @@ +--TEST-- +Test get_object_vars() function : usage variations - unexpected types for argument 1 +--FILE-- + 'red', 'item' => 'pen'), + + // null data + NULL, + null, + + // boolean data + true, + false, + TRUE, + FALSE, + + // empty data + "", + '', + + // string data + "string", + 'string', + + // undefined data + $undefined_var, + + // unset data + $unset_var, +); + +// loop through each element of the array for obj + +foreach($values as $value) { + echo "\nArg value $value \n"; + var_dump( get_object_vars($value) ); +}; + +echo "Done"; +?> +--EXPECTF-- +*** Testing get_object_vars() : usage variations *** + +Notice: Undefined variable: undefined_var in %s on line 56 + +Notice: Undefined variable: unset_var in %s on line 59 + +Arg value 0 +bool(false) + +Arg value 1 +bool(false) + +Arg value 12345 +bool(false) + +Arg value -2345 +bool(false) + +Arg value 10.5 +bool(false) + +Arg value -10.5 +bool(false) + +Arg value 101234567000 +bool(false) + +Arg value 1.07654321E-9 +bool(false) + +Arg value 0.5 +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value 1 +bool(false) + +Arg value +bool(false) + +Arg value 1 +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value string +bool(false) + +Arg value string +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_parent_class_error_001.phpt b/ext/standard/tests/class_object/get_parent_class_error_001.phpt new file mode 100644 index 0000000000..cf9c3e8674 --- /dev/null +++ b/ext/standard/tests/class_object/get_parent_class_error_001.phpt @@ -0,0 +1,29 @@ +--TEST-- +Test get_parent_class() function : error conditions - wrong number of args. +--FILE-- + +--EXPECTF-- +*** Testing get_parent_class() : error conditions *** + +-- Testing get_parent_class() function with more than expected no. of arguments -- + +Warning: Wrong parameter count for get_parent_class() in %s on line 15 +NULL +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_parent_class_variation_001.phpt b/ext/standard/tests/class_object/get_parent_class_variation_001.phpt new file mode 100644 index 0000000000..6f2e32805b --- /dev/null +++ b/ext/standard/tests/class_object/get_parent_class_variation_001.phpt @@ -0,0 +1,27 @@ +--TEST-- +Test get_parent_class() function : variation - case sensitivity +--FILE-- + +--EXPECTF-- +*** Testing get_parent_class() : variation *** +string(19) "caseSensitivityTest" +string(19) "caseSensitivityTest" +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/get_parent_class_variation_002.phpt b/ext/standard/tests/class_object/get_parent_class_variation_002.phpt new file mode 100644 index 0000000000..f7e5b9df3f --- /dev/null +++ b/ext/standard/tests/class_object/get_parent_class_variation_002.phpt @@ -0,0 +1,174 @@ +--TEST-- +Test get_parent_class() function : usage variations - unexpected argument type. +--FILE-- + 'red', 'item' => 'pen'), + + // null data + NULL, + null, + + // boolean data + true, + false, + TRUE, + FALSE, + + // empty data + "", + '', + + // string data + "string", + 'String', + + // object data + new stdclass(), + + // undefined data + $undefined_var, + + // unset data + $unset_var, +); + +// loop through each element of the array for object + +foreach($values as $value) { + echo "\nArg value $value \n"; + var_dump( get_parent_class($value) ); +}; + +echo "Done"; +?> +--EXPECTF-- +*** Testing get_parent_class() : usage variations *** +Error: 8 - Undefined variable: undefined_var, %s(68) +Error: 8 - Undefined variable: unset_var, %s(71) + +Arg value 0 +bool(false) + +Arg value 1 +bool(false) + +Arg value 12345 +bool(false) + +Arg value -2345 +bool(false) + +Arg value 10.5 +bool(false) + +Arg value -10.5 +bool(false) + +Arg value 101234567000 +bool(false) + +Arg value 1.07654321E-9 +bool(false) + +Arg value 0.5 +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value 1 +bool(false) + +Arg value +bool(false) + +Arg value 1 +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value string +In __autoload(string) +bool(false) + +Arg value String +In __autoload(String) +bool(false) +Error: 4096 - Object of class stdClass could not be converted to string, %s(77) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/is_a_error_001.phpt b/ext/standard/tests/class_object/is_a_error_001.phpt new file mode 100644 index 0000000000..0d1aedca0c --- /dev/null +++ b/ext/standard/tests/class_object/is_a_error_001.phpt @@ -0,0 +1,44 @@ +--TEST-- +Test is_a() function : error conditions - wrong number of args +--FILE-- + +--EXPECTF-- +*** Testing is_a() : error conditions *** + +-- Testing is_a() function with more than expected no. of arguments -- + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 16 + +Warning: Wrong parameter count for is_a() in %s on line 16 +NULL + +-- Testing is_a() function with less than expected no. of arguments -- + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 21 + +Warning: Wrong parameter count for is_a() in %s on line 21 +NULL +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/is_a_variation_001.phpt b/ext/standard/tests/class_object/is_a_variation_001.phpt new file mode 100644 index 0000000000..d521502dc4 --- /dev/null +++ b/ext/standard/tests/class_object/is_a_variation_001.phpt @@ -0,0 +1,213 @@ +--TEST-- +Test is_a() function : usage variations - wrong type for arg 1 +--FILE-- + 'red', 'item' => 'pen'), + + // null data + NULL, + null, + + // boolean data + true, + false, + TRUE, + FALSE, + + // empty data + "", + '', + + // string data + "string", + 'String', + + // undefined data + $undefined_var, + + // unset data + $unset_var, +); + +// loop through each element of the array for object + +foreach($values as $value) { + echo "\nArg value $value \n"; + var_dump( is_a($value, $class_name) ); +}; + +echo "Done"; +?> +--EXPECTF-- +*** Testing is_a() : usage variations *** + +Notice: Undefined variable: undefined_var in %s on line 59 + +Notice: Undefined variable: unset_var in %s on line 62 + +Arg value 0 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value 1 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value 12345 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value -2345 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value 10.5 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value -10.5 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value 101234567000 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value 1.07654321E-9 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value 0.5 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value Array + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value Array + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value Array + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value Array + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value Array + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value 1 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value 1 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value string + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value String + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 69 +bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/is_a_variation_002.phpt b/ext/standard/tests/class_object/is_a_variation_002.phpt new file mode 100644 index 0000000000..9835e7c68f --- /dev/null +++ b/ext/standard/tests/class_object/is_a_variation_002.phpt @@ -0,0 +1,223 @@ +--TEST-- +Test is_a() function : usage variations - wrong type for arg 2 +--FILE-- + 'red', 'item' => 'pen'), + + // null data + NULL, + null, + + // boolean data + true, + false, + TRUE, + FALSE, + + // empty data + "", + '', + + // object data + new C, + + // undefined data + $undefined_var, + + // unset data + $unset_var, +); + +// loop through each element of the array for class_name + +foreach($values as $value) { + echo "\nArg value $value \n"; + var_dump( is_a($object, $value) ); +}; + +echo "Done"; +?> +--EXPECTF-- +*** Testing is_a() : usage variations *** + +Notice: Undefined variable: undefined_var in %s on line 64 + +Notice: Undefined variable: unset_var in %s on line 67 + +Arg value 0 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value 1 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value 12345 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value -2345 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value 10.5 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value -10.5 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value 101234567000 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value 1.07654321E-9 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value 0.5 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value Array + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 + +Notice: Array to string conversion in %s on line 74 +bool(false) + +Arg value Array + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 + +Notice: Array to string conversion in %s on line 74 +bool(false) + +Arg value Array + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 + +Notice: Array to string conversion in %s on line 74 +bool(false) + +Arg value Array + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 + +Notice: Array to string conversion in %s on line 74 +bool(false) + +Arg value Array + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 + +Notice: Array to string conversion in %s on line 74 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value 1 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value 1 + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value C Instance + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) + +Arg value + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 74 +bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/is_a_variation_003.phpt b/ext/standard/tests/class_object/is_a_variation_003.phpt new file mode 100644 index 0000000000..9cc50f34b4 --- /dev/null +++ b/ext/standard/tests/class_object/is_a_variation_003.phpt @@ -0,0 +1,25 @@ +--TEST-- +Test is_a() function : usage variations - case sensitivity +--FILE-- + +--EXPECTF-- +*** Testing is_a() : usage variations *** + +Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %s on line 13 +bool(true) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/is_subclass_of_error_001.phpt b/ext/standard/tests/class_object/is_subclass_of_error_001.phpt new file mode 100644 index 0000000000..4403bde4c0 --- /dev/null +++ b/ext/standard/tests/class_object/is_subclass_of_error_001.phpt @@ -0,0 +1,40 @@ +--TEST-- +Test is_subclass_of() function : wrong number of args +--FILE-- + +--EXPECTF-- +*** Testing is_subclass_of() : error conditions *** + +-- Testing is_subclass_of() function with more than expected no. of arguments -- + +Warning: Wrong parameter count for is_subclass_of() in %s on line 16 +NULL + +-- Testing is_subclass_of() function with less than expected no. of arguments -- + +Warning: Wrong parameter count for is_subclass_of() in %s on line 21 +NULL +Done diff --git a/ext/standard/tests/class_object/is_subclass_of_variation_001.phpt b/ext/standard/tests/class_object/is_subclass_of_variation_001.phpt new file mode 100644 index 0000000000..f11183d489 --- /dev/null +++ b/ext/standard/tests/class_object/is_subclass_of_variation_001.phpt @@ -0,0 +1,175 @@ +--TEST-- +Test is_subclass_of() function : usage variations - unexpected type for arg 1 +--FILE-- + 'red', 'item' => 'pen'), + + // null data + NULL, + null, + + // boolean data + true, + false, + TRUE, + FALSE, + + // empty data + "", + '', + + // string data + "string", + 'String', + + // undefined data + $undefined_var, + + // unset data + $unset_var, +); + +// loop through each element of the array for object + +foreach($values as $value) { + echo "\nArg value $value \n"; + var_dump( is_subclass_of($value, $class_name) ); +}; + +echo "Done"; +?> +--EXPECTF-- +*** Testing is_subclass_of() : usage variations *** +Error: 8 - Undefined variable: undefined_var, %s(69) +Error: 8 - Undefined variable: unset_var, %s(72) + +Arg value 0 +bool(false) + +Arg value 1 +bool(false) + +Arg value 12345 +bool(false) + +Arg value -2345 +bool(false) + +Arg value 10.5 +bool(false) + +Arg value -10.5 +bool(false) + +Arg value 101234567000 +bool(false) + +Arg value 1.07654321E-9 +bool(false) + +Arg value 0.5 +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value 1 +bool(false) + +Arg value +bool(false) + +Arg value 1 +bool(false) + +Arg value +bool(false) + +Arg value +Error: 2 - Unknown class passed as parameter, %s(79) +bool(false) + +Arg value +Error: 2 - Unknown class passed as parameter, %s(79) +bool(false) + +Arg value string +In __autoload(string) +Error: 2 - Unknown class passed as parameter, %s(79) +bool(false) + +Arg value String +In __autoload(String) +Error: 2 - Unknown class passed as parameter, %s(79) +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/is_subclass_of_variation_002.phpt b/ext/standard/tests/class_object/is_subclass_of_variation_002.phpt new file mode 100644 index 0000000000..a45583ce63 --- /dev/null +++ b/ext/standard/tests/class_object/is_subclass_of_variation_002.phpt @@ -0,0 +1,172 @@ +--TEST-- +Test is_subclass_of() function : usage variations - unexpected type for arg 2 +--FILE-- + 'red', 'item' => 'pen'), + + // null data + NULL, + null, + + // boolean data + true, + false, + TRUE, + FALSE, + + // empty data + "", + '', + + // object data + new stdclass(), + + // undefined data + $undefined_var, + + // unset data + $unset_var, +); + +// loop through each element of the array for class_name + +foreach($values as $value) { + echo "\nArg value $value \n"; + var_dump( is_subclass_of($object, $value) ); +}; + +echo "Done"; +?> +--EXPECTF-- +*** Testing is_subclass_of() : usage variations *** +Error: 8 - Undefined variable: undefined_var, %s(67) +Error: 8 - Undefined variable: unset_var, %s(70) + +Arg value 0 +bool(false) + +Arg value 1 +bool(false) + +Arg value 12345 +bool(false) + +Arg value -2345 +bool(false) + +Arg value 10.5 +bool(false) + +Arg value -10.5 +bool(false) + +Arg value 101234567000 +bool(false) + +Arg value 1.07654321E-9 +bool(false) + +Arg value 0.5 +bool(false) + +Arg value Array +Error: 8 - Array to string conversion, %s(77) +bool(false) + +Arg value Array +Error: 8 - Array to string conversion, %s(77) +bool(false) + +Arg value Array +Error: 8 - Array to string conversion, %s(77) +bool(false) + +Arg value Array +Error: 8 - Array to string conversion, %s(77) +bool(false) + +Arg value Array +Error: 8 - Array to string conversion, %s(77) +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value 1 +bool(false) + +Arg value +bool(false) + +Arg value 1 +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) +Error: 4096 - Object of class stdClass could not be converted to string, %s(76) + +Arg value +Error: 4096 - Object of class stdClass could not be converted to string, %s(77) +Error: 8 - Object of class stdClass to string conversion, %s(77) +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/is_subclass_of_variation_003.phpt b/ext/standard/tests/class_object/is_subclass_of_variation_003.phpt new file mode 100644 index 0000000000..d4aef12349 --- /dev/null +++ b/ext/standard/tests/class_object/is_subclass_of_variation_003.phpt @@ -0,0 +1,26 @@ +--TEST-- +Test is_subclass_of() function : usage variations - case sensitivity +--FILE-- + +--EXPECTF-- +*** Testing is_subclass_of() : usage variations *** +*** Testing is_a() : usage variations *** +bool(true) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/method_exists_basic_001.phpt b/ext/standard/tests/class_object/method_exists_basic_001.phpt new file mode 100644 index 0000000000..2f11e4c46e --- /dev/null +++ b/ext/standard/tests/class_object/method_exists_basic_001.phpt @@ -0,0 +1,83 @@ +--TEST-- +method_exists() on userspace classes; static & non-static methods with various visibilities. +--FILE-- + +--EXPECTF-- + + ---(Using string class name)--- +Does C::inherit_pub exist? bool(true) +Does C::inherit_prot exist? bool(true) +Does C::inherit_priv exist? bool(true) +Does C::inherit_static_pub exist? bool(true) +Does C::inherit_static_prot exist? bool(true) +Does C::inherit_static_priv exist? bool(true) +Does C::pub exist? bool(true) +Does C::prot exist? bool(true) +Does C::priv exist? bool(true) +Does C::static_pub exist? bool(true) +Does C::static_prot exist? bool(true) +Does C::static_priv exist? bool(true) +Does C::non_existent exist? bool(false) + + ---(Using object)--- +Does C::inherit_pub exist? bool(true) +Does C::inherit_prot exist? bool(true) +Does C::inherit_priv exist? bool(true) +Does C::inherit_static_pub exist? bool(true) +Does C::inherit_static_prot exist? bool(true) +Does C::inherit_static_priv exist? bool(true) +Does C::pub exist? bool(true) +Does C::prot exist? bool(true) +Does C::priv exist? bool(true) +Does C::static_pub exist? bool(true) +Does C::static_prot exist? bool(true) +Does C::static_priv exist? bool(true) +Does C::non_existent exist? bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/method_exists_basic_002.phpt b/ext/standard/tests/class_object/method_exists_basic_002.phpt new file mode 100644 index 0000000000..f6b62aa265 --- /dev/null +++ b/ext/standard/tests/class_object/method_exists_basic_002.phpt @@ -0,0 +1,33 @@ +--TEST-- +method_exists() on internal classes +--FILE-- + +--EXPECTF-- + ---(Internal classes, using string class name)--- +Does exception::getmessage exist? bool(true) +Does stdclass::nonexistent exist? bool(false) + + ---(Internal classes, using class instance)--- +Does exception::getmessage exist? bool(true) +Does stdclass::nonexistent exist? bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/method_exists_basic_003.phpt b/ext/standard/tests/class_object/method_exists_basic_003.phpt new file mode 100644 index 0000000000..32f62b7e4b --- /dev/null +++ b/ext/standard/tests/class_object/method_exists_basic_003.phpt @@ -0,0 +1,22 @@ +--TEST-- +method_exists() on non-existent class, with __autoload(). +--FILE-- + +--EXPECTF-- +In __autoload(UndefC) +bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/method_exists_error_001.phpt b/ext/standard/tests/class_object/method_exists_error_001.phpt new file mode 100644 index 0000000000..203128c677 --- /dev/null +++ b/ext/standard/tests/class_object/method_exists_error_001.phpt @@ -0,0 +1,40 @@ +--TEST-- +Test method_exists() function : error conditions - wrong number of args +--FILE-- + +--EXPECTF-- +*** Testing method_exists() : error conditions *** + +-- Testing method_exists() function with more than expected no. of arguments -- + +Warning: Wrong parameter count for method_exists() in %s on line 16 +NULL + +-- Testing method_exists() function with less than expected no. of arguments -- + +Warning: Wrong parameter count for method_exists() in %s on line 21 +NULL +Done diff --git a/ext/standard/tests/class_object/method_exists_variation_001.phpt b/ext/standard/tests/class_object/method_exists_variation_001.phpt new file mode 100644 index 0000000000..117c211d0d --- /dev/null +++ b/ext/standard/tests/class_object/method_exists_variation_001.phpt @@ -0,0 +1,170 @@ +--TEST-- +Test method_exists() function : usage variations - unexpected type for arg 1 +--FILE-- + 'red', 'item' => 'pen'), + + // null data + NULL, + null, + + // boolean data + true, + false, + TRUE, + FALSE, + + // empty data + "", + '', + + // string data + "string", + 'String', + + // undefined data + $undefined_var, + + // unset data + $unset_var, +); + +// loop through each element of the array for object + +foreach($values as $value) { + echo "\nArg value $value \n"; + var_dump( method_exists($value, $method) ); +}; + +echo "Done"; +?> +--EXPECTF-- +*** Testing method_exists() : usage variations *** +Error: 8 - Undefined variable: undefined_var, %s(68) +Error: 8 - Undefined variable: unset_var, %s(71) + +Arg value 0 +bool(false) + +Arg value 1 +bool(false) + +Arg value 12345 +bool(false) + +Arg value -2345 +bool(false) + +Arg value 10.5 +bool(false) + +Arg value -10.5 +bool(false) + +Arg value 101234567000 +bool(false) + +Arg value 1.07654321E-9 +bool(false) + +Arg value 0.5 +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value Array +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value 1 +bool(false) + +Arg value +bool(false) + +Arg value 1 +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value string +In __autoload(string) +bool(false) + +Arg value String +In __autoload(String) +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/method_exists_variation_002.phpt b/ext/standard/tests/class_object/method_exists_variation_002.phpt new file mode 100644 index 0000000000..54d0ef94f5 --- /dev/null +++ b/ext/standard/tests/class_object/method_exists_variation_002.phpt @@ -0,0 +1,172 @@ +--TEST-- +Test method_exists() function : usage variations - unexpected type for arg 2 +--FILE-- + 'red', 'item' => 'pen'), + + // null data + NULL, + null, + + // boolean data + true, + false, + TRUE, + FALSE, + + // empty data + "", + '', + + // object data + new stdclass(), + + // undefined data + $undefined_var, + + // unset data + $unset_var, +); + +// loop through each element of the array for method + +foreach($values as $value) { + echo "\nArg value $value \n"; + var_dump( method_exists($object, $value) ); +}; + +echo "Done"; +?> +--EXPECTF-- +*** Testing method_exists() : usage variations *** +Error: 8 - Undefined variable: undefined_var, %s(67) +Error: 8 - Undefined variable: unset_var, %s(70) + +Arg value 0 +bool(false) + +Arg value 1 +bool(false) + +Arg value 12345 +bool(false) + +Arg value -2345 +bool(false) + +Arg value 10.5 +bool(false) + +Arg value -10.5 +bool(false) + +Arg value 101234567000 +bool(false) + +Arg value 1.07654321E-9 +bool(false) + +Arg value 0.5 +bool(false) + +Arg value Array +Error: 8 - Array to string conversion, %s(77) +bool(false) + +Arg value Array +Error: 8 - Array to string conversion, %s(77) +bool(false) + +Arg value Array +Error: 8 - Array to string conversion, %s(77) +bool(false) + +Arg value Array +Error: 8 - Array to string conversion, %s(77) +bool(false) + +Arg value Array +Error: 8 - Array to string conversion, %s(77) +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value 1 +bool(false) + +Arg value +bool(false) + +Arg value 1 +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) +Error: 4096 - Object of class stdClass could not be converted to string, %s(76) + +Arg value +Error: 4096 - Object of class stdClass could not be converted to string, %s(77) +Error: 8 - Object of class stdClass to string conversion, %s(77) +bool(false) + +Arg value +bool(false) + +Arg value +bool(false) +Done \ No newline at end of file diff --git a/ext/standard/tests/class_object/method_exists_variation_003.phpt b/ext/standard/tests/class_object/method_exists_variation_003.phpt new file mode 100644 index 0000000000..debe5a35e9 --- /dev/null +++ b/ext/standard/tests/class_object/method_exists_variation_003.phpt @@ -0,0 +1,26 @@ +--TEST-- +Test method_exists() function : variation - Case sensitivity +--FILE-- + +--EXPECTF-- +*** Testing method_exists() : variation *** +bool(true) +bool(true) +Done \ No newline at end of file diff --git a/tests/classes/__call_004.phpt b/tests/classes/__call_004.phpt new file mode 100644 index 0000000000..2072112a02 --- /dev/null +++ b/tests/classes/__call_004.phpt @@ -0,0 +1,41 @@ +--TEST-- +When __call() is invoked via ::, ensure current scope's __call() is favoured over the specified class's __call(). +--FILE-- +test(); +?> +--EXPECTF-- +In B::__call(test1, array(1,a)) +object(B)#1 (0) { +} +In B::__call(test2, array(1,a)) +object(B)#1 (0) { +} +In B::__call(test3, array(1,a)) +object(B)#1 (0) { +} +In B::__call(test4, array(1,a)) +object(B)#1 (0) { +} \ No newline at end of file diff --git a/tests/classes/__call_005.phpt b/tests/classes/__call_005.phpt new file mode 100644 index 0000000000..c82a853f72 --- /dev/null +++ b/tests/classes/__call_005.phpt @@ -0,0 +1,36 @@ +--TEST-- +When __call() is invoked via ::, ensure private implementation of __call() in superclass is accessed without error. +--FILE-- +test(); +?> +--EXPECTF-- +In A::__call(test1, array(1,a)) +object(B)#1 (0) { +} +In A::__call(test2, array(1,a)) +object(B)#1 (0) { +} +In A::__call(test3, array(1,a)) +object(B)#1 (0) { +} +In A::__call(test4, array(1,a)) +object(B)#1 (0) { +} \ No newline at end of file diff --git a/tests/classes/interface_constant_inheritance_001.phpt b/tests/classes/interface_constant_inheritance_001.phpt new file mode 100644 index 0000000000..ae3e71e7ab --- /dev/null +++ b/tests/classes/interface_constant_inheritance_001.phpt @@ -0,0 +1,17 @@ +--TEST-- +Ensure an interface may not shadow an inherited constant. +--FILE-- + +--EXPECTF-- + +Fatal error: Cannot inherit previously-inherited constant FOO from interface I1 in %s on line 6 \ No newline at end of file diff --git a/tests/classes/interface_constant_inheritance_002.phpt b/tests/classes/interface_constant_inheritance_002.phpt new file mode 100644 index 0000000000..d5001baa3d --- /dev/null +++ b/tests/classes/interface_constant_inheritance_002.phpt @@ -0,0 +1,17 @@ +--TEST-- +Ensure a class may not shadow a constant inherited from an interface. +--FILE-- + +--EXPECTF-- + +Fatal error: Cannot inherit previously-inherited constant FOO from interface I in %s on line 6 \ No newline at end of file diff --git a/tests/classes/interface_constant_inheritance_003.phpt b/tests/classes/interface_constant_inheritance_003.phpt new file mode 100644 index 0000000000..a3ba815edf --- /dev/null +++ b/tests/classes/interface_constant_inheritance_003.phpt @@ -0,0 +1,20 @@ +--TEST-- +Ensure a class may not inherit two constants with the same name from two separate interfaces. +--FILE-- + +--EXPECTF-- + +Fatal error: Cannot inherit previously-inherited constant FOO from interface I2 in %s on line 10 diff --git a/tests/classes/interface_constant_inheritance_004.phpt b/tests/classes/interface_constant_inheritance_004.phpt new file mode 100644 index 0000000000..05b8972363 --- /dev/null +++ b/tests/classes/interface_constant_inheritance_004.phpt @@ -0,0 +1,18 @@ +--TEST-- +Ensure a class may implement two interfaces which include the same constant due to inheritance. +--FILE-- + +--EXPECTF-- +Done diff --git a/tests/classes/tostring_004.phpt b/tests/classes/tostring_004.phpt new file mode 100644 index 0000000000..de0283e8e6 --- /dev/null +++ b/tests/classes/tostring_004.phpt @@ -0,0 +1,56 @@ +--TEST-- +Object to string conversion: error cases and behaviour variations. +--FILE-- + +--EXPECTF-- +Object with no __toString(): +Try 1: +Error: 4096 - Object of class stdClass could not be converted to string +Error: 8 - Object of class stdClass to string conversion +Object + +Try 2: +Error: 4096 - Object of class stdClass could not be converted to string + + + +Object with bad __toString(): +Try 1: +Error: 4096 - Method badToString::__toString() must return a string value + + +Try 2: +Error: 4096 - Method badToString::__toString() must return a string value +