From 174f11c56e1ce36296e49549da357db7022bf25e Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Wed, 27 Sep 2023 07:49:10 +0000 Subject: [PATCH] fixes #3207 Closes #3207 Merge request studip/studip!2174 --- lib/classes/SemType.class.php | 2 +- lib/classes/Seminar.class.php | 4 ++-- lib/language.inc.php | 2 +- lib/models/Course.class.php | 2 +- locale/de/LC_MAILS/new_resource_request.php | 4 ++-- .../_generated/FunctionalTesterActions.php | 2 +- tests/functional/_bootstrap.php | 18 +++++++++++++++--- .../lib/models/resources/BuildingTest.php | 2 +- .../lib/models/resources/LocationTest.php | 2 +- .../resources/ResourceAssignmentTest.php | 4 ++-- .../lib/models/resources/ResourceTest.php | 4 ++-- .../lib/models/resources/RoomTest.php | 4 ++-- .../lib/resources/ResourceManagerTest.php | 2 +- 13 files changed, 32 insertions(+), 20 deletions(-) diff --git a/lib/classes/SemType.class.php b/lib/classes/SemType.class.php index 88244065edf..3d5de5d94fd 100644 --- a/lib/classes/SemType.class.php +++ b/lib/classes/SemType.class.php @@ -108,7 +108,7 @@ class SemType implements ArrayAccess } public function getClass() { - return $GLOBALS['SEM_CLASS'][$this->data['class']] ?: SemClass::getDefaultSemClass(); + return $GLOBALS['SEM_CLASS'][$this->data['class']] ?? SemClass::getDefaultSemClass(); } /*************************************************************************** diff --git a/lib/classes/Seminar.class.php b/lib/classes/Seminar.class.php index 6a5903e1411..b27e2ce5f37 100644 --- a/lib/classes/Seminar.class.php +++ b/lib/classes/Seminar.class.php @@ -307,9 +307,9 @@ class Seminar $cache_key = 'course/undecorated_data/'. $this->id; if ($filter) { - $sub_key = $_SESSION['_language'] .'/'. $this->filterStart .'-'. $this->filterEnd; + $sub_key = ($_SESSION['_language'] ?? 'none') .'/'. $this->filterStart .'-'. $this->filterEnd; } else { - $sub_key = $_SESSION['_language'] .'/unfiltered'; + $sub_key = ($_SESSION['_language'] ?? 'none') .'/unfiltered'; } $data = unserialize($cache->read($cache_key)); diff --git a/lib/language.inc.php b/lib/language.inc.php index 414f80aa00c..acf133b3251 100644 --- a/lib/language.inc.php +++ b/lib/language.inc.php @@ -194,7 +194,7 @@ function setTempLanguage ($uid = FALSE, $temp_language = "") { */ function restoreLanguage() { global $_language_domain; - setLocaleEnv($_SESSION['_language'] ?: Config::get()->DEFAULT_LANGUAGE, $_language_domain); + setLocaleEnv($_SESSION['_language'] ?? Config::get()->DEFAULT_LANGUAGE, $_language_domain); } /** diff --git a/lib/models/Course.class.php b/lib/models/Course.class.php index 4c471ea64e4..90053733201 100644 --- a/lib/models/Course.class.php +++ b/lib/models/Course.class.php @@ -880,7 +880,7 @@ class Course extends SimpleORMap implements Range, PrivacyObject, StudipItem, Fe $this->setEndSemester($this->duration_time == -1 ? null : Semester::findByTimestamp($this->start_time + $this->duration_time)); } if ($this->isOpenEnded()) { - $this->start_time = $this->start_time ?: Semester::findCurrent()->beginn; + $this->start_time = $this->start_time ?: Semester::findCurrent()->beginn ?? time(); $this->duration_time = -1; } else { $this->start_time = $this->getStartSemester()->beginn; diff --git a/locale/de/LC_MAILS/new_resource_request.php b/locale/de/LC_MAILS/new_resource_request.php index bca34421298..eecac3556bb 100644 --- a/locale/de/LC_MAILS/new_resource_request.php +++ b/locale/de/LC_MAILS/new_resource_request.php @@ -2,9 +2,9 @@ in der Raumverwaltung erstellt. -<? if ($requested_room): ?> +<? if (!empty($requested_room)): ?> Angefragter Raum: <?= $requested_room ?> -<? elseif ($requested_resource): ?> +<? elseif (!empty($requested_resource)): ?> Angefragte Ressource: <?= $requested_resource ?> <? endif ?> diff --git a/tests/_support/_generated/FunctionalTesterActions.php b/tests/_support/_generated/FunctionalTesterActions.php index b10769a2af8..1f35faee49f 100644 --- a/tests/_support/_generated/FunctionalTesterActions.php +++ b/tests/_support/_generated/FunctionalTesterActions.php @@ -1,4 +1,4 @@ -<?php //[STAMP] 9862bb9e5ebf65fc43909feeee411c2a +<?php //[STAMP] 80b4e0bf1e286a6a3bd71a25c2b1a786 namespace _generated; // This class was automatically generated by build task diff --git a/tests/functional/_bootstrap.php b/tests/functional/_bootstrap.php index e05f87fed79..49f332495c8 100644 --- a/tests/functional/_bootstrap.php +++ b/tests/functional/_bootstrap.php @@ -1,9 +1,21 @@ <?php +global $STUDIP_BASE_PATH, $ABSOLUTE_URI_STUDIP, $CACHING_ENABLE, $CACHING_FILECACHE_PATH, $SYMBOL_SHORT, $TMP_PATH, $UPLOAD_PATH, $ASSETS_URL; + +// common set-up, usually done by lib/bootstraph.php and +// config/config_local.inc.php when run on web server +if (!isset($STUDIP_BASE_PATH)) { + $STUDIP_BASE_PATH = dirname(__DIR__, 2); + $ABSOLUTE_PATH_STUDIP = $STUDIP_BASE_PATH.'/public/'; + $UPLOAD_PATH = $STUDIP_BASE_PATH.'/data/upload_doc'; + $TMP_PATH = $TMP_PATH ?: '/tmp'; + $ASSETS_URL = ''; +} + // set include path $inc_path = ini_get('include_path'); -$inc_path .= PATH_SEPARATOR . dirname(__FILE__) . '/../..'; -$inc_path .= PATH_SEPARATOR . dirname(__FILE__) . '/../../config'; +$inc_path .= PATH_SEPARATOR . __DIR__ . '/../..'; +$inc_path .= PATH_SEPARATOR . __DIR__ . '/../../config'; ini_set('include_path', $inc_path); require 'lib/classes/StudipAutoloader.php'; @@ -37,7 +49,7 @@ $added_configs = []; StudipFileloader::load( 'config_defaults.inc.php config_local.inc.php', $added_configs, - compact('STUDIP_BASE_PATH', 'ABSOLUTE_URI_STUDIP', 'ASSETS_URL', 'CANONICAL_RELATIVE_PATH_STUDIP'), + compact('STUDIP_BASE_PATH', 'ABSOLUTE_URI_STUDIP', 'ASSETS_URL'), true ); foreach($added_configs as $key => $value) { diff --git a/tests/functional/lib/models/resources/BuildingTest.php b/tests/functional/lib/models/resources/BuildingTest.php index 65761960174..17c58a40411 100644 --- a/tests/functional/lib/models/resources/BuildingTest.php +++ b/tests/functional/lib/models/resources/BuildingTest.php @@ -49,7 +49,7 @@ class BuildingTest extends \Codeception\Test\Unit \DBManager::getInstance()->setConnection('studip', $this->db_handle); // Workaround old-style Stud.IP-API using $GLOBALS['user'] - $this->oldUser = $GLOBALS['user']; + $this->oldUser = $GLOBALS['user'] ?? null; $GLOBALS['user'] = new \Seminar_User( \User::findByUsername('root@studip') ); diff --git a/tests/functional/lib/models/resources/LocationTest.php b/tests/functional/lib/models/resources/LocationTest.php index a8c4261e66a..f283cabd5f6 100644 --- a/tests/functional/lib/models/resources/LocationTest.php +++ b/tests/functional/lib/models/resources/LocationTest.php @@ -50,7 +50,7 @@ class LocationTest extends \Codeception\Test\Unit \DBManager::getInstance()->setConnection('studip', $this->db_handle); // Workaround old-style Stud.IP-API using $GLOBALS['user'] - $this->oldUser = $GLOBALS['user']; + $this->oldUser = $GLOBALS['user'] ?? null; $GLOBALS['user'] = new \Seminar_User( \User::findByUsername('root@studip') ); diff --git a/tests/functional/lib/models/resources/ResourceAssignmentTest.php b/tests/functional/lib/models/resources/ResourceAssignmentTest.php index f2c2fcd9c83..87fbde74bfe 100644 --- a/tests/functional/lib/models/resources/ResourceAssignmentTest.php +++ b/tests/functional/lib/models/resources/ResourceAssignmentTest.php @@ -52,11 +52,11 @@ class ResourceAssignmentTest extends \Codeception\Test\Unit \Config::get()->setValue('LOG_ENABLE', false); // Workaround old-style Stud.IP-API using $GLOBALS['user'] - $this->oldUser = $GLOBALS['user']; + $this->oldUser = $GLOBALS['user'] ?? null; $GLOBALS['user'] = new \Seminar_User( \User::findByUsername('root@studip') ); - $this->oldPerm = $GLOBALS['perm']; + $this->oldPerm = $GLOBALS['perm'] ?? null; $GLOBALS['perm'] = new \Seminar_Perm(); //As a final step we create the SORM objects for our test cases: diff --git a/tests/functional/lib/models/resources/ResourceTest.php b/tests/functional/lib/models/resources/ResourceTest.php index 75a082a0fb6..96003d7d9ff 100644 --- a/tests/functional/lib/models/resources/ResourceTest.php +++ b/tests/functional/lib/models/resources/ResourceTest.php @@ -46,11 +46,11 @@ class ResourceTest extends \Codeception\Test\Unit \DBManager::getInstance()->setConnection('studip', $this->db_handle); // Workaround old-style Stud.IP-API using $GLOBALS['user'] - $this->oldUser = $GLOBALS['user']; + $this->oldUser = $GLOBALS['user'] ?? null; $GLOBALS['user'] = new \Seminar_User( \User::findByUsername('root@studip') ); - $this->oldPerm = $GLOBALS['perm']; + $this->oldPerm = $GLOBALS['perm'] ?? null; $GLOBALS['perm'] = new \Seminar_Perm(); //As a final step we create the SORM objects for our test cases: diff --git a/tests/functional/lib/models/resources/RoomTest.php b/tests/functional/lib/models/resources/RoomTest.php index 82611f20038..8dd30a499b4 100644 --- a/tests/functional/lib/models/resources/RoomTest.php +++ b/tests/functional/lib/models/resources/RoomTest.php @@ -61,11 +61,11 @@ class RoomTest extends \Codeception\Test\Unit \DBManager::getInstance()->setConnection('studip', $this->db_handle); // Workaround old-style Stud.IP-API using $GLOBALS['user'] - $this->oldUser = $GLOBALS['user']; + $this->oldUser = $GLOBALS['user'] ?? null; $GLOBALS['user'] = new \Seminar_User( \User::findByUsername('root@studip') ); - $this->oldPerm = $GLOBALS['perm']; + $this->oldPerm = $GLOBALS['perm'] ?? null; $GLOBALS['perm'] = new \Seminar_Perm(); //As a final step we create the SORM objects for our test cases: diff --git a/tests/functional/lib/resources/ResourceManagerTest.php b/tests/functional/lib/resources/ResourceManagerTest.php index f858e900972..49e585adb84 100644 --- a/tests/functional/lib/resources/ResourceManagerTest.php +++ b/tests/functional/lib/resources/ResourceManagerTest.php @@ -31,7 +31,7 @@ class ResourceManagerTest extends \Codeception\Test\Unit \DBManager::getInstance()->setConnection('studip', $this->db_handle); // Workaround old-style Stud.IP-API using $GLOBALS['user'] - $this->oldUser = $GLOBALS['user']; + $this->oldUser = $GLOBALS['user'] ?? null; $GLOBALS['user'] = new \Seminar_User( \User::findByUsername('root@studip') ); -- GitLab