X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tests%2F3LocalhostTest.php;h=ec3ba17cf657e16dc2ab67d4eea1b0e87928a627;hb=be406d63c36f48190a44117158d92cdbc7f72565;hp=f559fa6f8120de88e6c84d631015f416826dc29a;hpb=2503e40912ae30a40c339127519846c2f66bbd4a;p=plcapi.git diff --git a/tests/3LocalhostTest.php b/tests/3LocalhostTest.php index f559fa6..ec3ba17 100644 --- a/tests/3LocalhostTest.php +++ b/tests/3LocalhostTest.php @@ -533,7 +533,7 @@ And turned it into nylon'; )); $v = $this->send($f, $GLOBALS['xmlrpcerr']['server_error']); $this->client->path = $this->args['URI'] . '?EXCEPTION_HANDLING=1'; - $v = $this->send($f, 1); + $v = $this->send($f, 1); // the error code of the expected exception $this->client->path = $this->args['URI'] . '?EXCEPTION_HANDLING=2'; // depending on whether display_errors is ON or OFF on the server, we will get back a different error here, // as php will generate an http status code of either 200 or 500... @@ -563,6 +563,20 @@ And turned it into nylon'; )); $v = $this->send($f); $this->assertEquals('Michigan', $v->scalarval()); + + // this generates an exception in the function which was wrapped, which is by default wrapped in a known error response + $f = new xmlrpcmsg('tests.getStateName.2', array( + new xmlrpcval(0, 'int'), + )); + $v = $this->send($f, $GLOBALS['xmlrpcerr']['server_error']); + + // check if the generated function dispatch map is fine, by checking if the server registered it + $f = new xmlrpcmsg('system.methodSignature', array( + new xmlrpcval('tests.getStateName.2'), + )); + $v = $this->send($f); + $encoder = new \PhpXmlRpc\Encoder(); + $this->assertEquals(array(array('string', 'int')), $encoder->decode($v)); } public function testServerWrappedFunctionAsSource() @@ -572,6 +586,12 @@ And turned it into nylon'; )); $v = $this->send($f); $this->assertEquals('Michigan', $v->scalarval()); + + // this generates an exception in the function which was wrapped, which is by default wrapped in a known error response + $f = new xmlrpcmsg('tests.getStateName.6', array( + new xmlrpcval(0, 'int'), + )); + $v = $this->send($f, $GLOBALS['xmlrpcerr']['server_error']); } public function testServerWrappedObjectMethods() @@ -698,7 +718,8 @@ And turned it into nylon'; public function testWrappedClass() { // make a 'deep client copy' as the original one might have many properties set - $class = wrap_xmlrpc_server($this->client, array('simple_client_copy' => 0)); + // also for speed only wrap one method of the whole server + $class = wrap_xmlrpc_server($this->client, array('simple_client_copy' => 0, 'method_filter' => '/examples\.getStateName/' )); if ($class == '') { $this->fail('Registration of remote server failed'); } else {