summaryrefslogtreecommitdiff
path: root/ext/standard/tests/general_functions/is_object.phpt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/standard/tests/general_functions/is_object.phpt
downloadphp2-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/standard/tests/general_functions/is_object.phpt')
-rw-r--r--ext/standard/tests/general_functions/is_object.phpt227
1 files changed, 227 insertions, 0 deletions
diff --git a/ext/standard/tests/general_functions/is_object.phpt b/ext/standard/tests/general_functions/is_object.phpt
new file mode 100644
index 0000000..33fd422
--- /dev/null
+++ b/ext/standard/tests/general_functions/is_object.phpt
@@ -0,0 +1,227 @@
+--TEST--
+Test is_object() function
+--FILE--
+<?php
+/* Prototype: bool is_object ( mixed $var );
+ * Description: Finds whether the given variable is an object
+ */
+
+echo "*** Testing is_object() with valid objects ***\n";
+
+// class with no members
+class foo
+{
+// no members
+}
+
+// abstract class
+abstract class abstractClass
+{
+ abstract protected function getClassName();
+ public function printClassName () {
+ echo $this->getClassName() . "\n";
+ }
+}
+
+// implement abstract class
+class concreteClass extends abstractClass
+{
+ protected function getClassName() {
+ return "concreteClass";
+ }
+}
+
+// interface class
+interface IValue
+{
+ public function setVal ($name, $val);
+ public function dumpVal ();
+}
+
+// implement the interface
+class Value implements IValue
+{
+ private $vars = array ();
+
+ public function setVal ( $name, $val ) {
+ $this->vars[$name] = $val;
+ }
+
+ public function dumpVal () {
+ var_dump ( $vars );
+ }
+}
+
+// a gereral class
+class myClass
+{
+ var $foo_object;
+ public $public_var;
+ public $public_var1;
+ private $private_var;
+ protected $protected_var;
+
+ function myClass ( ) {
+ $this->foo_object = new foo();
+ $this->public_var = 10;
+ $this->public_var1 = new foo();
+ $this->private_var = new foo();
+ $this->proected_var = new foo();
+ }
+}
+
+// create a object of each class defined above
+$myClass_object = new myClass();
+$foo_object = new foo();
+$Value_object = new Value();
+$concreteClass_object = new concreteClass();
+
+$valid_objects = array(
+ new stdclass,
+ new foo,
+ new concreteClass,
+ new Value,
+ new myClass,
+ $myClass_object,
+ $myClass_object->foo_object,
+ $myClass_object->public_var1,
+ $foo_object,
+ $Value_object,
+ $concreteClass_object
+);
+
+/* loop to check that is_object() recognizes different
+ objects, expected output: bool(true) */
+$loop_counter = 1;
+foreach ($valid_objects as $object ) {
+ echo "-- Iteration $loop_counter --\n"; $loop_counter++;
+ var_dump( is_object($object) );
+}
+
+echo "\n*** Testing is_object() on non object types ***\n";
+
+// get a resource type variable
+$fp = fopen (__FILE__, "r");
+$dfp = opendir ( dirname(__FILE__) );
+
+// unset object
+$unset_object = new foo();
+unset ($unset_object);
+
+// other types in a array
+$not_objects = array (
+ 0,
+ -1,
+ 0.1,
+ -10.0000000000000000005,
+ 10.5e+5,
+ 0xFF,
+ 0123,
+ $fp, // resource
+ $dfp,
+ array(),
+ array("string"),
+ "0",
+ "1",
+ "",
+ true,
+ NULL,
+ null,
+ @$unset_object, // unset object
+ @$undefined_var, // undefined variable
+);
+/* loop through the $not_objects to see working of
+ is_object() on non object types, expected output: bool(false) */
+$loop_counter = 1;
+foreach ($not_objects as $type ) {
+ echo "-- Iteration $loop_counter --\n"; $loop_counter++;
+ var_dump( is_object($type) );
+}
+
+echo "\n*** Testing error conditions ***\n";
+//Zero argument
+var_dump( is_object() );
+
+//arguments more than expected
+var_dump( is_object($myClass_object, $myClass_object) );
+
+echo "Done\n";
+
+// close the resources used
+fclose($fp);
+closedir($dfp);
+
+?>
+--EXPECTF--
+*** Testing is_object() with valid objects ***
+-- Iteration 1 --
+bool(true)
+-- Iteration 2 --
+bool(true)
+-- Iteration 3 --
+bool(true)
+-- Iteration 4 --
+bool(true)
+-- Iteration 5 --
+bool(true)
+-- Iteration 6 --
+bool(true)
+-- Iteration 7 --
+bool(true)
+-- Iteration 8 --
+bool(true)
+-- Iteration 9 --
+bool(true)
+-- Iteration 10 --
+bool(true)
+-- Iteration 11 --
+bool(true)
+
+*** Testing is_object() on non object types ***
+-- Iteration 1 --
+bool(false)
+-- Iteration 2 --
+bool(false)
+-- Iteration 3 --
+bool(false)
+-- Iteration 4 --
+bool(false)
+-- Iteration 5 --
+bool(false)
+-- Iteration 6 --
+bool(false)
+-- Iteration 7 --
+bool(false)
+-- Iteration 8 --
+bool(false)
+-- Iteration 9 --
+bool(false)
+-- Iteration 10 --
+bool(false)
+-- Iteration 11 --
+bool(false)
+-- Iteration 12 --
+bool(false)
+-- Iteration 13 --
+bool(false)
+-- Iteration 14 --
+bool(false)
+-- Iteration 15 --
+bool(false)
+-- Iteration 16 --
+bool(false)
+-- Iteration 17 --
+bool(false)
+-- Iteration 18 --
+bool(false)
+-- Iteration 19 --
+bool(false)
+
+*** Testing error conditions ***
+
+Warning: is_object() expects exactly 1 parameter, 0 given in %s on line %d
+bool(false)
+
+Warning: is_object() expects exactly 1 parameter, 2 given in %s on line %d
+bool(false)
+Done