3 * @copyright Copyright (C) 2010-2022, the Friendica project
5 * @license GNU AGPL version 3 or any later version
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as
9 * published by the Free Software Foundation, either version 3 of the
10 * License, or (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22 namespace Friendica\Test\src\Util;
24 use Friendica\Util\XML;
25 use PHPUnit\Framework\TestCase;
28 * XML utility test class
30 class XmlTest extends TestCase
35 public function testEscapeUnescape()
37 $text = "<tag>I want to break\n this!11!<?hard?></tag>";
38 $xml = XML::escape($text);
39 $retext = XML::unescape($text);
40 self::assertEquals($text, $retext);
44 * escape and put in a document
46 public function testEscapeDocument()
48 $tag = "<tag>I want to break</tag>";
49 $xml = XML::escape($tag);
50 $text = '<text>' . $xml . '</text>';
51 $xml_parser = xml_parser_create();
52 //should be possible to parse it
55 self::assertEquals(1, xml_parse_into_struct($xml_parser, $text, $values, $index));
61 [['tag' => 'TEXT', 'type' => 'complete', 'level' => 1, 'value' => $tag]],
64 xml_parser_free($xml_parser);