summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2015-12-18 09:17:53 +0100
committerThomas Müller <thomas.mueller@tmit.eu>2015-12-18 09:17:53 +0100
commit1456e910adc072cc27c06623394d334dd33ad0f6 (patch)
treea500e9b345943d771f149443d1e3277faf5e4371
parent2622116b57b7b3ba347d2e819e4f0535577e4914 (diff)
parentb3c8e9ca3218fd8853e8302db8d66be953b7f0f3 (diff)
downloadnextcloud-server-1456e910adc072cc27c06623394d334dd33ad0f6.tar.gz
nextcloud-server-1456e910adc072cc27c06623394d334dd33ad0f6.zip
Merge pull request #21269 from owncloud/we-shall-cleanup-xml-parser-errors
Assert that there are no xml error left
-rw-r--r--lib/private/app/infoparser.php1
-rw-r--r--lib/private/ocsclient.php1
-rw-r--r--lib/private/updater.php2
-rw-r--r--tests/lib/app/dependencyanalyzer.php3
-rw-r--r--tests/lib/app/infoparser.php3
-rw-r--r--tests/lib/app/manager.php3
-rw-r--r--tests/lib/testcase.php16
7 files changed, 22 insertions, 7 deletions
diff --git a/lib/private/app/infoparser.php b/lib/private/app/infoparser.php
index 22f705884bc..a84163612e8 100644
--- a/lib/private/app/infoparser.php
+++ b/lib/private/app/infoparser.php
@@ -59,6 +59,7 @@ class InfoParser {
$xml = simplexml_load_file($file);
libxml_disable_entity_loader($loadEntities);
if ($xml == false) {
+ libxml_clear_errors();
return null;
}
$array = $this->xmlToArray($xml);
diff --git a/lib/private/ocsclient.php b/lib/private/ocsclient.php
index e2973f82605..81c9abee058 100644
--- a/lib/private/ocsclient.php
+++ b/lib/private/ocsclient.php
@@ -97,6 +97,7 @@ class OCSClient {
libxml_disable_entity_loader($loadEntities);
if($data === false) {
+ libxml_clear_errors();
$this->logger->error(
sprintf('Could not get %s, content was no valid XML', $action),
[
diff --git a/lib/private/updater.php b/lib/private/updater.php
index 366ad2555a8..d5598d339d3 100644
--- a/lib/private/updater.php
+++ b/lib/private/updater.php
@@ -177,6 +177,8 @@ class Updater extends BasicEmitter {
$tmp['versionstring'] = (string)$data->versionstring;
$tmp['url'] = (string)$data->url;
$tmp['web'] = (string)$data->web;
+ } else {
+ libxml_clear_errors();
}
} else {
$data = [];
diff --git a/tests/lib/app/dependencyanalyzer.php b/tests/lib/app/dependencyanalyzer.php
index 58f1c0a7a99..fecba518856 100644
--- a/tests/lib/app/dependencyanalyzer.php
+++ b/tests/lib/app/dependencyanalyzer.php
@@ -12,8 +12,9 @@ namespace Test\App;
use OC;
use OC\App\Platform;
use OCP\IL10N;
+use Test\TestCase;
-class DependencyAnalyzer extends \PHPUnit_Framework_TestCase {
+class DependencyAnalyzer extends TestCase {
/** @var Platform */
private $platformMock;
diff --git a/tests/lib/app/infoparser.php b/tests/lib/app/infoparser.php
index fb4ffe8af94..1e5257abec3 100644
--- a/tests/lib/app/infoparser.php
+++ b/tests/lib/app/infoparser.php
@@ -10,8 +10,9 @@
namespace Test\App;
use OC;
+use Test\TestCase;
-class InfoParser extends \PHPUnit_Framework_TestCase {
+class InfoParser extends TestCase {
/**
* @var \OC\App\InfoParser
diff --git a/tests/lib/app/manager.php b/tests/lib/app/manager.php
index 38358fd61cf..a3e55c6b890 100644
--- a/tests/lib/app/manager.php
+++ b/tests/lib/app/manager.php
@@ -11,8 +11,9 @@ namespace Test\App;
use OC\Group\Group;
use OC\User\User;
+use Test\TestCase;
-class Manager extends \PHPUnit_Framework_TestCase {
+class Manager extends TestCase {
/**
* @return \OCP\IAppConfig | \PHPUnit_Framework_MockObject_MockObject
*/
diff --git a/tests/lib/testcase.php b/tests/lib/testcase.php
index 5d88fa08a6d..1ee0c85b98a 100644
--- a/tests/lib/testcase.php
+++ b/tests/lib/testcase.php
@@ -92,6 +92,12 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase {
throw $hookExceptions[0];
}
+ // fail hard if xml errors have not been cleaned up
+ $errors = libxml_get_errors();
+ libxml_clear_errors();
+ $this->assertEquals([], $errors);
+
+ // tearDown the traits
$traits = $this->getTestTraits();
foreach ($traits as $trait) {
$methodName = 'tearDown' . basename(str_replace('\\', '/', $trait));
@@ -150,11 +156,13 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase {
public static function tearDownAfterClass() {
$dataDir = \OC::$server->getConfig()->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data-autotest');
- $queryBuilder = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+ if (\OC::$server->getDatabaseConnection()) {
+ $queryBuilder = \OC::$server->getDatabaseConnection()->getQueryBuilder();
- self::tearDownAfterClassCleanShares($queryBuilder);
- self::tearDownAfterClassCleanStorages($queryBuilder);
- self::tearDownAfterClassCleanFileCache($queryBuilder);
+ self::tearDownAfterClassCleanShares($queryBuilder);
+ self::tearDownAfterClassCleanStorages($queryBuilder);
+ self::tearDownAfterClassCleanFileCache($queryBuilder);
+ }
self::tearDownAfterClassCleanStrayDataFiles($dataDir);
self::tearDownAfterClassCleanStrayHooks();
self::tearDownAfterClassCleanStrayLocks();