]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Enhanced test
authorPaweł Sroka <srokap@gmail.com>
Tue, 23 Jul 2013 06:28:30 +0000 (08:28 +0200)
committerPaweł Sroka <srokap@gmail.com>
Mon, 4 Nov 2013 02:34:21 +0000 (03:34 +0100)
engine/tests/regression/trac_bugs.php

index e6773c8af6ff67bfad213d5bfa3115ddce8b25c0..ea39253df1bdad356ddcff05d7453fa0ef33bbfc 100644 (file)
@@ -375,12 +375,26 @@ class ElggCoreRegressionBugsTest extends ElggCoreUnitTest {
        }
 
        public function test_ElggXMLElement_does_not_load_external_entities() {
+               $elLast = libxml_disable_entity_loader(false);
+
                $payload = file_get_contents(dirname(dirname(__FILE__)) . '/test_files/xxe/request.xml');
-               $payload = sprintf($payload, 'file://' . realpath(dirname(dirname(__FILE__)) . '/test_files/xxe/external_entity.txt'));
+               $path = realpath(dirname(dirname(__FILE__)) . '/test_files/xxe/external_entity.txt');
+               $path = str_replace('\\', '/', $path);
+               if ($path[0] != '/') {
+                       $path = '/' . $path;
+               }
+               $path = 'file://' . $path;
+               $payload = sprintf($payload, $path);\r
 
                $el = new ElggXMLElement($payload);
                $chidren = $el->getChildren();
                $content = $chidren[0]->getContent();
                $this->assertNoPattern('/secret/', $content);
+
+               //make sure the test is valid
+               $element = new SimpleXMLElement($payload);
+               $this->assertPattern('/secret/', (string)$element->methodName);
+
+               libxml_disable_entity_loader($elLast);
        }
 }