/** * @group ZF-5597 */ public function testServerAcceptsZendConfigObject() { $options = array('soap_version' => SOAP_1_1, 'actor' => 'http://framework.zend.com/Zend_Soap_ServerTest.php', 'classmap' => array('TestData1' => 'Zend_Soap_Server_TestData1', 'TestData2' => 'Zend_Soap_Server_TestData2'), 'encoding' => 'ISO-8859-1', 'uri' => 'http://framework.zend.com/Zend_Soap_ServerTest.php'); $config = new Zend_Config($options); $server = new Zend_Soap_Server(); $server->setOptions($config); $this->assertEquals($options, $server->getOptions()); }
<?php // Define path to application directory defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application')); // Define application environment defined('APPLICATION_ENV') || define('APPLICATION_ENV', getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'); // Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array(realpath(APPLICATION_PATH . '/../library'), get_include_path()))); /** Zend_Application */ require_once 'Zend/Application.php'; // Create application, bootstrap, and run $application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini'); $application->getBootstrap()->bootstrap('db'); header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST, OPTIONS'); header('Access-Control-Allow-Headers: Content-Type, Authorization, Accept'); if (isset($_GET['wsdl'])) { $autodiscover = new Zend_Soap_AutoDiscover(); $autodiscover->setClass('Application_Model_WebServices'); $autodiscover->setBindingStyle(array('style' => 'rpc')); $autodiscover->handle(); } else { ini_set("soap.wsdl_cache_enabled", "0"); $server = new Zend_Soap_Server(); $server->setOptions(array('soap_version' => SOAP_1_2, 'actor' => 'http://localhost/AgendaTelefonicaPHPSOAP/public/webservice.php', 'encoding' => 'UTF-8')); $server->setWsdl('http://localhost/AgendaTelefonicaPHPSOAP/public/webservice.php?wsdl'); $server->setClass('Application_Model_WebServices'); $server->handle(); }
public function testHandle() { $server = new Zend_Soap_Server(); $server->setOptions(array('location'=>'test://', 'uri'=>'http://framework.zend.com')); $server->setClass('Zend_Soap_Server_TestClass'); $localClient = new Zend_Soap_Server_TestLocalSoapClient($server, null, array('location'=>'test://', 'uri'=>'http://framework.zend.com')); // Local SOAP client call automatically invokes handle method of the provided SOAP server $this->assertEquals('Hello World!', $localClient->testFunc2('World')); $request = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL . '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" ' . 'xmlns:ns1="http://framework.zend.com" ' . '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:testFunc2>' . '<param0 xsi:type="xsd:string">World</param0>' . '</ns1:testFunc2>' . '</SOAP-ENV:Body>' . '</SOAP-ENV:Envelope>' . PHP_EOL; $expectedResponse = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL . '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" ' . 'xmlns:ns1="http://framework.zend.com" ' . '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:testFunc2Response>' . '<return xsi:type="xsd:string">Hello World!</return>' . '</ns1:testFunc2Response>' . '</SOAP-ENV:Body>' . '</SOAP-ENV:Envelope>' . PHP_EOL; $server1 = new Zend_Soap_Server(); $server1->setOptions(array('location'=>'test://', 'uri'=>'http://framework.zend.com')); $server1->setClass('Zend_Soap_Server_TestClass'); $server1->setReturnResponse(true); $this->assertEquals($expectedResponse, $server1->handle($request)); }
/** * @runInSeparateProcess */ public function testShouldThrowExceptionIfHandledRequestContainsDoctype() { $server = new Zend_Soap_Server(); $server->setOptions(array('location' => 'test://', 'uri' => 'http://framework.zend.com')); $server->setReturnResponse(true); $server->setClass('Zend_Soap_TestAsset_ServerTestClass'); $request = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . '<!DOCTYPE foo>' . "\n" . '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" ' . 'xmlns:ns1="http://framework.zend.com" ' . '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:testFunc2>' . '<param0 xsi:type="xsd:string">World</param0>' . '</ns1:testFunc2>' . '</SOAP-ENV:Body>' . '</SOAP-ENV:Envelope>' . "\n"; $response = $server->handle($request); $this->assertContains('Invalid XML', $response->getMessage()); }