Ver Fonte

[Serializer] fixed XmlEncoder for single char tags

Fabien Potencier há 14 anos atrás
pai
commit
411a382d80

+ 1 - 1
src/Symfony/Component/Serializer/Encoder/XmlEncoder.php

@@ -296,6 +296,6 @@ class XmlEncoder extends AbstractEncoder
     {
     {
         return $name &&
         return $name &&
             false === strpos($name, ' ') &&
             false === strpos($name, ' ') &&
-            preg_match('#^[\pL_][\pL0-9._-]+$#ui', $name);
+            preg_match('#^[\pL_][\pL0-9._-]*$#ui', $name);
     }
     }
 }
 }

+ 3 - 1
tests/Symfony/Tests/Component/Serializer/Encoder/XmlEncoderTest.php

@@ -66,7 +66,8 @@ class XmlEncoderTest extends \PHPUnit_Framework_TestCase
                 '@Type' => 'test'
                 '@Type' => 'test'
             ),
             ),
             'föo_bär' => '',
             'föo_bär' => '',
-            "Bar" => array(1,2,3)
+            "Bar" => array(1,2,3),
+            'a' => 'b',
         );
         );
         $expected = '<?xml version="1.0"?>'."\n".
         $expected = '<?xml version="1.0"?>'."\n".
             '<response>'.
             '<response>'.
@@ -76,6 +77,7 @@ class XmlEncoderTest extends \PHPUnit_Framework_TestCase
             '<Bar>1</Bar>'.
             '<Bar>1</Bar>'.
             '<Bar>2</Bar>'.
             '<Bar>2</Bar>'.
             '<Bar>3</Bar>'.
             '<Bar>3</Bar>'.
+            '<a><![CDATA[b]]></a>'.
             '</response>'."\n";
             '</response>'."\n";
         $this->assertEquals($expected, $this->encoder->encode($obj, 'xml'));
         $this->assertEquals($expected, $this->encoder->encode($obj, 'xml'));
     }
     }