-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEmail.php
More file actions
116 lines (96 loc) · 6.21 KB
/
Email.php
File metadata and controls
116 lines (96 loc) · 6.21 KB
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
33
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
declare(strict_types=1);
/*
* This file is part of the QuidPHP package <https://quidphp.com>
* Author: Pierre-Philippe Emond <emondpph@gmail.com>
* License: https://github.com/quidphp/base/blob/master/LICENSE
*/
namespace Quid\Test\Base;
use Quid\Base;
// email
// class for testing Quid\Base\Email
class Email extends Base\Test
{
// trigger
final public static function trigger(array $data):bool
{
// is
assert(Base\Email::is('zwa@test.lz'));
// isActive
assert(Base\Email::isActive());
// arr
assert(Base\Email::arr('zwa@test.lz') === ['name'=>'zwa','host'=>'test.lz']);
assert(Base\Email::arr('zwatest.lz') === null);
// name
assert(Base\Email::name('zwa@test.lz') === 'zwa');
assert(Base\Email::name('zwatest.lz') === null);
// host
assert(Base\Email::host('zwa@test.lz') === 'test.lz');
assert(Base\Email::host('zwatest.lz') === null);
// send
$msg = ['subject'=>'Testé ok ça va ?','cc'=>'wqz@hotmail.com','body'=>'L"ARTICLÉ <b>DE</b> LA MORTÉE ! WHAT@ @!','to'=>['zwa@test.lz'=>'EnFANT PRODIGE'],'from'=>['zac@olstuddd.co'=>'enFANT OUBLIÉ']];
$msg['bcc'] = ['e@as.com','zames@as.ca'=>'Zierre'];
$msg['from'] = ['vames@as.ca'=>'Wierre','e@as.com'];
$msg['to'] = ['e@as.com','james@as.ca'=>'Pierre'];
// sendTest
// sendLoop
// prepareMessage
$msg = ['subject'=>'Test','body'=>'what','cc'=>'zwa@test.lz','replyTo'=>'jam@laz.iu','to'=>'zwa@test.lz','from'=>['zac@olstuddd.coo'=>'whattt']];
assert(count(Base\Email::prepareMessage($msg)) === 15);
assert(Base\Email::prepareMessage($msg)['replyTo'][0] === ['email'=>'jam@laz.iu','name'=>'jam']);
assert(Base\Email::prepareMessage($msg)['from'] === ['email'=>'zac@olstuddd.coo','name'=>'whattt']);
assert(Base\Email::prepareMessage($msg,false)['from'] === ['email'=>'zac@olstuddd.coo','name'=>'whattt']);
$msg['bcc'] = ['e@as.com','james@as.ca'];
$msg['from'] = ['e@as.com','james@as.ca'];
assert(Base\Email::prepareMessage($msg)['from'] === ['email'=>'e@as.com','name'=>'e']);
assert(Base\Arrs::is(Base\Email::prepareMessage($msg)['bcc']));
$msg = ['contentType'=>2,'subject'=>'Test','body'=>'what','cc'=>'zwa@test.lz','replyTo'=>'jam@laz.iu','to'=>'zwa@test.lz','from'=>['zac@olstuddd.coo'=>'whattt']];
assert(Base\Email::prepareMessage($msg)['charset'] === 'UTF-8');
assert(Base\Email::prepareMessage($msg)['contentType'] === 'text/html');
assert(Base\Email::prepareMessage($msg)['contentTypeCharset'] === 'text/html; charset=UTF-8');
assert(Base\Email::prepareMessage($msg)['header']['Content-Type'] === 'text/html; charset=UTF-8');
assert(Base\Email::prepareMessage($msg)['header']['MIME-Version'] === '1.0');
$msg2 = $msg;
$msg2['priority'] = 2;
$msg2['header']['test'] = 'YEAH';
$msg2['header']['test2 '] = 2;
assert(Base\Email::prepareMessage($msg2)['header']['X-Priority'] === 2);
assert(Base\Email::prepareMessage($msg2)['header']['test2'] === 2);
assert(count(Base\Email::prepareMessage($msg2)['header']) === 10);
assert(count(Base\Email::prepareMessage($msg2,false)['header']) === 2);
// prepareTestMessage
// prepareContentTypeCharset
assert(Base\Email::prepareContentTypeCharset()['charset'] === 'UTF-8');
assert(Base\Email::prepareContentTypeCharset('html')['contentTypeCharset'] === 'text/html; charset=UTF-8');
assert(Base\Email::prepareContentTypeCharset('text/html','latin1')['contentTypeCharset'] === 'text/html');
// prepareHeader
assert(Base\Email::prepareHeader([]) === []);
assert(Base\Email::prepareHeader(['cc'=>[['email'=>'zwa@test.lz','name'=>'Pierre'],['email'=>'qweqw2@gmail.com','name'=>'Pierre2']]])['Cc'] === 'Pierre <zwa@test.lz>, Pierre2 <qweqw2@gmail.com>');
assert(Base\Email::prepareHeader(['from'=>[['email'=>'zwa@test.lz','name'=>'Pierre'],['email'=>'qweqw2@gmail.com','name'=>'Pierre2']]])['From'] === 'Pierre <zwa@test.lz>');
assert(Base\Email::prepareHeader(['cc'=>['email'=>'zwa@test.lz','name'=>'Pierre']])['Cc'] === 'Pierre <zwa@test.lz>');
assert(Base\Email::prepareHeader(['from'=>[['email'=>'zwa@test.lz','name'=>'Pierre']]])['From'] === 'Pierre <zwa@test.lz>');
assert(count(Base\Email::prepareHeader(['from'=>[['email'=>'zwa@test.lz','name'=>'Pierre']]],false)) === 0);
// prepareAddress
assert(Base\Email::prepareAddress([['email'=>'test@gmail.com','name'=>'James'],['email'=>'test2@gmail.com','name'=>'James2']]) === 'James <test@gmail.com>, James2 <test2@gmail.com>');
// addresses
assert(count(Base\Email::addresses(['email'=>'james@james.com','name'=>'NAME','test@gmail.com','test2@gmail.com','james@gmail.com'=>'Test',['test4@gmail.com'],['email'=>'test5@gmail.com','name'=>'OK']])) === 6);
assert(count(Base\Email::addresses(['e@as.com','james@as.com'])) === 2);
assert(Base\Email::addresses('test') === []);
assert(Base\Email::addresses(['test@gmail.com']) === [['email'=>'test@gmail.com','name'=>'test']]);
assert(Base\Email::addresses('test@gmail.com') === [['email'=>'test@gmail.com','name'=>'test']]);
assert(Base\Email::addresses(['test@gmail.com'=>'James']) === [['email'=>'test@gmail.com','name'=>'James']]);
assert(Base\Email::addresses(['email'=>'test@gmail.com','name'=>'James']) === [['email'=>'test@gmail.com','name'=>'James']]);
// address
assert(Base\Email::address('test') === null);
assert(Base\Email::address(['test@gmail.com']) === ['email'=>'test@gmail.com','name'=>'test']);
assert(Base\Email::address('test@gmail.com') === ['email'=>'test@gmail.com','name'=>'test']);
assert(Base\Email::address(['test@gmail.com'=>'James']) === ['email'=>'test@gmail.com','name'=>'James']);
assert(Base\Email::address(['email'=>'test@gmail.com','name'=>'James']) === ['email'=>'test@gmail.com','name'=>'James']);
// addressStr
assert(Base\Email::addressStr('zwa@test.lz','Pierre') === 'Pierre <zwa@test.lz>');
// setActive
assert(Base\Email::setActive() === null);
return true;
}
}
?>