From 6f49bcd006035161ede3471e2a6cdd73fab836cb Mon Sep 17 00:00:00 2001 From: Leon Stringer Date: Thu, 22 Dec 2022 15:28:02 +0000 Subject: [PATCH] 32 Fix Use of undefined constant CONTEXT_COHORT Previously deleting a cohort or group the error "Use of undefined constant CONTEXT_COHORT" or "Use of undefined constant CONTEXT_GROUP" would occur. This change also removes the require_once() from the PHPUnit test as this brought these constants into scope causing the test to pass when it should have failed (because of this problem). --- context/cohort/classes/observer.php | 2 ++ .../tests/metadatacontext_cohort_event_test.php | 8 +++++--- context/group/classes/observer.php | 2 ++ .../group/tests/metadatacontext_group_event_test.php | 12 +++++++----- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/context/cohort/classes/observer.php b/context/cohort/classes/observer.php index 323a730..29fef0d 100644 --- a/context/cohort/classes/observer.php +++ b/context/cohort/classes/observer.php @@ -26,6 +26,8 @@ defined('MOODLE_INTERNAL') || die(); +require_once($CFG->dirroot . '/local/metadata/context/cohort/classes/context_handler.php'); + /** * Local metadatacontext_cohort event handler. */ diff --git a/context/cohort/tests/metadatacontext_cohort_event_test.php b/context/cohort/tests/metadatacontext_cohort_event_test.php index ef99b7c..13b0e98 100644 --- a/context/cohort/tests/metadatacontext_cohort_event_test.php +++ b/context/cohort/tests/metadatacontext_cohort_event_test.php @@ -57,12 +57,14 @@ public function setUp(): void { */ public function test_cohortdeleted() { global $DB, $CFG; - require_once($CFG->dirroot . '/local/metadata/context/cohort/classes/context_handler.php'); $this->resetAfterTest(true); + // Don't declare CONTEXT_COHORT as this distorts the test + $contextcohort = 9000; + // Create a custom field of textarea type. - $id1 = $this->generator->create_metadata_field(CONTEXT_COHORT, 'frogdesc', 'Description of frog'); + $id1 = $this->generator->create_metadata_field($contextcohort, 'frogdesc', 'Description of frog'); $this->generator->create_metadata($id1, $this->cohort[0]->id, 'Leopard frog'); $this->generator->create_metadata($id1, $this->cohort[1]->id, 'Bullfrog'); @@ -79,4 +81,4 @@ public function test_cohortdeleted() { $this->assertEquals(1, $DB->count_records('local_metadata')); $this->assertEquals(0, $DB->count_records('local_metadata', ['instanceid' => $this->cohort[0]->id])); } -} \ No newline at end of file +} diff --git a/context/group/classes/observer.php b/context/group/classes/observer.php index 94f2a39..b6129fd 100644 --- a/context/group/classes/observer.php +++ b/context/group/classes/observer.php @@ -26,6 +26,8 @@ defined('MOODLE_INTERNAL') || die(); +require_once($CFG->dirroot . '/local/metadata/context/group/classes/context_handler.php'); + /** * Local metadatacontext_group event handler. */ diff --git a/context/group/tests/metadatacontext_group_event_test.php b/context/group/tests/metadatacontext_group_event_test.php index 4a64463..38fc4df 100644 --- a/context/group/tests/metadatacontext_group_event_test.php +++ b/context/group/tests/metadatacontext_group_event_test.php @@ -55,16 +55,18 @@ public function setUp(): void { } /** - * Performs unit tests for cohort deleted event. + * Performs unit tests for group deleted event. */ - public function test_cohortdeleted() { + public function test_groupdeleted() { global $DB, $CFG; - require_once($CFG->dirroot . '/local/metadata/context/group/classes/context_handler.php'); $this->resetAfterTest(true); + // Don't declare CONTEXT_GROUP as this distorts the test + $contextgroup = 60; + // Create a custom field of textarea type. - $id1 = $this->generator->create_metadata_field(CONTEXT_GROUP, 'frogdesc', 'Description of frog'); + $id1 = $this->generator->create_metadata_field($contextgroup, 'frogdesc', 'Description of frog'); $this->generator->create_metadata($id1, $this->group[0]->id, 'Leopard frog'); $this->generator->create_metadata($id1, $this->group[1]->id, 'Bullfrog'); @@ -81,4 +83,4 @@ public function test_cohortdeleted() { $this->assertEquals(1, $DB->count_records('local_metadata')); $this->assertEquals(0, $DB->count_records('local_metadata', ['instanceid' => $this->group[0]->id])); } -} \ No newline at end of file +}