From 911801b4c19f00b81d15c47835f240ac1890ede6 Mon Sep 17 00:00:00 2001 From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de> Date: Thu, 5 Aug 2021 12:13:56 +0200 Subject: [PATCH] fix tests in CI, fixes #42 --- Doxyfile | 1 + lib/classes/StudipAutoloader.php | 2 +- lib/classes/StudipCacheFactory.class.php | 4 +- tests/_data/simpleormap/cronjobs_tasks.php | 75 +++++++++++++++++++ tests/unit/_bootstrap.php | 2 +- tests/unit/lib/VisualTest.php | 2 +- .../unit/lib/classes/CronjobScheduleTest.php | 2 +- tests/unit/lib/classes/CsrfProtectionTest.php | 2 +- 8 files changed, 83 insertions(+), 7 deletions(-) create mode 100644 tests/_data/simpleormap/cronjobs_tasks.php diff --git a/Doxyfile b/Doxyfile index 74106514455..91f426347d8 100644 --- a/Doxyfile +++ b/Doxyfile @@ -780,6 +780,7 @@ RECURSIVE = YES # run. EXCLUDE = vendor \ + composer \ public/plugins_packages \ db \ locale \ diff --git a/lib/classes/StudipAutoloader.php b/lib/classes/StudipAutoloader.php index d7904d16693..985fbd0fcc1 100644 --- a/lib/classes/StudipAutoloader.php +++ b/lib/classes/StudipAutoloader.php @@ -309,7 +309,7 @@ class StudipAutoloader */ private static function sanitizePath($path) { - if (mb_strpos($path, $GLOBALS['STUDIP_BASE_PATH']) === 0) { + if (isset($GLOBALS['STUDIP_BASE_PATH']) && strpos($path, $GLOBALS['STUDIP_BASE_PATH']) === 0) { return ltrim(str_replace($GLOBALS['STUDIP_BASE_PATH'], '', $path), DIRECTORY_SEPARATOR); } return $path; diff --git a/lib/classes/StudipCacheFactory.class.php b/lib/classes/StudipCacheFactory.class.php index ce79383f58a..805aa9d8be8 100644 --- a/lib/classes/StudipCacheFactory.class.php +++ b/lib/classes/StudipCacheFactory.class.php @@ -182,7 +182,7 @@ class StudipCacheFactory */ public static function loadCacheClass() { - $cacheConfig = Config::get()->SYSTEMCACHE; + $cacheConfig = self::getConfig()->SYSTEMCACHE; $cache_class = $cacheConfig['type'] ?: null; @@ -222,7 +222,7 @@ class StudipCacheFactory */ public static function retrieveConstructorArguments() { - $cacheConfig = Config::get()->SYSTEMCACHE; + $cacheConfig = self::getConfig()->SYSTEMCACHE; return $cacheConfig ?: []; } diff --git a/tests/_data/simpleormap/cronjobs_tasks.php b/tests/_data/simpleormap/cronjobs_tasks.php new file mode 100644 index 00000000000..43614b63162 --- /dev/null +++ b/tests/_data/simpleormap/cronjobs_tasks.php @@ -0,0 +1,75 @@ +<?php +$result = [ + 0 => + [ + 'name' => 'task_id', + 'type' => 'char(32)', + 'null' => 'NO', + 'key' => 'PRI', + 'default' => '', + 'extra' => '', + ], + 1 => + [ + 'name' => 'filename', + 'type' => 'varchar(255)', + 'null' => 'NO', + 'key' => '', + 'default' => '', + 'extra' => '', + ], + 2 => + [ + 'name' => 'class', + 'type' => 'varchar(255)', + 'null' => 'NO', + 'key' => '', + 'default' => '', + 'extra' => '', + ], + 3 => + [ + 'name' => 'active', + 'type' => 'tinyint(1) unsigned', + 'null' => 'NO', + 'key' => '', + 'default' => 0, + 'extra' => '', + ], + 4 => + [ + 'name' => 'execution_count', + 'type' => 'bigint(20) unsigned', + 'null' => 'NO', + 'key' => '', + 'default' => 0, + 'extra' => '', + ], + 5 => + [ + 'name' => 'assigned_count', + 'type' => 'int(11) unsigned', + 'null' => 'NO', + 'key' => '', + 'default' => 0, + 'extra' => '', + ], + 6 => + [ + 'name' => 'mkdate', + 'type' => 'int(11) unsigned', + 'null' => 'YES', + 'key' => '', + 'default' => NULL, + 'extra' => '', + ], + 7 => + [ + 'name' => 'chdate', + 'type' => 'int(11) unsigned', + 'null' => 'YES', + 'key' => '', + 'default' => NULL, + 'extra' => '', + ], +]; diff --git a/tests/unit/_bootstrap.php b/tests/unit/_bootstrap.php index 1acb4d42e80..cfa78f6c70b 100644 --- a/tests/unit/_bootstrap.php +++ b/tests/unit/_bootstrap.php @@ -109,7 +109,7 @@ if (!class_exists('StudipTestHelper')) { static function set_up_tables($tables) { // first step, set fake cache - $testconfig = new Config(['cache_class' => 'StudipArrayCache']); + $testconfig = new Config(['SYSTEMCACHE' => ['type' => 'StudipArrayCache']]); Config::set($testconfig); StudipCacheFactory::setConfig($testconfig); diff --git a/tests/unit/lib/VisualTest.php b/tests/unit/lib/VisualTest.php index 264000b7a34..3d2f03a77dc 100644 --- a/tests/unit/lib/VisualTest.php +++ b/tests/unit/lib/VisualTest.php @@ -9,7 +9,6 @@ * the License, or (at your option) any later version. */ -require_once 'config.inc.php'; //$SMILE_SHORT and $SYMBOL_SHORT needed by formatReady require_once 'lib/models/SimpleORMap.class.php'; require_once 'lib/models/OpenGraphURL.class.php'; require_once 'lib/visual.inc.php'; @@ -28,6 +27,7 @@ class VisualFunctionsTest extends \Codeception\Test\Unit Config::set(new Config($config)); $GLOBALS['SMILEY_NO_DB'] = true; + $GLOBALS['SYMBOL_SHORT'] = []; } public function tearDown() diff --git a/tests/unit/lib/classes/CronjobScheduleTest.php b/tests/unit/lib/classes/CronjobScheduleTest.php index 5e05663f9de..e218b7ed980 100644 --- a/tests/unit/lib/classes/CronjobScheduleTest.php +++ b/tests/unit/lib/classes/CronjobScheduleTest.php @@ -18,7 +18,7 @@ class CronjobScheduleTest extends \Codeception\Test\Unit { date_default_timezone_set('Europe/Berlin'); - StudipTestHelper::set_up_tables(['cronjobs_schedules']); + StudipTestHelper::set_up_tables(['cronjobs_schedules', 'cronjobs_tasks']); } function tearDown() diff --git a/tests/unit/lib/classes/CsrfProtectionTest.php b/tests/unit/lib/classes/CsrfProtectionTest.php index 17306fd5487..ce556b89663 100644 --- a/tests/unit/lib/classes/CsrfProtectionTest.php +++ b/tests/unit/lib/classes/CsrfProtectionTest.php @@ -117,8 +117,8 @@ class CSRFRequestTest extends \Codeception\Test\Unit $_SERVER['REQUEST_METHOD'] = 'POST'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'XmlHttpRequest'; unset($_POST['security_token']); + $this->expectException(InvalidSecurityTokenException::class); CSRFProtection::verifyUnsafeRequest(); - $this->assertTrue(true); } function testUnsafeXHRWithToken() -- GitLab