From faea241337ff2f81f5ef69864744e4eb7749977c Mon Sep 17 00:00:00 2001 From: Rajesh Taneja Date: Thu, 7 Jan 2016 13:27:35 +1000 Subject: [PATCH] MDL-52656 unittest: Reset original session while setting user --- lib/phpunit/classes/advanced_testcase.php | 3 +++ lib/phpunit/tests/advanced_test.php | 9 ++++++++- mod/forum/tests/lib_test.php | 10 ---------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/phpunit/classes/advanced_testcase.php b/lib/phpunit/classes/advanced_testcase.php index d09d5cdf357..7ee75ebf374 100644 --- a/lib/phpunit/classes/advanced_testcase.php +++ b/lib/phpunit/classes/advanced_testcase.php @@ -492,6 +492,9 @@ abstract class advanced_testcase extends base_testcase { unset($user->access); unset($user->preference); + // Enusre session is empty, as it may contain caches and user specific info. + \core\session\manager::init_empty_session(); + \core\session\manager::set_user($user); } diff --git a/lib/phpunit/tests/advanced_test.php b/lib/phpunit/tests/advanced_test.php index cc2d8e8b5c4..cf00787a6ab 100644 --- a/lib/phpunit/tests/advanced_test.php +++ b/lib/phpunit/tests/advanced_test.php @@ -72,7 +72,9 @@ class core_phpunit_advanced_testcase extends advanced_testcase { } public function test_set_user() { - global $USER, $DB; + global $USER, $DB, $SESSION; + + $this->resetAfterTest(); $this->assertEquals(0, $USER->id); $this->assertSame($_SESSION['USER'], $USER); @@ -109,6 +111,11 @@ class core_phpunit_advanced_testcase extends advanced_testcase { $this->assertEquals(0, $USER->id); $this->assertSame($_SESSION['USER'], $USER); $this->assertSame($GLOBALS['USER'], $USER); + + // Ensure session is reset after setUser, as it may contain extra info. + $SESSION->sometestvalue = true; + $this->setUser($user); + $this->assertObjectNotHasAttribute('sometestvalue', $SESSION); } public function test_set_admin_user() { diff --git a/mod/forum/tests/lib_test.php b/mod/forum/tests/lib_test.php index ef533412f7e..58cfdf790f3 100644 --- a/mod/forum/tests/lib_test.php +++ b/mod/forum/tests/lib_test.php @@ -2170,7 +2170,6 @@ class mod_forum_lib_testcase extends advanced_testcase { } public function test_print_overview_groups() { - global $SESSION; $this->resetAfterTest(); $course1 = self::getDataGenerator()->create_course(); $group1 = $this->getDataGenerator()->create_group(array('courseid' => $course1->id)); @@ -2220,10 +2219,6 @@ class mod_forum_lib_testcase extends advanced_testcase { $this->assertCount(1, $results[$course1->id]); $this->assertArrayHasKey('forum', $results[$course1->id]); - // As viewer2 (different group to post). - // Temporary hack to workaround for MDL-52656. - $SESSION->currentgroup = null; - $this->setUser($viewer2->id); $results = array(); forum_print_overview($courses, $results); @@ -2290,7 +2285,6 @@ class mod_forum_lib_testcase extends advanced_testcase { * @dataProvider print_overview_timed_provider */ public function test_print_overview_timed_groups($config, $hasresult) { - global $SESSION; $this->resetAfterTest(); $course1 = self::getDataGenerator()->create_course(); $group1 = $this->getDataGenerator()->create_group(array('courseid' => $course1->id)); @@ -2351,10 +2345,6 @@ class mod_forum_lib_testcase extends advanced_testcase { $this->assertCount(0, $results); } - // As viewer2 (different group to post). - // Temporary hack to workaround for MDL-52656. - $SESSION->currentgroup = null; - $this->setUser($viewer2->id); $results = array(); forum_print_overview($courses, $results);