From 9d8ada8e005bae372291eae908bb2bf163945140 Mon Sep 17 00:00:00 2001
From: diosmosis <benakamoorthi@fastmail.fm>
Date: Sat, 5 Apr 2014 15:50:55 +0100
Subject: [PATCH] Set TestingEnvironment Mail::send() hook in Fixture.php.

---
 tests/PHPUnit/Fixture.php            |  1 +
 tests/PHPUnit/TestingEnvironment.php | 33 ++++++++++++++++++----------
 2 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/tests/PHPUnit/Fixture.php b/tests/PHPUnit/Fixture.php
index 0fe98c89be..ac0861b871 100644
--- a/tests/PHPUnit/Fixture.php
+++ b/tests/PHPUnit/Fixture.php
@@ -178,6 +178,7 @@ class Fixture extends PHPUnit_Framework_Assert
 
         $this->getTestEnvironment()->save();
         $this->getTestEnvironment()->executeSetupTestEnvHook();
+        Piwik_TestingEnvironment::addSendMailHook();
 
         if ($this->overwriteExisting
             || !$this->isFixtureSetUp()
diff --git a/tests/PHPUnit/TestingEnvironment.php b/tests/PHPUnit/TestingEnvironment.php
index b032c72f04..c72df3297f 100644
--- a/tests/PHPUnit/TestingEnvironment.php
+++ b/tests/PHPUnit/TestingEnvironment.php
@@ -158,8 +158,29 @@ class Piwik_TestingEnvironment
         Piwik::addAction('AssetManager.getJavaScriptFiles', function(&$jsFiles) {
             $jsFiles[] = 'tests/resources/screenshot-override/override.js';
         });
+        self::addSendMailHook();
+        Piwik::addAction('Updater.checkForUpdates', function () {
+            try {
+                @\Piwik\Filesystem::deleteAllCacheOnUpdate();
+            } catch (Exception $ex) {
+                // pass
+            }
+        });
+
+        $testingEnvironment->logVariables();
+        $testingEnvironment->executeSetupTestEnvHook();
+    }
+
+    public static function addSendMailHook()
+    {
+        static $added = false;
+        if ($added) {
+            return;
+        }
+        $added = true;
+
         Piwik::addAction('Test.Mail.send', function($mail) {
-            $outputFile = PIWIK_INCLUDE_PATH . 'tmp/' . Common::getRequestVar('module') . '.' . Common::getRequestVar('action') . '.mail.json';
+            $outputFile = PIWIK_INCLUDE_PATH . '/tmp/' . Common::getRequestVar('module', '') . '.' . Common::getRequestVar('action', '') . '.mail.json';
 
             $outputContent = str_replace("=\n", "", $mail->getBodyText($textOnly = true));
             $outputContent = str_replace("=0A", "\n", $outputContent);
@@ -174,16 +195,6 @@ class Piwik_TestingEnvironment
             
             file_put_contents($outputFile, Common::json_encode($outputContents));
         });
-        Piwik::addAction('Updater.checkForUpdates', function () {
-            try {
-                @\Piwik\Filesystem::deleteAllCacheOnUpdate();
-            } catch (Exception $ex) {
-                // pass
-            }
-        });
-
-        $testingEnvironment->logVariables();
-        $testingEnvironment->executeSetupTestEnvHook();
     }
 
     public function arrayMergeRecursiveDistinct(array $array1, array $array2)
-- 
GitLab