Annotation of embedaddon/php/tests/classes/__call_006.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Ensure exceptions are handled properly when thrown in __call.
3: --FILE--
4: <?php
5: class A {
6: function __call($strMethod, $arrArgs) {
7: var_dump($this);
8: throw new Exception;
9: echo "You should not see this";
10: }
11: function test() {
12: A::unknownCalledWithSRO(1,2,3);
13: }
14: }
15:
16: class B extends A {
17: function test() {
18: B::unknownCalledWithSROFromChild(1,2,3);
19: }
20: }
21:
22: $a = new A();
23:
24: echo "---> Invoke __call via simple method call.\n";
25: try {
26: $a->unknown();
27: } catch (Exception $e) {
28: echo "Exception caught OK; continuing.\n";
29: }
30:
31: echo "\n\n---> Invoke __call via scope resolution operator within instance.\n";
32: try {
33: $a->test();
34: } catch (Exception $e) {
35: echo "Exception caught OK; continuing.\n";
36: }
37:
38: echo "\n\n---> Invoke __call via scope resolution operator within child instance.\n";
39: $b = new B();
40: try {
41: $b->test();
42: } catch (Exception $e) {
43: echo "Exception caught OK; continuing.\n";
44: }
45:
46: echo "\n\n---> Invoke __call via callback.\n";
47: try {
48: call_user_func(array($b, 'unknownCallback'), 1,2,3);
49: } catch (Exception $e) {
50: echo "Exception caught OK; continuing.\n";
51: }
52: ?>
53: ==DONE==
54: --EXPECTF--
55: ---> Invoke __call via simple method call.
56: object(A)#%d (0) {
57: }
58: Exception caught OK; continuing.
59:
60:
61: ---> Invoke __call via scope resolution operator within instance.
62: object(A)#%d (0) {
63: }
64: Exception caught OK; continuing.
65:
66:
67: ---> Invoke __call via scope resolution operator within child instance.
68: object(B)#%d (0) {
69: }
70: Exception caught OK; continuing.
71:
72:
73: ---> Invoke __call via callback.
74: object(B)#%d (0) {
75: }
76: Exception caught OK; continuing.
77: ==DONE==
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>