Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
--TEST--
2
PHP Backend XML-RPC server Validator1 test (nestedStructTest)
3
--FILE--
4
<?php
5
class TestServer {
6
    /**
7
     * test function
8
     *
9
     * see http://www.xmlrpc.com/validator1Docs
10
     *
11
     * @param array $struct
12
     * @return int result
13
     */
14
    public static function nestedStructTest($struct) {
15
    	// just to avoir problems with numeric indexes...
16
    	$struct2 = array();
17
    	while (list($key, $year) = each($struct)) {
18
    		if ($key=='2000') {
19
    			while (list($key2, $month) = each($year)) {
20
    				if ($key2=='04') {
21
    					while (list($key3, $day) = each($month)) {
22
    						if ($key3=='01') {
23
    							return $day['moe'] + $day['larry'] + $day['curly'];
24
    						}
25
    					}
26
    				}
27
    			}
28
    		}
29
    	}
30
    }
31
}
32
 
33
set_include_path(realpath(dirname(__FILE__) . '/../../../../') . PATH_SEPARATOR . get_include_path());
34
require_once 'XML/RPC2/Server.php';
35
$options = array(
36
	'prefix' => 'validator1.',
37
	'backend' => 'Php'
38
);
39
 
40
$server = XML_RPC2_Server::create('TestServer', $options);
41
$GLOBALS['HTTP_RAW_POST_DATA'] = <<<EOS
42
<?xml version="1.0" encoding="iso-8859-1"?>
43
<methodCall>
44
<methodName>validator1.nestedStructTest</methodName>
45
<params>
46
 <param>
47
  <value>
48
   <struct>
49
    <member>
50
     <name>1999</name>
51
     <value>
52
      <struct>
53
       <member>
54
        <name>04</name>
55
        <value>
56
         <array>
57
          <data/>
58
         </array>
59
        </value>
60
       </member>
61
      </struct>
62
     </value>
63
    </member>
64
    <member>
65
     <name>2000</name>
66
     <value>
67
      <struct>
68
       <member>
69
        <name>04</name>
70
        <value>
71
         <struct>
72
          <member>
73
           <name>01</name>
74
           <value>
75
            <struct>
76
             <member>
77
              <name>moe</name>
78
              <value>
79
               <int>12</int>
80
              </value>
81
             </member>
82
             <member>
83
              <name>larry</name>
84
              <value>
85
               <int>14</int>
86
              </value>
87
             </member>
88
             <member>
89
              <name>curly</name>
90
              <value>
91
               <int>9</int>
92
              </value>
93
             </member>
94
            </struct>
95
           </value>
96
          </member>
97
         </struct>
98
        </value>
99
       </member>
100
      </struct>
101
     </value>
102
    </member>
103
    <member>
104
     <name>2001</name>
105
     <value>
106
      <struct>
107
       <member>
108
        <name>04</name>
109
        <value>
110
         <array>
111
          <data/>
112
         </array>
113
        </value>
114
       </member>
115
      </struct>
116
     </value>
117
    </member>
118
   </struct>
119
  </value>
120
 </param>
121
</params>
122
</methodCall>
123
EOS
124
;
125
$response = $server->getResponse();
126
$result = (XML_RPC2_Backend_Php_Response::decode(simplexml_load_string($response)));
127
var_dump($result);
128
 
129
?>
130
--EXPECT--
131
int(35)