MDL-52930 forum: Fix random test failure caused by passing of time

This commit is contained in:
Andrew Nicols
2016-02-10 12:24:39 +08:00
committed by David Monllao
parent 78ede65849
commit 8d6b7362e2
+8 -5
View File
@@ -2372,18 +2372,21 @@ class mod_forum_lib_testcase extends advanced_testcase {
$user = $this->getDataGenerator()->create_user();
$forumgen = $this->getDataGenerator()->get_plugin_generator('mod_forum');
// Keep track of the start time of the test. Do not use time() after this point to prevent random failures.
$time = time();
$record = new stdClass();
$record->course = $course->id;
$record->userid = $user->id;
$record->forum = $forum->id;
if (isset($discussiondata['timecreated'])) {
$record->timemodified = time() + $discussiondata['timecreated'];
$record->timemodified = $time + $discussiondata['timecreated'];
}
if (isset($discussiondata['timestart'])) {
$record->timestart = time() + $discussiondata['timestart'];
$record->timestart = $time + $discussiondata['timestart'];
}
if (isset($discussiondata['timeend'])) {
$record->timeend = time() + $discussiondata['timeend'];
$record->timeend = $time + $discussiondata['timeend'];
}
if (isset($discussiondata['mailed'])) {
$record->mailed = $discussiondata['mailed'];
@@ -2392,7 +2395,7 @@ class mod_forum_lib_testcase extends advanced_testcase {
$discussion = $forumgen->create_discussion($record);
// Fetch the unmailed posts.
$timenow = time();
$timenow = $time;
$endtime = $timenow - $CFG->maxeditingtime;
$starttime = $endtime - 2 * DAYSECS;
@@ -2406,7 +2409,7 @@ class mod_forum_lib_testcase extends advanced_testcase {
$reply->discussion = $discussion->id;
$reply->parent = $replyto->id;
$reply->created = max($replyto->created, $endtime - 1);
$r = $forumgen->create_post($reply);
$forumgen->create_post($reply);
$unmailed = forum_get_unmailed_posts($starttime, $endtime, $timenow);
$this->assertCount($expectedreplycount, $unmailed);