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())); } }