/**
  * @group ZF-6445
  * @dataProvider Zend_XmlRpc_TestProvider::provideGenerators
  */
 public function testMarschalBigIntegerFromApacheXmlRpc(Zend_XmlRpc_Generator_GeneratorAbstract $generator)
 {
     Zend_XmlRpc_Value::setGenerator($generator);
     $bigIntegerValue = (string) (PHP_INT_MAX + 42);
     $bigInteger = new Zend_XmlRpc_Value_BigInteger($bigIntegerValue);
     $bigIntegerXml = '<value><ex:i8 xmlns:ex="http://ws.apache.org/xmlrpc/namespaces/extensions">' . $bigIntegerValue . '</ex:i8></value>';
     $value = Zend_XmlRpc_Value::getXmlRpcValue($bigIntegerXml, Zend_XmlRpc_Value::XML_STRING);
     $this->assertSame($bigIntegerValue, $value->getValue());
     $this->assertEquals(Zend_XmlRpc_Value::XMLRPC_TYPE_I8, $value->getType());
     $this->assertEquals($this->wrapXml($bigIntegerXml), $value->saveXml());
 }
Ejemplo n.º 2
0
 /**
  * @dataProvider Zend_XmlRpc_TestProvider::provideGenerators
  */
 public function testMarshalBase64FromXmlRpc(Zend_XmlRpc_Generator_GeneratorAbstract $generator)
 {
     Zend_XmlRpc_Value::setGenerator($generator);
     $native = 'foo';
     $xml = '<value><base64>' . base64_encode($native) . '</base64></value>';
     $val = Zend_XmlRpc_Value::getXmlRpcValue($xml, Zend_XmlRpc_Value::XML_STRING);
     $this->assertXmlRpcType('base64', $val);
     $this->assertEquals('base64', $val->getType());
     $this->assertSame($native, $val->getValue());
     $this->assertEquals($this->wrapXml($xml), $val->saveXml());
 }
<?php 
/**
 * Zend_XmlRpc_Generator_XmlWriter->saveXml()
 * fix   
 *   $this->_xmlWriter->flush(false)
 * to
 *   $this->_xmlWriter->flush(true);   
 */
// installed framework
set_include_path(realpath('../src/ZendFramework/library'));
// required classes
require_once 'Zend/XmlRpc/Generator/XmlWriter.php';
require_once 'Zend/XmlRpc/Value.php';
// be sure to use the leaky generator
$generator = new Zend_XmlRpc_Generator_XmlWriter();
Zend_XmlRpc_Value::setGenerator($generator);
// test a thousand times
for ($i = 1000; $i > 0; $i--) {
    // make a thousand stars
    $bug = str_pad('', 1000, '*');
    // factorize value
    $bug = Zend_XmlRpc_Value::getXmlRpcValue($bug, Zend_XmlRpc_Value::XMLRPC_TYPE_STRING);
    // save value, this leaks!
    $bug = $bug->saveXml();
    // report sometimes
    if ($i % 100 === 0) {
        $mem = floor(memory_get_usage() / 1024);
        echo "KB {$mem}\n";
    }
    // print once
    if ($i === 1) {