MDL-47647 lib: Fix message unit test failure.
authorAdrian Greeve <adrian@moodle.com>
Mon, 27 Oct 2014 08:35:06 +0000 (16:35 +0800)
committerAdrian Greeve <adrian@moodle.com>
Mon, 27 Oct 2014 08:35:06 +0000 (16:35 +0800)
Messaging unit tests on Windows were failing because
of a comparison between two file paths. Part of the
path would have a forward slash instead of a backslash
and so would fail.

lib/moodlelib.php

index 360116f..b00833d 100644 (file)
@@ -5919,9 +5919,14 @@ function email_to_user($user, $from, $subject, $messagetext, $messagehtml = '',
 
             $attachmentpath = $attachment;
 
+            // Before doing the comparison, make sure that the paths are correct (Windows uses slashes in the other direction).
+            $attachpath = str_replace('\\', '/', $attachmentpath);
+            // Make sure both variables are normalised before comparing.
+            $temppath = str_replace('\\', '/', $CFG->tempdir);
+
             // If the attachment is a full path to a file in the tempdir, use it as is,
             // otherwise assume it is a relative path from the dataroot (for backwards compatibility reasons).
-            if (strpos($attachmentpath, $CFG->tempdir) !== 0) {
+            if (strpos($attachpath, $temppath) !== 0) {
                 $attachmentpath = $CFG->dataroot . '/' . $attachmentpath;
             }