8 class XmlTypeCheckTest
extends PHPUnit\Framework\TestCase {
10 use MediaWikiCoversValidator;
12 const WELL_FORMED_XML =
"<root><child /></root>";
13 const MAL_FORMED_XML =
"<root><child /></error>";
15 const XML_WITH_PIH =
'<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/w/index.php"?><svg><child /></svg>';
21 public function testWellFormedXML() {
23 $this->assertTrue( $testXML->wellFormed );
24 $this->assertEquals(
'root', $testXML->getRootElement() );
30 public function testMalFormedXML() {
32 $this->assertFalse( $testXML->wellFormed );
40 public function testRecursiveEntity() {
42 <?xml
version=
"1.0" encoding=
"utf-8"?>
44 <!ENTITY test
"&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;">
45 <!ENTITY
a "&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;">
46 <!ENTITY b
"&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;">
47 <!ENTITY
c "&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;">
48 <!ENTITY d
"&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;">
49 <!ENTITY
e "&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;">
50 <!ENTITY f
"&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;">
51 <!ENTITY g
"-00000000000000000000000000000000000000000000000000000000000000000000000-">
58 $this->assertFalse( $check->wellFormed );
64 public function testProcessingInstructionHandler() {
71 'processing_instruction_handler' =>
function ()
use ( &$called ) {
76 $this->assertTrue( $called );