From 03efa67f50b2eabfdec6cefaec6bf9bf084af08d Mon Sep 17 00:00:00 2001 From: Russell Smith Date: Fri, 24 Jan 2014 10:32:21 +1100 Subject: [PATCH] MDL-43440 unit testing: Use cmid in unit tests when it should be used. instance is has been used instead of cmid. This works as all id's are 1 in most cases, but not always. accesslib_clear_all_caches_for_unit_testing was updated to clear the $USER->access cache which would fail test when the wrong user's data was used. --- grade/tests/edittree_test.php | 2 +- grade/tests/externallib_test.php | 4 ++-- lib/tests/accesslib_test.php | 10 +++++----- lib/tests/messagelib_test.php | 6 +++--- mod/assign/tests/externallib_test.php | 4 ++-- mod/forum/tests/externallib_test.php | 6 +++--- repository/tests/repository_test.php | 4 ++-- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/grade/tests/edittree_test.php b/grade/tests/edittree_test.php index fab938bfdd8..1f6f65e0fbc 100644 --- a/grade/tests/edittree_test.php +++ b/grade/tests/edittree_test.php @@ -52,7 +52,7 @@ class gradeedittreelib_testcase extends advanced_testcase { $scale = $this->getDataGenerator()->create_scale(); $course = $this->getDataGenerator()->create_course(); $assign = $this->getDataGenerator()->create_module('assign', array('course' => $course->id)); - $modulecontext = context_module::instance($assign->id); + $modulecontext = context_module::instance($assign->cmid); // The generator returns a dummy object, lets get the real assign object. $assign = new assign($modulecontext, false, false); $cm = $assign->get_course_module(); diff --git a/grade/tests/externallib_test.php b/grade/tests/externallib_test.php index a1cbfc5f494..3f6f87bb995 100644 --- a/grade/tests/externallib_test.php +++ b/grade/tests/externallib_test.php @@ -66,7 +66,7 @@ class core_grade_external_testcase extends externallib_advanced_testcase { // Create a teacher and give them capabilities. $coursecontext = context_course::instance($course->id); $roleid = $this->assignUserCapability('moodle/course:viewparticipants', $coursecontext->id, 3); - $modulecontext = context_module::instance($cm->id); + $modulecontext = context_module::instance($cm->cmid); $this->assignUserCapability('mod/assign:grade', $modulecontext->id, $roleid); // Create the teacher's enrolment record. @@ -146,7 +146,7 @@ class core_grade_external_testcase extends externallib_advanced_testcase { $DB->insert_record('gradingform_rubric_levels', $rubriclevel2); // Call the external function. - $cmids = array ($cm->id); + $cmids = array ($cm->cmid); $areaname = 'submissions'; $result = core_grade_external::get_definitions($cmids, $areaname); diff --git a/lib/tests/accesslib_test.php b/lib/tests/accesslib_test.php index 7b1a352a48f..7822fe58cb5 100644 --- a/lib/tests/accesslib_test.php +++ b/lib/tests/accesslib_test.php @@ -74,7 +74,7 @@ class accesslib_testcase extends advanced_testcase { $this->assertNotEmpty($ACCESSLIB_PRIVATE->rolepermissions); $this->assertNotEmpty($ACCESSLIB_PRIVATE->rolepermissions); $this->assertNotEmpty($ACCESSLIB_PRIVATE->accessdatabyuser); - accesslib_clear_all_caches(true); + accesslib_clear_all_caches_for_unit_testing(); $this->assertEmpty($ACCESSLIB_PRIVATE->rolepermissions); $this->assertEmpty($ACCESSLIB_PRIVATE->rolepermissions); $this->assertEmpty($ACCESSLIB_PRIVATE->dirtycontexts); @@ -1837,7 +1837,7 @@ class accesslib_testcase extends advanced_testcase { unassign_capability('moodle/site:accessallgroups', $allroles['teacher'], $frontpagecontext->id, true); unset($rc); - accesslib_clear_all_caches(false); // must be done after assign_capability() + accesslib_clear_all_caches_for_unit_testing(); // Must be done after assign_capability(). // ======= role_assign(), role_unassign(), role_unassign_all() ============== @@ -1854,7 +1854,7 @@ class accesslib_testcase extends advanced_testcase { $this->assertEquals($DB->count_records('role_assignments', array('contextid'=>$context->id)), 0); unset($context); - accesslib_clear_all_caches(false); // just in case + accesslib_clear_all_caches_for_unit_testing(); // Just in case. // ====== has_capability(), get_users_by_capability(), role_switch(), reload_all_capabilities() and friends ======================== @@ -1915,7 +1915,7 @@ class accesslib_testcase extends advanced_testcase { assign_capability('mod/page:view', CAP_PREVENT, $allroles['guest'], $systemcontext, true); - accesslib_clear_all_caches(false); // must be done after assign_capability() + accesslib_clear_all_caches_for_unit_testing(); /// Must be done after assign_capability(). // Extra tests for guests and not-logged-in users because they can not be verified by cross checking // with get_users_by_capability() where they are ignored @@ -2038,7 +2038,7 @@ class accesslib_testcase extends advanced_testcase { unset($permissions); unset($roles); - accesslib_clear_all_caches(false); // must be done after assign_capability() + accesslib_clear_all_caches_for_unit_testing(); // must be done after assign_capability(). // Test time - let's set up some real user, just in case the logic for USER affects the others... $USER = $DB->get_record('user', array('id'=>$testusers[3])); diff --git a/lib/tests/messagelib_test.php b/lib/tests/messagelib_test.php index 5d21b82e055..b6680b5fdb5 100644 --- a/lib/tests/messagelib_test.php +++ b/lib/tests/messagelib_test.php @@ -92,7 +92,7 @@ class messagelib_testcase extends advanced_testcase { // however mod_quiz doesn't have a data generator // Instead we're going to use backup notifications and give and take away the capability at various levels $assign = $this->getDataGenerator()->create_module('assign', array('course'=>$course->id)); - $modulecontext = context_module::instance($assign->id); + $modulecontext = context_module::instance($assign->cmid); // Create and enrol a teacher $teacherrole = $DB->get_record('role', array('shortname'=>'editingteacher'), '*', MUST_EXIST); @@ -120,7 +120,7 @@ class messagelib_testcase extends advanced_testcase { // They should now be able to see the backup message assign_capability('moodle/site:config', CAP_ALLOW, $teacherrole->id, $modulecontext->id, true); accesslib_clear_all_caches_for_unit_testing(); - $modulecontext = context_module::instance($assign->id); + $modulecontext = context_module::instance($assign->cmid); $this->assertTrue(has_capability('moodle/site:config', $modulecontext)); $providers = message_get_providers_for_user($teacher->id); @@ -131,7 +131,7 @@ class messagelib_testcase extends advanced_testcase { // They should not be able to see the backup message assign_capability('moodle/site:config', CAP_PROHIBIT, $teacherrole->id, $coursecontext->id, true); accesslib_clear_all_caches_for_unit_testing(); - $modulecontext = context_module::instance($assign->id); + $modulecontext = context_module::instance($assign->cmid); $this->assertFalse(has_capability('moodle/site:config', $modulecontext)); $providers = message_get_providers_for_user($teacher->id); diff --git a/mod/assign/tests/externallib_test.php b/mod/assign/tests/externallib_test.php index df21515a6c5..7535a4fce2e 100644 --- a/mod/assign/tests/externallib_test.php +++ b/mod/assign/tests/externallib_test.php @@ -66,7 +66,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase { // Create a teacher and give them capabilities. $context = context_course::instance($course->id); $roleid = $this->assignUserCapability('moodle/course:viewparticipants', $context->id, 3); - $context = context_module::instance($assign->id); + $context = context_module::instance($assign->cmid); $this->assignUserCapability('mod/assign:grade', $context->id, $roleid); // Create the teacher's enrolment record. @@ -161,7 +161,7 @@ class mod_assign_external_testcase extends externallib_advanced_testcase { // Create the user and give them capabilities. $context = context_course::instance($course1->id); $roleid = $this->assignUserCapability('moodle/course:view', $context->id); - $context = context_module::instance($assign1->id); + $context = context_module::instance($assign1->cmid); $this->assignUserCapability('mod/assign:view', $context->id, $roleid); // Create the user enrolment record. diff --git a/mod/forum/tests/externallib_test.php b/mod/forum/tests/externallib_test.php index 5d5989e5ce3..dd8d372542f 100644 --- a/mod/forum/tests/externallib_test.php +++ b/mod/forum/tests/externallib_test.php @@ -90,7 +90,7 @@ class mod_forum_external_testcase extends externallib_advanced_testcase { $enrol->enrol_user($instance2, $user->id); // Assign capabilities to view forums for forum 2. - $cm2 = get_coursemodule_from_id('forum', $forum2->id, 0, false, MUST_EXIST); + $cm2 = get_coursemodule_from_id('forum', $forum2->cmid, 0, false, MUST_EXIST); $context2 = context_module::instance($cm2->id); $newrole = create_role('Role 2', 'role2', 'Role 2 description'); $roleid2 = $this->assignUserCapability('mod/forum:viewdiscussion', $context2->id, $newrole); @@ -256,13 +256,13 @@ class mod_forum_external_testcase extends externallib_advanced_testcase { $enrol->enrol_user($instance2, $user1->id); // Assign capabilities to view discussions for forum 2. - $cm = get_coursemodule_from_id('forum', $forum2->id, 0, false, MUST_EXIST); + $cm = get_coursemodule_from_id('forum', $forum2->cmid, 0, false, MUST_EXIST); $context = context_module::instance($cm->id); $newrole = create_role('Role 2', 'role2', 'Role 2 description'); $this->assignUserCapability('mod/forum:viewdiscussion', $context->id, $newrole); // Assign capabilities to view discussions for forum 3. - $cm = get_coursemodule_from_id('forum', $forum3->id, 0, false, MUST_EXIST); + $cm = get_coursemodule_from_id('forum', $forum3->cmid, 0, false, MUST_EXIST); $context = context_module::instance($cm->id); $this->assignUserCapability('mod/forum:viewdiscussion', $context->id, $newrole); diff --git a/repository/tests/repository_test.php b/repository/tests/repository_test.php index 9b4c8ae4ee4..b30f0a4b112 100644 --- a/repository/tests/repository_test.php +++ b/repository/tests/repository_test.php @@ -246,10 +246,10 @@ class repositorylib_testcase extends advanced_testcase { $forumdata = new stdClass(); $forumdata->course = $course1->id; $forumc1 = $this->getDataGenerator()->create_module('forum', $forumdata); - $forumc1context = context_module::instance($forumc1->id); + $forumc1context = context_module::instance($forumc1->cmid); $forumdata->course = $course2->id; $forumc2 = $this->getDataGenerator()->create_module('forum', $forumdata); - $forumc2context = context_module::instance($forumc2->id); + $forumc2context = context_module::instance($forumc2->cmid); $blockdata = new stdClass(); $blockdata->parentcontextid = $course1context->id;