openElement('element');
$generator->closeElement('element');
$this->assertXml('', $generator);
}
/**
* @dataProvider Zend_XmlRpc_TestProvider::provideGenerators
*/
public function testCreatingSingleElementWithValue(Zend_XmlRpc_Generator_GeneratorAbstract $generator)
{
$generator->openElement('element', 'value');
$generator->closeElement('element');
$this->assertXml('value', $generator);
}
/**
* @dataProvider Zend_XmlRpc_TestProvider::provideGenerators
*/
public function testCreatingComplexXmlDocument(Zend_XmlRpc_Generator_GeneratorAbstract $generator)
{
$generator->openElement('root');
$generator->openElement('children');
$generator->openElement('child', 'child1')->closeElement('child');
$generator->openElement('child', 'child2')->closeElement('child');
$generator->closeElement('children');
$generator->closeElement('root');
$this->assertXml(
'child1child2',
$generator
);
}
/**
* @dataProvider Zend_XmlRpc_TestProvider::provideGenerators
*/
public function testFlushingGeneratorFlushesEverything(Zend_XmlRpc_Generator_GeneratorAbstract $generator)
{
$generator->openElement('test')->closeElement('test');
$this->assertXml('', $generator);
$this->assertContains('', $generator->flush());
$this->assertSame('', (string)$generator);
}
/**
* @dataProvider Zend_XmlRpc_TestProvider::provideGenerators
*/
public function testSpecialCharsAreEncoded(Zend_XmlRpc_Generator_GeneratorAbstract $generator)
{
$generator->openElement('element', '<>&"\'€')->closeElement('element');
$variant1 = '<>&"\'€';
$variant2 = '<>&"\'€';
try {
$this->assertXml($variant1, $generator);
} catch (PHPUnit_Framework_ExpectationFailedException $e) {
$this->assertXml($variant2, $generator);
}
}
/**
* @dataProvider Zend_XmlRpc_TestProvider::provideGeneratorsWithAlternateEncodings
*/
public function testDifferentEncodings(Zend_XmlRpc_Generator_GeneratorAbstract $generator)
{
$generator->openElement('element', '€')->closeElement('element');
$this->assertXml('€', $generator);
}
/**
* @dataProvider Zend_XmlRpc_TestProvider::provideGenerators
*/
public function testFluentInterfacesProvided(Zend_XmlRpc_Generator_GeneratorAbstract $generator)
{
$this->assertSame($generator, $generator->openElement('foo'));
$this->assertSame($generator, $generator->closeElement('foo'));
}
public function assertXml($expected, $actual)
{
$expected = trim($expected);
$this->assertSame($expected, trim($actual));
$xmlDecl = 'getEncoding() . '"?>' . "\n";
$this->assertSame($xmlDecl . $expected, trim($actual->saveXml()));
}
}