1--TEST-- 2Bug #47273 (Encoding bug in SoapServer->fault) 3--SKIPIF-- 4<?php require_once('skipif.inc'); ?> 5--INI-- 6unicode.script_encoding=ISO-8859-1 7unicode.output_encoding=ISO-8859-1 8--FILE-- 9<?php 10$request1 = <<<EOF 11<?xml version="1.0" encoding="UTF-8"?> 12<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://127.0.0.1:8080/test/" 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:Body><ns1:test1/></SOAP-ENV:Body></SOAP-ENV:Envelope> 13EOF; 14$request2 = <<<EOF 15<?xml version="1.0" encoding="UTF-8"?> 16<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://127.0.0.1:8080/test/" 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:Body><ns1:test2/></SOAP-ENV:Body></SOAP-ENV:Envelope> 17EOF; 18 19class SoapFaultTest 20{ 21 public function test1() { 22 // Test #1 23 return 'Test #1 exception with some special chars: Äßö'; 24 } 25 public function test2() { 26 // Test #2 27 //throw new SoapFault('Server', 'Test #2 exception with some special chars: Äßö'); 28 throw new Exception('Test #2 exception with some special chars: Äßö'); 29 } 30} 31 32$server = new SoapServer(null, array( 33'uri' => "http://127.0.0.1:8080/test/", 34'encoding' => 'ISO-8859-1')); 35$server->setClass('SoapFaultTest'); 36 37try { 38 $server->handle($request1); 39} catch (Exception $e) { 40 $server->fault("Sender", $e->getMessage()); 41} 42try { 43 $server->handle($request2); 44} catch (Exception $e) { 45 $server->fault("Sender", $e->getMessage()); 46} 47?> 48--EXPECT-- 49<?xml version="1.0" encoding="UTF-8"?> 50<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://127.0.0.1:8080/test/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:test1Response><return xsi:type="xsd:string">Test #1 exception with some special chars: ÃÃö</return></ns1:test1Response></SOAP-ENV:Body></SOAP-ENV:Envelope> 51<?xml version="1.0" encoding="UTF-8"?> 52<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>Sender</faultcode><faultstring>Test #2 exception with some special chars: ÃÃö</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope> 53 54