From f0acfb157d30c109dd2981d512a3609c41f23747 Mon Sep 17 00:00:00 2001 From: Robin Fernandes Date: Thu, 6 Mar 2008 11:07:29 +0000 Subject: Add new tests for class/object functions and features. --- tests/classes/__call_004.phpt | 41 ++++++++++++ tests/classes/__call_005.phpt | 36 +++++++++++ .../interface_constant_inheritance_001.phpt | 17 +++++ .../interface_constant_inheritance_002.phpt | 17 +++++ .../interface_constant_inheritance_003.phpt | 20 ++++++ .../interface_constant_inheritance_004.phpt | 18 ++++++ tests/classes/tostring_004.phpt | 74 ++++++++++++++++++++++ 7 files changed, 223 insertions(+) create mode 100644 tests/classes/__call_004.phpt create mode 100644 tests/classes/__call_005.phpt create mode 100644 tests/classes/interface_constant_inheritance_001.phpt create mode 100644 tests/classes/interface_constant_inheritance_002.phpt create mode 100644 tests/classes/interface_constant_inheritance_003.phpt create mode 100644 tests/classes/interface_constant_inheritance_004.phpt create mode 100644 tests/classes/tostring_004.phpt (limited to 'tests') 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..f055929578 --- /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..a323a5bfc5 --- /dev/null +++ b/tests/classes/tostring_004.phpt @@ -0,0 +1,74 @@ +--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 +--UEXPECTF-- +Object with no __toString(): +Try 1: +Error: 4096 - Object of class stdClass could not be converted to Unicode 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 -- cgit v1.2.1