ru_php/ext/soap/tests/bugs/bug31755.phpt

32 lines
1.2 KiB
PHP

--TEST--
Bug #31755 (Cannot create SOAP header in no namespace)
--EXTENSIONS--
soap
--FILE--
<?php
class MySoapClient extends SoapClient {
public function __doRequest($request, $location, $action, $version, $one_way = false, ?string $uriParserClass = null): string {
echo $request, "\n";
return '';
}
}
$client = new MySoapClient(null, array(
'location' => 'http://localhost', 'uri' => 'myNS', 'exceptions' => false
));
try {
new SOAPHeader('', 'foo', 'bar');
} catch (ValueError $exception) {
echo $exception->getMessage() . "\n";
}
$header = new SOAPHeader('namespace', 'foo', 'bar');
$response= $client->__soapCall('function', array(), null, $header);
print $client->__getLastRequest();
?>
--EXPECT--
SoapHeader::__construct(): Argument #1 ($namespace) must not be empty
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="myNS" xmlns:ns2="namespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Header><ns2:foo>bar</ns2:foo></SOAP-ENV:Header><SOAP-ENV:Body><ns1:function/></SOAP-ENV:Body></SOAP-ENV:Envelope>