t3lib_utility_mailTest.php 2.83 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
/***************************************************************
* Copyright notice
*
* (c) 2010 Oliver Klee (typo3-coding@oliverklee.de)
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/

/**
 * Testcase for the t3lib_utility_Mail class.
 *
 * @package TYPO3
 * @subpackage t3lib
 *
 * @author Oliver Klee <typo3-coding@oliverklee.de>
 */
33
class t3lib_utility_mailTest extends tx_phpunit_testcase {
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
	/**
	 * backed-up TYPO3_CONF_VARS SC_OPTIONS
	 *
	 * @var array
	 */
	private $scOptionsBackup = array();

	/**
	 * backed-up T3_VAR callUserFunction
	 *
	 * @var array
	 */
	private $callUserFunctionBackup = array();

	public function setUp() {
		$this->scOptionsBackup = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'];
		$this->callUserFunctionBackup = $GLOBALS['T3_VAR']['callUserFunction'];
	}

	public function tearDown() {
		$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] = $this->scOptionsBackup;
		$GLOBALS['T3_VAR']['callUserFunction'] = $this->callUserFunctionBackup;
	}


	//////////////////////////
	// Tests concerning mail
	//////////////////////////

	/**
	 * @test
	 */
	public function mailCallsHook() {
		$to = 'john@example.com';
		$subject = 'Good news everybody!';
		$messageBody = 'The hooks works!';
		$additionalHeaders = 'Reply-to: jane@example.com';
		$additionalParameters = '-f postmaster@example.com';

		$mockMailer = $this->getMock('mockMailer', array('mail'));
		$mockMailer->expects($this->once())->method('mail')
			->with(
				array(
					'to' => $to,
					'subject' => $subject,
					'messageBody' => $messageBody,
					'additionalHeaders' => $additionalHeaders,
					'additionalParameters' => $additionalParameters,
				),
				FALSE
			);
		$GLOBALS['T3_VAR']['callUserFunction']['mockMailer->mail']
			= array('obj' => $mockMailer, 'method' => 'mail');

		$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']
			['t3lib/utility/class.t3lib_utility_mail.php']
			['substituteMailDelivery'] = array('mockMailer->mail');

		t3lib_utility_Mail::mail(
			$to, $subject, $messageBody, $additionalHeaders,
			$additionalParameters
		);
	}
}
?>