1--TEST-- 2SOAP customized Content-Type, eg. SwA use case 3--SKIPIF-- 4<?php 5 require_once('skipif.inc'); 6 7 if (!file_exists(__DIR__ . "/../../../sapi/cli/tests/php_cli_server.inc")) { 8 echo "skip sapi/cli/tests/php_cli_server.inc required but not found"; 9 } 10?> 11--FILE-- 12<?php 13 14include __DIR__ . "/../../../sapi/cli/tests/php_cli_server.inc"; 15 16$args = substr(PHP_OS, 0, 3) == 'WIN' ? "-d extension_dir=" . ini_get("extension_dir") . " -d extension=php_soap.dll" : ""; 17$code = <<<'PHP' 18/* Receive */ 19$content = trim(file_get_contents("php://input")) . PHP_EOL; 20PHP; 21 22php_cli_server_start($code, false, $args); 23 24$client = new soapclient(NULL, [ 25 'location' => 'http://' . PHP_CLI_SERVER_ADDRESS, 26 'uri' => 'misc-uri', 27 'soap_version' => SOAP_1_2, 28 'user_agent' => 'Vincent JARDIN, test headers', 29 'trace' => true, /* record the headers before sending */ 30 'stream_context' => stream_context_create([ 31 'http' => [ 32 'header' => sprintf("MIME-Version: 1.0\r\n"), 33 'content_type' => sprintf("Multipart/Related") 34 ], 35 ]), 36]); 37 38$client->__soapCall("foo", [ 'arg1' => "XXXbar"]); 39 40$headers = $client->__getLastRequestHeaders(); 41 42if (strpos($headers, 'Multipart/Related; action="misc-uri#foo"') === FALSE) 43 printf("Content-Type NOK %s" . PHP_EOL, $headers); 44else 45 printf("Content-Type OK" . PHP_EOL); 46 47/* 48 * In case of an empty content-type, let's fallback to the default content. 49 */ 50$client2 = new soapclient(NULL, [ 51 'location' => 'http://' . PHP_CLI_SERVER_ADDRESS, 52 'uri' => 'misc-uri', 53 'soap_version' => SOAP_1_2, 54 'user_agent' => 'Vincent JARDIN, test headers', 55 'trace' => true, /* record the headers before sending */ 56 'stream_context' => stream_context_create([ 57 'http' => [ 58 'header' => sprintf("MIME-Version: 1.0\r\n"), 59 'content_type' => sprintf("") 60 ], 61 ]), 62]); 63 64$client2->__soapCall("foo", [ 'arg1' => "XXXbar"]); 65 66$headers = $client2->__getLastRequestHeaders(); 67 68if (strpos($headers, 'Content-Type: application/soap+xml; charset=utf-8; action="misc-uri#foo"') === FALSE) 69 printf("Content-Type Default NOK %s" . PHP_EOL, $headers); 70else 71 printf("Content-Type Default OK" . PHP_EOL); 72?> 73==DONE== 74--EXPECT-- 75Content-Type OK 76Content-Type Default OK 77==DONE== 78