Exemplo n.º 1
0
    /**
     * This particular xml body caused the parser to go into an infinite loop.
     * Need to know why.
     */
    function testDeserialize()
    {
        $body = '<?xml version="1.0"?>
<d:propertyupdate xmlns:d="DAV:" xmlns:s="http://sabredav.org/NS/test">
  <d:set><d:prop></d:prop></d:set>
  <d:set><d:prop></d:prop></d:set>
</d:propertyupdate>';
        $reader = new Reader();
        $reader->elementMap = ['{DAV:}set' => 'Sabre\\Xml\\Element\\KeyValue'];
        $reader->xml($body);
        $output = $reader->parse();
        $this->assertEquals(['name' => '{DAV:}propertyupdate', 'value' => [['name' => '{DAV:}set', 'value' => ['{DAV:}prop' => null], 'attributes' => []], ['name' => '{DAV:}set', 'value' => ['{DAV:}prop' => null], 'attributes' => []]], 'attributes' => []], $output);
    }
Exemplo n.º 2
0
    /**
     * @depends testMappedElement
     */
    function testParseInnerTree()
    {
        $input = <<<BLA
<?xml version="1.0"?>
<root xmlns="http://sabredav.org/ns">
  <elem1>
     <elem1 />
  </elem1>
</root>
BLA;
        $reader = new Reader();
        $reader->elementMap = ['{http://sabredav.org/ns}elem1' => function (Reader $reader) {
            $innerTree = $reader->parseInnerTree(['{http://sabredav.org/ns}elem1' => function (Reader $reader) {
                $reader->next();
                return "foobar";
            }]);
            return $innerTree;
        }];
        $reader->xml($input);
        $output = $reader->parse();
        $expected = ['name' => '{http://sabredav.org/ns}root', 'value' => [['name' => '{http://sabredav.org/ns}elem1', 'value' => [['name' => '{http://sabredav.org/ns}elem1', 'value' => 'foobar', 'attributes' => []]], 'attributes' => []]], 'attributes' => []];
        $this->assertEquals($expected, $output);
    }
Exemplo n.º 3
0
    /**
     * Test was added for Issue #10.
     *
     * @expectedException Sabre\XML\LibXMLException
     */
    function testBrokenXML()
    {
        $input = <<<BLA
<test>
<hello>
</hello>
</sffsdf>
BLA;
        $reader = new Reader();
        $reader->xml($input);
        $reader->parse();
    }