From a0f8db77bb4b47b4799cf47a704475e2e7e6fbf9 Mon Sep 17 00:00:00 2001
From: Damyon Wiese <damyon@moodle.com>
Date: Fri, 31 Oct 2014 12:52:24 +0800
Subject: [PATCH] MDL-47975 assign: Stop gap fix for random time fails.

---
 mod/assign/tests/locallib_test.php | 29 +++++++++++++++++++----------
 1 file changed, 19 insertions(+), 10 deletions(-)

diff --git a/mod/assign/tests/locallib_test.php b/mod/assign/tests/locallib_test.php
index e2f6ea0c12b..442d11417f4 100644
--- a/mod/assign/tests/locallib_test.php
+++ b/mod/assign/tests/locallib_test.php
@@ -179,9 +179,10 @@ class mod_assign_locallib_testcase extends mod_assign_base_testcase {
         // Setup the assignment.
         $this->create_extra_users();
         $this->setUser($this->editingteachers[0]);
+        $time = time();
         $assign = $this->create_instance(array(
             'assignsubmission_onlinetext_enabled'=>1,
-            'duedate' => time() - 4 * 24 * 60 * 60,
+            'duedate' => $time - 4 * 24 * 60 * 60,
          ));
         $PAGE->set_url(new moodle_url('/mod/assign/view.php', array(
             'id' => $assign->get_course_module()->id,
@@ -192,15 +193,17 @@ class mod_assign_locallib_testcase extends mod_assign_base_testcase {
         $gradingtable = new assign_grading_table($assign, 1, '', 0, true);
         $output = $assign->get_renderer()->render($gradingtable);
         $this->assertContains(get_string('submissionstatus_', 'assign'), $output);
-        $this->assertContains(get_string('overdue', 'assign', format_time(4*24*60*60)), $output);
+        $difftime = time() - $time;
+        $this->assertContains(get_string('overdue', 'assign', format_time(4*24*60*60 + $difftime)), $output);
 
         // Grant an extension that is in the past.
-        $assign->testable_save_user_extension($this->students[0]->id, time() - 2 * 24 * 60 * 60);
+        $assign->testable_save_user_extension($this->students[0]->id, $time - 2 * 24 * 60 * 60);
         $gradingtable = new assign_grading_table($assign, 1, '', 0, true);
         $output = $assign->get_renderer()->render($gradingtable);
         $this->assertContains(get_string('submissionstatus_', 'assign'), $output);
-        $this->assertContains(get_string('userextensiondate', 'assign', userdate(time() - 2*24*60*60)), $output);
-        $this->assertContains(get_string('overdue', 'assign', format_time(2*24*60*60)), $output);
+        $this->assertContains(get_string('userextensiondate', 'assign', userdate($time - 2*24*60*60)), $output);
+        $difftime = time() - $time;
+        $this->assertContains(get_string('overdue', 'assign', format_time(2*24*60*60 + $difftime)), $output);
 
         // Simulate a submission.
         $this->setUser($this->students[0]);
@@ -213,14 +216,17 @@ class mod_assign_locallib_testcase extends mod_assign_base_testcase {
                                          'format'=>FORMAT_MOODLE);
         $plugin = $assign->get_submission_plugin_by_type('onlinetext');
         $plugin->save($submission, $data);
+        $submittedtime = time();
 
         // Verify output.
         $this->setUser($this->editingteachers[0]);
         $gradingtable = new assign_grading_table($assign, 1, '', 0, true);
         $output = $assign->get_renderer()->render($gradingtable);
         $this->assertContains(get_string('submissionstatus_submitted', 'assign'), $output);
-        $this->assertContains(get_string('userextensiondate', 'assign', userdate(time() - 2*24*60*60)), $output);
-        $this->assertContains(get_string('submittedlateshort', 'assign', format_time(2*24*60*60)), $output);
+        $this->assertContains(get_string('userextensiondate', 'assign', userdate($time - 2*24*60*60)), $output);
+
+        $difftime = $submittedtime - $time;
+        $this->assertContains(get_string('submittedlateshort', 'assign', format_time(2*24*60*60 + $difftime)), $output);
     }
 
     /**
@@ -1025,11 +1031,12 @@ class mod_assign_locallib_testcase extends mod_assign_base_testcase {
         $this->create_extra_users();
         // Now verify group assignments.
         $this->setUser($this->editingteachers[0]);
+        $time = time();
         $assign = $this->create_instance(array('teamsubmission'=>1,
                                                'assignsubmission_onlinetext_enabled'=>1,
                                                'submissiondrafts'=>1,
                                                'requireallteammemberssubmit'=>0,
-                                               'duedate' => time() - 2*24*60*60));
+                                               'duedate' => $time - 2*24*60*60));
         $PAGE->set_url(new moodle_url('/mod/assign/view.php', array('id' => $assign->get_course_module()->id)));
 
         $this->setUser($this->extrastudents[0]);
@@ -1046,7 +1053,8 @@ class mod_assign_locallib_testcase extends mod_assign_base_testcase {
         $output = $assign->view_student_summary($this->extrastudents[0], true);
         $this->assertContains(get_string('submitassignment', 'assign'), $output);
         $this->assertContains(get_string('timeremaining', 'assign'), $output);
-        $this->assertContains(get_string('overdue', 'assign', format_time(2*24*60*60)), $output);
+        $difftime = time() - $time;
+        $this->assertContains(get_string('overdue', 'assign', format_time(2*24*60*60 + $difftime)), $output);
 
         $submission = $assign->get_group_submission($this->extrastudents[0]->id, 0, true);
         $submission->status = ASSIGN_SUBMISSION_STATUS_SUBMITTED;
@@ -1063,7 +1071,8 @@ class mod_assign_locallib_testcase extends mod_assign_base_testcase {
 
         // Check that time remaining is not overdue.
         $this->assertContains(get_string('timeremaining', 'assign'), $output);
-        $this->assertContains(get_string('submittedlate', 'assign', format_time(2*24*60*60)), $output);
+        $difftime = time() - $time;
+        $this->assertContains(get_string('submittedlate', 'assign', format_time(2*24*60*60 + $difftime)), $output);
 
         $submission = $assign->get_group_submission($this->extrastudents[self::GROUP_COUNT]->id, 0, true);
         $submission->status = ASSIGN_SUBMISSION_STATUS_SUBMITTED;