@@ -119,7 +119,7 @@ discard block |
||
119 | 119 | $this->me['struct'] = $val; |
120 | 120 | break; |
121 | 121 | default: |
122 | - $this->getLogger()->errorLog("XML-RPC: " . __METHOD__ . ": not a known type ($type)"); |
|
122 | + $this->getLogger()->errorLog("XML-RPC: ".__METHOD__.": not a known type ($type)"); |
|
123 | 123 | } |
124 | 124 | } |
125 | 125 | } |
@@ -144,7 +144,7 @@ discard block |
||
144 | 144 | } |
145 | 145 | |
146 | 146 | if ($typeOf !== 1) { |
147 | - $this->getLogger()->errorLog("XML-RPC: " . __METHOD__ . ": not a scalar type ($type)"); |
|
147 | + $this->getLogger()->errorLog("XML-RPC: ".__METHOD__.": not a scalar type ($type)"); |
|
148 | 148 | return 0; |
149 | 149 | } |
150 | 150 | |
@@ -161,10 +161,10 @@ discard block |
||
161 | 161 | |
162 | 162 | switch ($this->mytype) { |
163 | 163 | case 1: |
164 | - $this->getLogger()->errorLog('XML-RPC: ' . __METHOD__ . ': scalar xmlrpc value can have only one value'); |
|
164 | + $this->getLogger()->errorLog('XML-RPC: '.__METHOD__.': scalar xmlrpc value can have only one value'); |
|
165 | 165 | return 0; |
166 | 166 | case 3: |
167 | - $this->getLogger()->errorLog('XML-RPC: ' . __METHOD__ . ': cannot add anonymous scalar to struct xmlrpc value'); |
|
167 | + $this->getLogger()->errorLog('XML-RPC: '.__METHOD__.': cannot add anonymous scalar to struct xmlrpc value'); |
|
168 | 168 | return 0; |
169 | 169 | case 2: |
170 | 170 | // we're adding a scalar value to an array here |
@@ -206,7 +206,7 @@ discard block |
||
206 | 206 | |
207 | 207 | return 1; |
208 | 208 | } else { |
209 | - $this->getLogger()->errorLog('XML-RPC: ' . __METHOD__ . ': already initialized as a [' . $this->kindOf() . ']'); |
|
209 | + $this->getLogger()->errorLog('XML-RPC: '.__METHOD__.': already initialized as a ['.$this->kindOf().']'); |
|
210 | 210 | return 0; |
211 | 211 | } |
212 | 212 | } |
@@ -237,7 +237,7 @@ discard block |
||
237 | 237 | |
238 | 238 | return 1; |
239 | 239 | } else { |
240 | - $this->getLogger()->errorLog('XML-RPC: ' . __METHOD__ . ': already initialized as a [' . $this->kindOf() . ']'); |
|
240 | + $this->getLogger()->errorLog('XML-RPC: '.__METHOD__.': already initialized as a ['.$this->kindOf().']'); |
|
241 | 241 | return 0; |
242 | 242 | } |
243 | 243 | } |
@@ -279,19 +279,19 @@ discard block |
||
279 | 279 | case 1: |
280 | 280 | switch ($typ) { |
281 | 281 | case static::$xmlrpcBase64: |
282 | - $rs .= "<${typ}>" . base64_encode($val) . "</${typ}>"; |
|
282 | + $rs .= "<${typ}>".base64_encode($val)."</${typ}>"; |
|
283 | 283 | break; |
284 | 284 | case static::$xmlrpcBoolean: |
285 | - $rs .= "<${typ}>" . ($val ? '1' : '0') . "</${typ}>"; |
|
285 | + $rs .= "<${typ}>".($val ? '1' : '0')."</${typ}>"; |
|
286 | 286 | break; |
287 | 287 | case static::$xmlrpcString: |
288 | 288 | // Do NOT use htmlentities, since it will produce named html entities, which are invalid xml |
289 | - $rs .= "<${typ}>" . $this->getCharsetEncoder()->encodeEntities($val, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</${typ}>"; |
|
289 | + $rs .= "<${typ}>".$this->getCharsetEncoder()->encodeEntities($val, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding)."</${typ}>"; |
|
290 | 290 | break; |
291 | 291 | case static::$xmlrpcInt: |
292 | 292 | case static::$xmlrpcI4: |
293 | 293 | case static::$xmlrpcI8: |
294 | - $rs .= "<${typ}>" . (int)$val . "</${typ}>"; |
|
294 | + $rs .= "<${typ}>".(int) $val."</${typ}>"; |
|
295 | 295 | break; |
296 | 296 | case static::$xmlrpcDouble: |
297 | 297 | // avoid using standard conversion of float to string because it is locale-dependent, |
@@ -299,16 +299,16 @@ discard block |
||
299 | 299 | // sprintf('%F') could be most likely ok but it fails eg. on 2e-14. |
300 | 300 | // The code below tries its best at keeping max precision while avoiding exp notation, |
301 | 301 | // but there is of course no limit in the number of decimal places to be used... |
302 | - $rs .= "<${typ}>" . preg_replace('/\\.?0+$/', '', number_format((double)$val, PhpXmlRpc::$xmlpc_double_precision, '.', '')) . "</${typ}>"; |
|
302 | + $rs .= "<${typ}>".preg_replace('/\\.?0+$/', '', number_format((double) $val, PhpXmlRpc::$xmlpc_double_precision, '.', ''))."</${typ}>"; |
|
303 | 303 | break; |
304 | 304 | case static::$xmlrpcDateTime: |
305 | 305 | if (is_string($val)) { |
306 | 306 | $rs .= "<${typ}>${val}</${typ}>"; |
307 | 307 | // DateTimeInterface is not present in php 5.4... |
308 | 308 | } elseif (is_a($val, 'DateTimeInterface') || is_a($val, 'DateTime')) { |
309 | - $rs .= "<${typ}>" . $val->format('Ymd\TH:i:s') . "</${typ}>"; |
|
309 | + $rs .= "<${typ}>".$val->format('Ymd\TH:i:s')."</${typ}>"; |
|
310 | 310 | } elseif (is_int($val)) { |
311 | - $rs .= "<${typ}>" . date('Ymd\TH:i:s', $val) . "</${typ}>"; |
|
311 | + $rs .= "<${typ}>".date('Ymd\TH:i:s', $val)."</${typ}>"; |
|
312 | 312 | } else { |
313 | 313 | // not really a good idea here: but what should we output anyway? left for backward compat... |
314 | 314 | $rs .= "<${typ}>${val}</${typ}>"; |
@@ -330,14 +330,14 @@ discard block |
||
330 | 330 | case 3: |
331 | 331 | // struct |
332 | 332 | if ($this->_php_class) { |
333 | - $rs .= '<struct php_class="' . $this->_php_class . "\">\n"; |
|
333 | + $rs .= '<struct php_class="'.$this->_php_class."\">\n"; |
|
334 | 334 | } else { |
335 | 335 | $rs .= "<struct>\n"; |
336 | 336 | } |
337 | 337 | $charsetEncoder = $this->getCharsetEncoder(); |
338 | 338 | /** @var Value $val2 */ |
339 | 339 | foreach ($val as $key2 => $val2) { |
340 | - $rs .= '<member><name>' . $charsetEncoder->encodeEntities($key2, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</name>\n"; |
|
340 | + $rs .= '<member><name>'.$charsetEncoder->encodeEntities($key2, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding)."</name>\n"; |
|
341 | 341 | //$rs.=$this->serializeval($val2); |
342 | 342 | $rs .= $val2->serialize($charsetEncoding); |
343 | 343 | $rs .= "</member>\n"; |
@@ -373,7 +373,7 @@ discard block |
||
373 | 373 | $val = reset($this->me); |
374 | 374 | $typ = key($this->me); |
375 | 375 | |
376 | - return '<value>' . $this->serializedata($typ, $val, $charsetEncoding) . "</value>\n"; |
|
376 | + return '<value>'.$this->serializedata($typ, $val, $charsetEncoding)."</value>\n"; |
|
377 | 377 | } |
378 | 378 | |
379 | 379 | /** |
@@ -2,20 +2,20 @@ |
||
2 | 2 | |
3 | 3 | use PHPUnit\Runner\Version as PHPUnit_Version; |
4 | 4 | |
5 | -if ( class_exists( 'PHPUnit_Extensions_SeleniumCommon_RemoteCoverage' ) === true |
|
6 | - && class_exists( 'PHPUnit\Extensions\SeleniumCommon\RemoteCoverage' ) === false |
|
5 | +if (class_exists('PHPUnit_Extensions_SeleniumCommon_RemoteCoverage') === true |
|
6 | + && class_exists('PHPUnit\Extensions\SeleniumCommon\RemoteCoverage') === false |
|
7 | 7 | ) { |
8 | - class_alias( 'PHPUnit_Extensions_SeleniumCommon_RemoteCoverage', 'PHPUnit\Extensions\SeleniumCommon\RemoteCoverage' ); |
|
8 | + class_alias('PHPUnit_Extensions_SeleniumCommon_RemoteCoverage', 'PHPUnit\Extensions\SeleniumCommon\RemoteCoverage'); |
|
9 | 9 | } |
10 | 10 | |
11 | -if ( class_exists( 'PHPUnit_Runner_BaseTestRunner' ) === true |
|
12 | - && class_exists( 'PHPUnit\Runner\BaseTestRunner' ) === false |
|
11 | +if (class_exists('PHPUnit_Runner_BaseTestRunner') === true |
|
12 | + && class_exists('PHPUnit\Runner\BaseTestRunner') === false |
|
13 | 13 | ) { |
14 | - class_alias( 'PHPUnit_Runner_BaseTestRunner', 'PHPUnit\Runner\BaseTestRunner' ); |
|
14 | + class_alias('PHPUnit_Runner_BaseTestRunner', 'PHPUnit\Runner\BaseTestRunner'); |
|
15 | 15 | } |
16 | 16 | |
17 | 17 | if (class_exists('PHPUnit\Runner\Version') === false || version_compare(PHPUnit_Version::id(), '8.0.0', '<')) { |
18 | - include_once __DIR__ . '/PolyfillTestCase7.php'; |
|
18 | + include_once __DIR__.'/PolyfillTestCase7.php'; |
|
19 | 19 | } else { |
20 | - include_once __DIR__ . '/PolyfillTestCase8.php'; |
|
20 | + include_once __DIR__.'/PolyfillTestCase8.php'; |
|
21 | 21 | } |
@@ -90,9 +90,9 @@ discard block |
||
90 | 90 | public function xml_header($charsetEncoding = '') |
91 | 91 | { |
92 | 92 | if ($charsetEncoding != '') { |
93 | - return "<?xml version=\"1.0\" encoding=\"$charsetEncoding\" ?" . ">\n<methodCall>\n"; |
|
93 | + return "<?xml version=\"1.0\" encoding=\"$charsetEncoding\" ?".">\n<methodCall>\n"; |
|
94 | 94 | } else { |
95 | - return "<?xml version=\"1.0\"?" . ">\n<methodCall>\n"; |
|
95 | + return "<?xml version=\"1.0\"?".">\n<methodCall>\n"; |
|
96 | 96 | } |
97 | 97 | } |
98 | 98 | |
@@ -112,16 +112,16 @@ discard block |
||
112 | 112 | public function createPayload($charsetEncoding = '') |
113 | 113 | { |
114 | 114 | if ($charsetEncoding != '') { |
115 | - $this->content_type = 'text/xml; charset=' . $charsetEncoding; |
|
115 | + $this->content_type = 'text/xml; charset='.$charsetEncoding; |
|
116 | 116 | } else { |
117 | 117 | $this->content_type = 'text/xml'; |
118 | 118 | } |
119 | 119 | $this->payload = $this->xml_header($charsetEncoding); |
120 | - $this->payload .= '<methodName>' . $this->getCharsetEncoder()->encodeEntities( |
|
121 | - $this->methodname, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</methodName>\n"; |
|
120 | + $this->payload .= '<methodName>'.$this->getCharsetEncoder()->encodeEntities( |
|
121 | + $this->methodname, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding)."</methodName>\n"; |
|
122 | 122 | $this->payload .= "<params>\n"; |
123 | 123 | foreach ($this->params as $p) { |
124 | - $this->payload .= "<param>\n" . $p->serialize($charsetEncoding) . |
|
124 | + $this->payload .= "<param>\n".$p->serialize($charsetEncoding). |
|
125 | 125 | "</param>\n"; |
126 | 126 | } |
127 | 127 | $this->payload .= "</params>\n"; |
@@ -248,7 +248,7 @@ discard block |
||
248 | 248 | $this->httpResponse = array('raw_data' => $data, 'headers' => array(), 'cookies' => array()); |
249 | 249 | |
250 | 250 | if ($data == '') { |
251 | - $this->getLogger()->errorLog('XML-RPC: ' . __METHOD__ . ': no response received from server.'); |
|
251 | + $this->getLogger()->errorLog('XML-RPC: '.__METHOD__.': no response received from server.'); |
|
252 | 252 | return new Response(0, PhpXmlRpc::$xmlrpcerr['no_data'], PhpXmlRpc::$xmlrpcstr['no_data']); |
253 | 253 | } |
254 | 254 | |
@@ -261,7 +261,7 @@ discard block |
||
261 | 261 | // failed processing of HTTP response headers |
262 | 262 | // save into response obj the full payload received, for debugging |
263 | 263 | return new Response(0, $e->getCode(), $e->getMessage(), '', array('raw_data' => $data, 'status_code', $e->statusCode())); |
264 | - } catch(\Exception $e) { |
|
264 | + } catch (\Exception $e) { |
|
265 | 265 | return new Response(0, $e->getCode(), $e->getMessage(), '', array('raw_data' => $data)); |
266 | 266 | } |
267 | 267 | } |
@@ -275,7 +275,7 @@ discard block |
||
275 | 275 | // idea from Luca Mariano <[email protected]> originally in PEARified version of the lib |
276 | 276 | $pos = strrpos($data, '</methodResponse>'); |
277 | 277 | if ($pos !== false) { |
278 | - $data = substr($data, 0, $pos + 17); |
|
278 | + $data = substr($data, 0, $pos+17); |
|
279 | 279 | } |
280 | 280 | |
281 | 281 | // try to 'guestimate' the character encoding of the received response |
@@ -286,9 +286,9 @@ discard block |
||
286 | 286 | if ($start) { |
287 | 287 | $start += strlen('<!-- SERVER DEBUG INFO (BASE64 ENCODED):'); |
288 | 288 | $end = strpos($data, '-->', $start); |
289 | - $comments = substr($data, $start, $end - $start); |
|
290 | - $this->getLogger()->debugMessage("---SERVER DEBUG INFO (DECODED) ---\n\t" . |
|
291 | - str_replace("\n", "\n\t", base64_decode($comments)) . "\n---END---", $respEncoding); |
|
289 | + $comments = substr($data, $start, $end-$start); |
|
290 | + $this->getLogger()->debugMessage("---SERVER DEBUG INFO (DECODED) ---\n\t". |
|
291 | + str_replace("\n", "\n\t", base64_decode($comments))."\n---END---", $respEncoding); |
|
292 | 292 | } |
293 | 293 | } |
294 | 294 | |
@@ -311,7 +311,7 @@ discard block |
||
311 | 311 | if (extension_loaded('mbstring')) { |
312 | 312 | $data = mb_convert_encoding($data, 'UTF-8', $respEncoding); |
313 | 313 | } else { |
314 | - $this->getLogger()->errorLog('XML-RPC: ' . __METHOD__ . ': invalid charset encoding of received response: ' . $respEncoding); |
|
314 | + $this->getLogger()->errorLog('XML-RPC: '.__METHOD__.': invalid charset encoding of received response: '.$respEncoding); |
|
315 | 315 | } |
316 | 316 | } |
317 | 317 | } |
@@ -332,12 +332,12 @@ discard block |
||
332 | 332 | $xmlRpcParser->parse($data, $returnType, XMLParser::ACCEPT_RESPONSE, $options); |
333 | 333 | |
334 | 334 | // first error check: xml not well formed |
335 | - if ($xmlRpcParser->_xh['isf'] > 2) { |
|
335 | + if ($xmlRpcParser->_xh['isf']>2) { |
|
336 | 336 | |
337 | 337 | // BC break: in the past for some cases we used the error message: 'XML error at line 1, check URL' |
338 | 338 | |
339 | 339 | $r = new Response(0, PhpXmlRpc::$xmlrpcerr['invalid_xml'], |
340 | - PhpXmlRpc::$xmlrpcstr['invalid_xml'] . ' ' . $xmlRpcParser->_xh['isf_reason'], '', |
|
340 | + PhpXmlRpc::$xmlrpcstr['invalid_xml'].' '.$xmlRpcParser->_xh['isf_reason'], '', |
|
341 | 341 | $this->httpResponse |
342 | 342 | ); |
343 | 343 | |
@@ -348,7 +348,7 @@ discard block |
||
348 | 348 | // second error check: xml well formed but not xml-rpc compliant |
349 | 349 | elseif ($xmlRpcParser->_xh['isf'] == 2) { |
350 | 350 | $r = new Response(0, PhpXmlRpc::$xmlrpcerr['xml_not_compliant'], |
351 | - PhpXmlRpc::$xmlrpcstr['xml_not_compliant'] . ' ' . $xmlRpcParser->_xh['isf_reason'], '', |
|
351 | + PhpXmlRpc::$xmlrpcstr['xml_not_compliant'].' '.$xmlRpcParser->_xh['isf_reason'], '', |
|
352 | 352 | $this->httpResponse |
353 | 353 | ); |
354 | 354 | |
@@ -364,7 +364,7 @@ discard block |
||
364 | 364 | '', $this->httpResponse |
365 | 365 | ); |
366 | 366 | } else { |
367 | - if ($this->debug > 1) { |
|
367 | + if ($this->debug>1) { |
|
368 | 368 | $this->getLogger()->debugMessage( |
369 | 369 | "---PARSED---\n".var_export($xmlRpcParser->_xh['value'], true)."\n---END---" |
370 | 370 | ); |
@@ -1,11 +1,11 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | |
3 | -include_once __DIR__ . '/../lib/xmlrpc.inc'; |
|
4 | -include_once __DIR__ . '/../lib/xmlrpc_wrappers.inc'; |
|
3 | +include_once __DIR__.'/../lib/xmlrpc.inc'; |
|
4 | +include_once __DIR__.'/../lib/xmlrpc_wrappers.inc'; |
|
5 | 5 | |
6 | -include_once __DIR__ . '/parse_args.php'; |
|
6 | +include_once __DIR__.'/parse_args.php'; |
|
7 | 7 | |
8 | -include_once __DIR__ . '/5ServerTest.php'; |
|
8 | +include_once __DIR__.'/5ServerTest.php'; |
|
9 | 9 | |
10 | 10 | /** |
11 | 11 | * Tests which stress http features of the library. |
@@ -30,7 +30,7 @@ discard block |
||
30 | 30 | ); |
31 | 31 | |
32 | 32 | $methods = array(); |
33 | - foreach(get_class_methods('ServerTest') as $method) |
|
33 | + foreach (get_class_methods('ServerTest') as $method) |
|
34 | 34 | { |
35 | 35 | if (strpos($method, 'test') === 0 && !in_array($method, $unsafeMethods)) |
36 | 36 | { |
@@ -271,7 +271,7 @@ discard block |
||
271 | 271 | preg_match('/ubunutu([0-9]+)/', $output[0], $matches); |
272 | 272 | $ubuntuVersion = @$matches[1]; |
273 | 273 | } |
274 | - if ($ubuntuVersion >= 20) { |
|
274 | + if ($ubuntuVersion>=20) { |
|
275 | 275 | $this->markTestSkipped('HTTPS via Socket known to fail on php less than 7.2 on Ubuntu 20 and higher'); |
276 | 276 | return; |
277 | 277 | } |
@@ -54,7 +54,7 @@ discard block |
||
54 | 54 | */ |
55 | 55 | public function echoInput() |
56 | 56 | { |
57 | - $r = new PhpXmlRpc\Response(new PhpXmlRpc\Value("'Aha said I: '" . file_get_contents('php://input'), 'string')); |
|
57 | + $r = new PhpXmlRpc\Response(new PhpXmlRpc\Value("'Aha said I: '".file_get_contents('php://input'), 'string')); |
|
58 | 58 | print $r->serialize(); |
59 | 59 | } |
60 | 60 | |
@@ -65,12 +65,12 @@ discard block |
||
65 | 65 | */ |
66 | 66 | public function __get($name) |
67 | 67 | { |
68 | - switch($name) { |
|
68 | + switch ($name) { |
|
69 | 69 | case 'dmap': |
70 | 70 | return $this->dmap; |
71 | 71 | default: |
72 | 72 | $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); |
73 | - trigger_error('Undefined property via __get(): ' . $name . ' in ' . $trace[0]['file'] . ' on line ' . |
|
73 | + trigger_error('Undefined property via __get(): '.$name.' in '.$trace[0]['file'].' on line '. |
|
74 | 74 | $trace[0]['line'], E_USER_NOTICE); |
75 | 75 | return null; |
76 | 76 | } |
@@ -97,30 +97,30 @@ discard block |
||
97 | 97 | Server::xmlrpc_debugmsg($m); |
98 | 98 | } |
99 | 99 | |
100 | -function _xmlrpcs_getCapabilities($server, $m=null) |
|
100 | +function _xmlrpcs_getCapabilities($server, $m = null) |
|
101 | 101 | { |
102 | 102 | return Server::_xmlrpcs_getCapabilities($server, $m); |
103 | 103 | } |
104 | 104 | |
105 | -$_xmlrpcs_listMethods_sig=array(array(\PhpXmlRpc\Value::$xmlrpcArray)); |
|
106 | -$_xmlrpcs_listMethods_doc='This method lists all the methods that the XML-RPC server knows how to dispatch'; |
|
107 | -$_xmlrpcs_listMethods_sdoc=array(array('list of method names')); |
|
108 | -function _xmlrpcs_listMethods($server, $m=null) // if called in plain php values mode, second param is missing |
|
105 | +$_xmlrpcs_listMethods_sig = array(array(\PhpXmlRpc\Value::$xmlrpcArray)); |
|
106 | +$_xmlrpcs_listMethods_doc = 'This method lists all the methods that the XML-RPC server knows how to dispatch'; |
|
107 | +$_xmlrpcs_listMethods_sdoc = array(array('list of method names')); |
|
108 | +function _xmlrpcs_listMethods($server, $m = null) // if called in plain php values mode, second param is missing |
|
109 | 109 | { |
110 | 110 | return Server::_xmlrpcs_listMethods($server, $m); |
111 | 111 | } |
112 | 112 | |
113 | -$_xmlrpcs_methodSignature_sig=array(array(\PhpXmlRpc\Value::$xmlrpcArray, $GLOBALS['xmlrpcString'])); |
|
114 | -$_xmlrpcs_methodSignature_doc='Returns an array of known signatures (an array of arrays) for the method name passed. If no signatures are known, returns a none-array (test for type != array to detect missing signature)'; |
|
115 | -$_xmlrpcs_methodSignature_sdoc=array(array('list of known signatures, each sig being an array of xmlrpc type names', 'name of method to be described')); |
|
113 | +$_xmlrpcs_methodSignature_sig = array(array(\PhpXmlRpc\Value::$xmlrpcArray, $GLOBALS['xmlrpcString'])); |
|
114 | +$_xmlrpcs_methodSignature_doc = 'Returns an array of known signatures (an array of arrays) for the method name passed. If no signatures are known, returns a none-array (test for type != array to detect missing signature)'; |
|
115 | +$_xmlrpcs_methodSignature_sdoc = array(array('list of known signatures, each sig being an array of xmlrpc type names', 'name of method to be described')); |
|
116 | 116 | function _xmlrpcs_methodSignature($server, $m) |
117 | 117 | { |
118 | 118 | return Server::_xmlrpcs_methodSignature($server, $m); |
119 | 119 | } |
120 | 120 | |
121 | -$_xmlrpcs_methodHelp_sig=array(array($GLOBALS['xmlrpcString'], $GLOBALS['xmlrpcString'])); |
|
122 | -$_xmlrpcs_methodHelp_doc='Returns help text if defined for the method passed, otherwise returns an empty string'; |
|
123 | -$_xmlrpcs_methodHelp_sdoc=array(array('method description', 'name of the method to be described')); |
|
121 | +$_xmlrpcs_methodHelp_sig = array(array($GLOBALS['xmlrpcString'], $GLOBALS['xmlrpcString'])); |
|
122 | +$_xmlrpcs_methodHelp_doc = 'Returns help text if defined for the method passed, otherwise returns an empty string'; |
|
123 | +$_xmlrpcs_methodHelp_sdoc = array(array('method description', 'name of the method to be described')); |
|
124 | 124 | function _xmlrpcs_methodHelp($server, $m) |
125 | 125 | { |
126 | 126 | return Server::_xmlrpcs_methodHelp($server, $m); |
@@ -41,10 +41,10 @@ discard block |
||
41 | 41 | * @param array $extraOptions |
42 | 42 | * @return array|false |
43 | 43 | */ |
44 | -function wrap_php_function($funcName, $newFuncName='', $extraOptions=array()) |
|
44 | +function wrap_php_function($funcName, $newFuncName = '', $extraOptions = array()) |
|
45 | 45 | { |
46 | 46 | $wrapper = new PhpXmlRpc\Wrapper(); |
47 | - if (!isset($extraOptions['return_source']) || $extraOptions['return_source'] == false) { |
|
47 | + if (!isset($extraOptions['return_source']) || $extraOptions['return_source'] == false) { |
|
48 | 48 | // backwards compat: return string instead of callable |
49 | 49 | $extraOptions['return_source'] = true; |
50 | 50 | $wrapped = $wrapper->wrapPhpFunction($funcName, $newFuncName, $extraOptions); |
@@ -64,17 +64,17 @@ discard block |
||
64 | 64 | * @param array $extraOptions |
65 | 65 | * @return array|false |
66 | 66 | */ |
67 | -function wrap_php_class($className, $extraOptions=array()) |
|
67 | +function wrap_php_class($className, $extraOptions = array()) |
|
68 | 68 | { |
69 | 69 | $wrapper = new PhpXmlRpc\Wrapper(); |
70 | 70 | $fix = false; |
71 | - if (!isset($extraOptions['return_source']) || $extraOptions['return_source'] == false) { |
|
71 | + if (!isset($extraOptions['return_source']) || $extraOptions['return_source'] == false) { |
|
72 | 72 | // backwards compat: return string instead of callable |
73 | 73 | $extraOptions['return_source'] = true; |
74 | 74 | $fix = true; |
75 | 75 | } |
76 | 76 | $wrapped = $wrapper->wrapPhpClass($className, $extraOptions); |
77 | - foreach($wrapped as $name => $value) { |
|
77 | + foreach ($wrapped as $name => $value) { |
|
78 | 78 | if ($fix) { |
79 | 79 | eval($value['source']); |
80 | 80 | } |
@@ -93,7 +93,7 @@ discard block |
||
93 | 93 | * @param string $newFuncName deprecated, use an option in $extraOptions |
94 | 94 | * @return array|callable|false |
95 | 95 | */ |
96 | -function wrap_xmlrpc_method($client, $methodName, $extraOptions=0, $timeout=0, $protocol='', $newFuncName='') |
|
96 | +function wrap_xmlrpc_method($client, $methodName, $extraOptions = 0, $timeout = 0, $protocol = '', $newFuncName = '') |
|
97 | 97 | { |
98 | 98 | if (!is_array($extraOptions)) |
99 | 99 | { |
@@ -108,7 +108,7 @@ discard block |
||
108 | 108 | |
109 | 109 | $wrapper = new PhpXmlRpc\Wrapper(); |
110 | 110 | |
111 | - if (!isset($extraOptions['return_source']) || $extraOptions['return_source'] == false) { |
|
111 | + if (!isset($extraOptions['return_source']) || $extraOptions['return_source'] == false) { |
|
112 | 112 | // backwards compat: return string instead of callable |
113 | 113 | $extraOptions['return_source'] = true; |
114 | 114 | $wrapped = $wrapper->wrapXmlrpcMethod($client, $methodName, $extraOptions); |
@@ -128,7 +128,7 @@ discard block |
||
128 | 128 | * @param array $extraOptions |
129 | 129 | * @return mixed |
130 | 130 | */ |
131 | -function wrap_xmlrpc_server($client, $extraOptions=array()) |
|
131 | +function wrap_xmlrpc_server($client, $extraOptions = array()) |
|
132 | 132 | { |
133 | 133 | $wrapper = new PhpXmlRpc\Wrapper(); |
134 | 134 | return $wrapper->wrapXmlrpcServer($client, $extraOptions); |
@@ -148,7 +148,7 @@ discard block |
||
148 | 148 | $faultResponse = '', $namespace = '\\PhpXmlRpc\\') |
149 | 149 | { |
150 | 150 | $code = "function $xmlrpcFuncName ("; |
151 | - if ($clientCopyMode < 2) { |
|
151 | + if ($clientCopyMode<2) { |
|
152 | 152 | // client copy mode 0 or 1 == partial / full client copy in emitted code |
153 | 153 | $innerCode = build_client_wrapper_code($client, $clientCopyMode, $prefix); |
154 | 154 | $innerCode .= "\$client->setDebug(\$debug);\n"; |
@@ -162,7 +162,7 @@ discard block |
||
162 | 162 | |
163 | 163 | if ($mDesc != '') { |
164 | 164 | // take care that PHP comment is not terminated unwillingly by method description |
165 | - $mDesc = "/**\n* " . str_replace('*/', '* /', $mDesc) . "\n"; |
|
165 | + $mDesc = "/**\n* ".str_replace('*/', '* /', $mDesc)."\n"; |
|
166 | 166 | } else { |
167 | 167 | $mDesc = "/**\nFunction $xmlrpcFuncName\n"; |
168 | 168 | } |
@@ -171,7 +171,7 @@ discard block |
||
171 | 171 | $innerCode .= "\$encoder = new {$namespace}Encoder();\n"; |
172 | 172 | $plist = array(); |
173 | 173 | $pCount = count($mSig); |
174 | - for ($i = 1; $i < $pCount; $i++) { |
|
174 | + for ($i = 1; $i<$pCount; $i++) { |
|
175 | 175 | $plist[] = "\$p$i"; |
176 | 176 | $pType = $mSig[$i]; |
177 | 177 | if ($pType == 'i4' || $pType == 'i8' || $pType == 'int' || $pType == 'boolean' || $pType == 'double' || |
@@ -187,19 +187,19 @@ discard block |
||
187 | 187 | } |
188 | 188 | } |
189 | 189 | $innerCode .= "\$req->addparam(\$p$i);\n"; |
190 | - $mDesc .= '* @param ' . xmlrpc_2_php_type($pType) . " \$p$i\n"; |
|
190 | + $mDesc .= '* @param '.xmlrpc_2_php_type($pType)." \$p$i\n"; |
|
191 | 191 | } |
192 | - if ($clientCopyMode < 2) { |
|
192 | + if ($clientCopyMode<2) { |
|
193 | 193 | $plist[] = '$debug=0'; |
194 | 194 | $mDesc .= "* @param int \$debug when 1 (or 2) will enable debugging of the underlying {$prefix} call (defaults to 0)\n"; |
195 | 195 | } |
196 | 196 | $plist = implode(', ', $plist); |
197 | - $mDesc .= '* @return ' . xmlrpc_2_php_type($mSig[0]) . " (or an {$namespace}Response obj instance if call fails)\n*/\n"; |
|
197 | + $mDesc .= '* @return '.xmlrpc_2_php_type($mSig[0])." (or an {$namespace}Response obj instance if call fails)\n*/\n"; |
|
198 | 198 | |
199 | 199 | $innerCode .= "\$res = \${$this_}client->send(\$req, $timeout, '$protocol');\n"; |
200 | 200 | if ($decodeFault) { |
201 | 201 | if (is_string($faultResponse) && ((strpos($faultResponse, '%faultCode%') !== false) || (strpos($faultResponse, '%faultString%') !== false))) { |
202 | - $respCode = "str_replace(array('%faultCode%', '%faultString%'), array(\$res->faultCode(), \$res->faultString()), '" . str_replace("'", "''", $faultResponse) . "')"; |
|
202 | + $respCode = "str_replace(array('%faultCode%', '%faultString%'), array(\$res->faultCode(), \$res->faultString()), '".str_replace("'", "''", $faultResponse)."')"; |
|
203 | 203 | } else { |
204 | 204 | $respCode = var_export($faultResponse, true); |
205 | 205 | } |
@@ -212,7 +212,7 @@ discard block |
||
212 | 212 | $innerCode .= "if (\$res->faultcode()) return $respCode; else return \$encoder->decode(\$res->value());"; |
213 | 213 | } |
214 | 214 | |
215 | - $code = $code . $plist . ") {\n" . $innerCode . "\n}\n"; |
|
215 | + $code = $code.$plist.") {\n".$innerCode."\n}\n"; |
|
216 | 216 | |
217 | 217 | return array('source' => $code, 'docstring' => $mDesc); |
218 | 218 | } |
@@ -220,10 +220,10 @@ discard block |
||
220 | 220 | /** |
221 | 221 | * @deprecated |
222 | 222 | */ |
223 | -function build_client_wrapper_code($client, $verbatim_client_copy, $prefix='xmlrpc') |
|
223 | +function build_client_wrapper_code($client, $verbatim_client_copy, $prefix = 'xmlrpc') |
|
224 | 224 | { |
225 | 225 | $code = "\$client = new {$prefix}_client('".str_replace("'", "\'", $client->path). |
226 | - "', '" . str_replace("'", "\'", $client->server) . "', $client->port);\n"; |
|
226 | + "', '".str_replace("'", "\'", $client->server)."', $client->port);\n"; |
|
227 | 227 | |
228 | 228 | // copy all client fields to the client that will be generated runtime |
229 | 229 | // (this provides for future expansion or subclassing of client obj) |
@@ -1,6 +1,6 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | |
3 | -include_once __DIR__ . '/WebTestCase.php'; |
|
3 | +include_once __DIR__.'/WebTestCase.php'; |
|
4 | 4 | |
5 | 5 | /** |
6 | 6 | * Tests for php files in the 'demo' directory |
@@ -11,9 +11,9 @@ discard block |
||
11 | 11 | { |
12 | 12 | $this->args = argParser::getArgs(); |
13 | 13 | |
14 | - $this->baseUrl = $this->args['HTTPSERVER'] . str_replace( '/demo/server/server.php', '/tests/index.php', $this->args['HTTPURI'] ); |
|
14 | + $this->baseUrl = $this->args['HTTPSERVER'].str_replace('/demo/server/server.php', '/tests/index.php', $this->args['HTTPURI']); |
|
15 | 15 | |
16 | - $this->coverageScriptUrl = 'http://' . $this->args['HTTPSERVER'] . str_replace( '/demo/server/server.php', '/tests/phpunit_coverage.php', $this->args['HTTPURI'] ); |
|
16 | + $this->coverageScriptUrl = 'http://'.$this->args['HTTPSERVER'].str_replace('/demo/server/server.php', '/tests/phpunit_coverage.php', $this->args['HTTPURI']); |
|
17 | 17 | } |
18 | 18 | |
19 | 19 | public function testAgeSort() |
@@ -1,11 +1,11 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | |
3 | -include_once __DIR__ . '/../lib/xmlrpc.inc'; |
|
4 | -include_once __DIR__ . '/../lib/xmlrpc_wrappers.inc'; |
|
3 | +include_once __DIR__.'/../lib/xmlrpc.inc'; |
|
4 | +include_once __DIR__.'/../lib/xmlrpc_wrappers.inc'; |
|
5 | 5 | |
6 | -include_once __DIR__ . '/parse_args.php'; |
|
6 | +include_once __DIR__.'/parse_args.php'; |
|
7 | 7 | |
8 | -include_once __DIR__ . '/PolyfillTestCase.php'; |
|
8 | +include_once __DIR__.'/PolyfillTestCase.php'; |
|
9 | 9 | |
10 | 10 | use PHPUnit\Extensions\SeleniumCommon\RemoteCoverage; |
11 | 11 | use PHPUnit\Framework\TestResult; |
@@ -42,7 +42,7 @@ discard block |
||
42 | 42 | // (but only if not called from subclass objects / multitests) |
43 | 43 | if (function_exists('debug_backtrace') && strtolower(get_called_class()) == 'localhosttests') { |
44 | 44 | $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); |
45 | - for ($i = 0; $i < count($trace); $i++) { |
|
45 | + for ($i = 0; $i<count($trace); $i++) { |
|
46 | 46 | if (strpos($trace[$i]['function'], 'test') === 0) { |
47 | 47 | self::$failed_tests[$trace[$i]['function']] = true; |
48 | 48 | break; |
@@ -65,7 +65,7 @@ discard block |
||
65 | 65 | */ |
66 | 66 | public function _run($result = NULL) |
67 | 67 | { |
68 | - $this->testId = get_class($this) . '__' . $this->getName(); |
|
68 | + $this->testId = get_class($this).'__'.$this->getName(); |
|
69 | 69 | |
70 | 70 | if ($result === NULL) { |
71 | 71 | $result = $this->createResult(); |
@@ -97,7 +97,7 @@ discard block |
||
97 | 97 | |
98 | 98 | $uri = str_replace('/demo/server/server.php', '/tests/index.php?demo=server/server.php', $this->args['HTTPURI']); |
99 | 99 | $server = explode(':', $this->args['HTTPSERVER']); |
100 | - if (count($server) > 1) { |
|
100 | + if (count($server)>1) { |
|
101 | 101 | $this->client = new xmlrpc_client($uri, $server[0], $server[1]); |
102 | 102 | } else { |
103 | 103 | $this->client = new xmlrpc_client($uri, $this->args['HTTPSERVER']); |
@@ -107,7 +107,7 @@ discard block |
||
107 | 107 | $this->client->request_compression = $this->request_compression; |
108 | 108 | $this->client->accepted_compression = $this->accepted_compression; |
109 | 109 | |
110 | - $this->coverageScriptUrl = 'http://' . $this->args['HTTPSERVER'] . '/' . str_replace('/demo/server/server.php', 'tests/phpunit_coverage.php', $this->args['HTTPURI']); |
|
110 | + $this->coverageScriptUrl = 'http://'.$this->args['HTTPSERVER'].'/'.str_replace('/demo/server/server.php', 'tests/phpunit_coverage.php', $this->args['HTTPURI']); |
|
111 | 111 | |
112 | 112 | if ($this->args['DEBUG'] == 1) |
113 | 113 | ob_start(); |
@@ -144,9 +144,9 @@ discard block |
||
144 | 144 | } |
145 | 145 | $this->validateResponse($r); |
146 | 146 | if (is_array($errorCode)) { |
147 | - $this->assertContains($r->faultCode(), $errorCode, 'Error ' . $r->faultCode() . ' connecting to server: ' . $r->faultString()); |
|
147 | + $this->assertContains($r->faultCode(), $errorCode, 'Error '.$r->faultCode().' connecting to server: '.$r->faultString()); |
|
148 | 148 | } else { |
149 | - $this->assertEquals($errorCode, $r->faultCode(), 'Error ' . $r->faultCode() . ' connecting to server: ' . $r->faultString()); |
|
149 | + $this->assertEquals($errorCode, $r->faultCode(), 'Error '.$r->faultCode().' connecting to server: '.$r->faultString()); |
|
150 | 150 | } |
151 | 151 | if (!$r->faultCode()) { |
152 | 152 | if ($returnResponse) { |
@@ -173,20 +173,20 @@ discard block |
||
173 | 173 | $query = parse_url($this->client->path, PHP_URL_QUERY); |
174 | 174 | parse_str($query, $vars); |
175 | 175 | $query = http_build_query(array_merge($vars, $data)); |
176 | - $this->client->path = parse_url($this->client->path, PHP_URL_PATH) . '?' . $query; |
|
176 | + $this->client->path = parse_url($this->client->path, PHP_URL_PATH).'?'.$query; |
|
177 | 177 | } |
178 | 178 | |
179 | 179 | public function testString() |
180 | 180 | { |
181 | - $sendString = "here are 3 \"entities\": < > & " . |
|
182 | - "and here's a dollar sign: \$pretendvarname and a backslash too: " . chr(92) . |
|
183 | - " - isn't that great? \\\"hackery\\\" at it's best " . |
|
184 | - " also don't want to miss out on \$item[0]. " . |
|
185 | - "The real weird stuff follows: CRLF here" . chr(13) . chr(10) . |
|
186 | - "a simple CR here" . chr(13) . |
|
187 | - "a simple LF here" . chr(10) . |
|
188 | - "and then LFCR" . chr(10) . chr(13) . |
|
189 | - "last but not least weird names: G" . chr(252) . "nter, El" . chr(232) . "ne, and an xml comment closing tag: -->"; |
|
181 | + $sendString = "here are 3 \"entities\": < > & ". |
|
182 | + "and here's a dollar sign: \$pretendvarname and a backslash too: ".chr(92). |
|
183 | + " - isn't that great? \\\"hackery\\\" at it's best ". |
|
184 | + " also don't want to miss out on \$item[0]. ". |
|
185 | + "The real weird stuff follows: CRLF here".chr(13).chr(10). |
|
186 | + "a simple CR here".chr(13). |
|
187 | + "a simple LF here".chr(10). |
|
188 | + "and then LFCR".chr(10).chr(13). |
|
189 | + "last but not least weird names: G".chr(252)."nter, El".chr(232)."ne, and an xml comment closing tag: -->"; |
|
190 | 190 | $m = new xmlrpcmsg('examples.stringecho', array( |
191 | 191 | new xmlrpcval($sendString, 'string'), |
192 | 192 | )); |
@@ -207,7 +207,7 @@ discard block |
||
207 | 207 | public function testLatin1String() |
208 | 208 | { |
209 | 209 | $sendString = |
210 | - "last but not least weird names: G" . chr(252) . "nter, El" . chr(232) . "ne"; |
|
210 | + "last but not least weird names: G".chr(252)."nter, El".chr(232)."ne"; |
|
211 | 211 | $x = '<?xml version="1.0" encoding="ISO-8859-1"?><methodCall><methodName>examples.stringecho</methodName><params><param><value>'. |
212 | 212 | $sendString. |
213 | 213 | '</value></param></params></methodCall>'; |
@@ -315,7 +315,7 @@ discard block |
||
315 | 315 | public function testUtf8Method() |
316 | 316 | { |
317 | 317 | PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding = 'UTF-8'; |
318 | - $m = new xmlrpcmsg("tests.utf8methodname." . 'κόσμε', array( |
|
318 | + $m = new xmlrpcmsg("tests.utf8methodname.".'κόσμε', array( |
|
319 | 319 | new xmlrpcval('hello') |
320 | 320 | )); |
321 | 321 | $v = $this->send($m); |
@@ -337,7 +337,7 @@ discard block |
||
337 | 337 | )); |
338 | 338 | $v = $this->send($m); |
339 | 339 | if ($v) { |
340 | - $this->assertEquals($a + $b, $v->scalarval()); |
|
340 | + $this->assertEquals($a+$b, $v->scalarval()); |
|
341 | 341 | } |
342 | 342 | } |
343 | 343 | |
@@ -349,7 +349,7 @@ discard block |
||
349 | 349 | )); |
350 | 350 | $v = $this->send($m); |
351 | 351 | if ($v) { |
352 | - $this->assertEquals(12 - 23, $v->scalarval()); |
|
352 | + $this->assertEquals(12-23, $v->scalarval()); |
|
353 | 353 | } |
354 | 354 | } |
355 | 355 | |
@@ -383,7 +383,7 @@ discard block |
||
383 | 383 | if ($v) { |
384 | 384 | $sz = $v->arraysize(); |
385 | 385 | $got = ''; |
386 | - for ($i = 0; $i < $sz; $i++) { |
|
386 | + for ($i = 0; $i<$sz; $i++) { |
|
387 | 387 | $b = $v->arraymem($i); |
388 | 388 | if ($b->scalarval()) { |
389 | 389 | $got .= '1'; |
@@ -446,7 +446,7 @@ discard block |
||
446 | 446 | $got = ''; |
447 | 447 | $expected = '37210'; |
448 | 448 | $expect_array = array('ctLeftAngleBrackets', 'ctRightAngleBrackets', 'ctAmpersands', 'ctApostrophes', 'ctQuotes'); |
449 | - foreach($expect_array as $val) { |
|
449 | + foreach ($expect_array as $val) { |
|
450 | 450 | $b = $v->structmem($val); |
451 | 451 | $got .= $b->me['int']; |
452 | 452 | } |
@@ -899,7 +899,7 @@ discard block |
||
899 | 899 | { |
900 | 900 | // make a 'deep client copy' as the original one might have many properties set |
901 | 901 | // also for speed only wrap one method of the whole server |
902 | - $class = wrap_xmlrpc_server($this->client, array('simple_client_copy' => 0, 'method_filter' => '/examples\.getStateName/' )); |
|
902 | + $class = wrap_xmlrpc_server($this->client, array('simple_client_copy' => 0, 'method_filter' => '/examples\.getStateName/')); |
|
903 | 903 | if ($class == '') { |
904 | 904 | $this->fail('Registration of remote server failed'); |
905 | 905 | } else { |
@@ -938,9 +938,9 @@ discard block |
||
938 | 938 | $cookies = array( |
939 | 939 | //'c1' => array(), |
940 | 940 | 'c2' => array('value' => 'c2'), |
941 | - 'c3' => array('value' => 'c3', 'expires' => time() + 60 * 60 * 24 * 30), |
|
942 | - 'c4' => array('value' => 'c4', 'expires' => time() + 60 * 60 * 24 * 30, 'path' => '/'), |
|
943 | - 'c5' => array('value' => 'c5', 'expires' => time() + 60 * 60 * 24 * 30, 'path' => '/', 'domain' => 'localhost'), |
|
941 | + 'c3' => array('value' => 'c3', 'expires' => time()+60 * 60 * 24 * 30), |
|
942 | + 'c4' => array('value' => 'c4', 'expires' => time()+60 * 60 * 24 * 30, 'path' => '/'), |
|
943 | + 'c5' => array('value' => 'c5', 'expires' => time()+60 * 60 * 24 * 30, 'path' => '/', 'domain' => 'localhost'), |
|
944 | 944 | ); |
945 | 945 | $cookiesval = php_xmlrpc_encode($cookies); |
946 | 946 | $m = new xmlrpcmsg('examples.setcookies', array($cookiesval)); |
@@ -988,10 +988,10 @@ discard block |
||
988 | 988 | $m = new xmlrpcmsg('examples.getcookies', array()); |
989 | 989 | foreach ($cookies as $cookie => $val) { |
990 | 990 | $this->client->setCookie($cookie, $val); |
991 | - $cookies[$cookie] = (string)$cookies[$cookie]; |
|
991 | + $cookies[$cookie] = (string) $cookies[$cookie]; |
|
992 | 992 | } |
993 | 993 | $r = $this->client->send($m, $this->timeout, $this->method); |
994 | - $this->assertEquals(0, $r->faultCode(), 'Error ' . $r->faultCode() . ' connecting to server: ' . $r->faultString()); |
|
994 | + $this->assertEquals(0, $r->faultCode(), 'Error '.$r->faultCode().' connecting to server: '.$r->faultString()); |
|
995 | 995 | if (!$r->faultCode()) { |
996 | 996 | $v = $r->value(); |
997 | 997 | $v = php_xmlrpc_decode($v); |
@@ -1,6 +1,6 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | |
3 | -include_once __DIR__ . '/WebTestCase.php'; |
|
3 | +include_once __DIR__.'/WebTestCase.php'; |
|
4 | 4 | |
5 | 5 | /** |
6 | 6 | * Tests for php files in the 'extras' directory |
@@ -12,9 +12,9 @@ discard block |
||
12 | 12 | { |
13 | 13 | $this->args = argParser::getArgs(); |
14 | 14 | |
15 | - $this->baseUrl = $this->args['HTTPSERVER'] . str_replace( '/demo/server/server.php', '/tests/index.php', $this->args['HTTPURI'] ); |
|
15 | + $this->baseUrl = $this->args['HTTPSERVER'].str_replace('/demo/server/server.php', '/tests/index.php', $this->args['HTTPURI']); |
|
16 | 16 | |
17 | - $this->coverageScriptUrl = 'http://' . $this->args['HTTPSERVER'] . str_replace( '/demo/server/server.php', '/tests/phpunit_coverage.php', $this->args['HTTPURI'] ); |
|
17 | + $this->coverageScriptUrl = 'http://'.$this->args['HTTPSERVER'].str_replace('/demo/server/server.php', '/tests/phpunit_coverage.php', $this->args['HTTPURI']); |
|
18 | 18 | } |
19 | 19 | |
20 | 20 | public function testBenchmark() |