SIGN IN SIGN UP
laravel / framework UNCLAIMED

Laravel is a web application framework with expressive, elegant syntax.

0 0 0 PHP
<?php
namespace Illuminate\Tests\Notifications;
use Illuminate\Contracts\Mail\Attachable;
use Illuminate\Mail\Attachment;
2017-09-12 18:17:30 -03:00
use Illuminate\Notifications\Messages\MailMessage;
use PHPUnit\Framework\TestCase;
2018-01-05 16:26:15 +01:00
class NotificationMailMessageTest extends TestCase
{
public function testTemplate()
{
$message = new MailMessage;
$this->assertSame('notifications::email', $message->markdown);
$message->template('notifications::foo');
$this->assertSame('notifications::foo', $message->markdown);
}
2020-08-01 09:31:41 -05:00
2020-08-11 15:23:45 +02:00
public function testHtmlAndPlainView()
{
$message = new MailMessage;
$this->assertNull($message->view);
$this->assertSame([], $message->viewData);
$message->view(['notifications::foo', 'notifications::bar'], [
'foo' => 'bar',
]);
$this->assertSame('notifications::foo', $message->view[0]);
$this->assertSame('notifications::bar', $message->view[1]);
$this->assertSame(['foo' => 'bar'], $message->viewData);
}
public function testHtmlView()
{
$message = new MailMessage;
2020-08-11 15:23:45 +02:00
$this->assertNull($message->view);
$this->assertSame([], $message->viewData);
$message->view('notifications::foo', [
'foo' => 'bar',
]);
$this->assertSame('notifications::foo', $message->view);
$this->assertSame(['foo' => 'bar'], $message->viewData);
}
public function testPlainView()
{
$message = new MailMessage;
2020-08-11 15:23:45 +02:00
$this->assertNull($message->view);
$this->assertSame([], $message->viewData);
2020-08-11 15:23:45 +02:00
$message->view([null, 'notifications::foo'], [
'foo' => 'bar',
]);
2020-08-11 15:23:45 +02:00
$this->assertSame('notifications::foo', $message->view[1]);
$this->assertSame(['foo' => 'bar'], $message->viewData);
}
public function testCcIsSetCorrectly()
{
$message = new MailMessage;
$message->cc('test@example.com');
$this->assertSame([['test@example.com', null]], $message->cc);
$message = new MailMessage;
$message->cc('test@example.com')
->cc('test@example.com', 'Test');
$this->assertSame([['test@example.com', null], ['test@example.com', 'Test']], $message->cc);
2018-07-31 19:40:52 +08:00
$message = new MailMessage;
$message->cc(['test@example.com', 'Test' => 'test@example.com']);
$this->assertSame([['test@example.com', null], ['test@example.com', 'Test']], $message->cc);
$message = new MailMessage;
$message->cc('test@example.com', 'Test')
->cc(['test@example.com', 'test2@example.com']);
$this->assertSame([
['test@example.com', 'Test'],
['test@example.com', null],
['test2@example.com', null],
], $message->cc);
}
public function testBccIsSetCorrectly()
{
$message = new MailMessage;
$message->bcc('test@example.com');
$this->assertSame([['test@example.com', null]], $message->bcc);
$message = new MailMessage;
$message->bcc('test@example.com')
->bcc('test@example.com', 'Test');
$this->assertSame([['test@example.com', null], ['test@example.com', 'Test']], $message->bcc);
2018-07-31 19:40:52 +08:00
$message = new MailMessage;
$message->bcc(['test@example.com', 'Test' => 'test@example.com']);
$this->assertSame([['test@example.com', null], ['test@example.com', 'Test']], $message->bcc);
$message = new MailMessage;
$message->bcc('test@example.com', 'Test')
->bcc(['test@example.com', 'test2@example.com']);
$this->assertSame([
['test@example.com', 'Test'],
['test@example.com', null],
['test2@example.com', null],
], $message->bcc);
}
public function testReplyToIsSetCorrectly()
{
$message = new MailMessage;
$message->replyTo('test@example.com');
$this->assertSame([['test@example.com', null]], $message->replyTo);
$message = new MailMessage;
$message->replyTo('test@example.com')
->replyTo('test@example.com', 'Test');
$this->assertSame([['test@example.com', null], ['test@example.com', 'Test']], $message->replyTo);
2018-07-31 19:40:52 +08:00
$message = new MailMessage;
$message->replyTo(['test@example.com', 'Test' => 'test@example.com']);
$this->assertSame([['test@example.com', null], ['test@example.com', 'Test']], $message->replyTo);
$message = new MailMessage;
$message->replyTo('test@example.com', 'Test')
->replyTo(['test@example.com', 'test2@example.com']);
$this->assertSame([
['test@example.com', 'Test'],
['test@example.com', null],
['test2@example.com', null],
], $message->replyTo);
}
public function testMetadataIsSetCorrectly()
{
$message = new MailMessage;
$message->metadata('origin', 'test-suite');
$message->metadata('user_id', 1);
$this->assertArrayHasKey('origin', $message->metadata);
$this->assertSame('test-suite', $message->metadata['origin']);
$this->assertArrayHasKey('user_id', $message->metadata);
$this->assertSame(1, $message->metadata['user_id']);
}
public function testTagIsSetCorrectly()
{
$message = new MailMessage;
$message->tag('test');
$this->assertContains('test', $message->tags);
}
public function testCallbackIsSetCorrectly()
{
$callback = function () {
//
};
$message = new MailMessage;
[9.x] Implement Symfony Mailer (#38481) * Implement Symfony Mailer * Apply fixes from StyleCI * Update src/Illuminate/Mail/Message.php Co-authored-by: michael-rubel <contact@observer.name> * Update src/Illuminate/Mail/Message.php Co-authored-by: michael-rubel <contact@observer.name> * Update src/Illuminate/Mail/Message.php Co-authored-by: michael-rubel <contact@observer.name> * Update src/Illuminate/Mail/Message.php Co-authored-by: michael-rubel <contact@observer.name> * Update src/Illuminate/Mail/Message.php Co-authored-by: michael-rubel <contact@observer.name> * Update Array and Log transports * Apply fixes from StyleCI * Fix interface implementation * Update Mailer * Apply fixes from StyleCI * Rename * Remove method * Fix tests * Apply fixes from StyleCI * Work on Mailer tests * type-hint * Fix Mailer tests * Fix more tests * Apply fixes from StyleCI * Migrate Mailgun transport * Migrate Postmark transport * Replace SesTransport * Remove transports from dev dependencies * Allow setting options on esmtp transport * Fix Postmark transport * Fix embedding files * Clarify API transports * Apply fixes from StyleCI * Fix SES transport setup * Add MessageStreamId to Postmark Transport again (#38748) * Update symfony mailer docblocks (#38773) * Update docblocks from Swift Mailer to Symfony Mailer * Make TransportInterface more specific * Add Session Token to SES Transport (#38797) * Update src/Illuminate/Mail/Transport/ArrayTransport.php Co-authored-by: Julius Kiekbusch <jubeki99@gmail.com> * fix docblock * Add Wrapper for Symfony SentMessage (#38803) * Create SentMessage wrapper for Symfony's SentMessage * Wrap Symfony SentMessage * Update Docblocks to Illuminate\Mail\SentMessage * Fix sendMailable * Update SentMessage.php Co-authored-by: Dries Vints <dries@vints.io> Co-authored-by: Taylor Otwell <taylorotwell@users.noreply.github.com> Co-authored-by: michael-rubel <contact@observer.name> Co-authored-by: Julius Kiekbusch <jubeki99@gmail.com> Co-authored-by: Taylor Otwell <taylor@laravel.com> Co-authored-by: Taylor Otwell <taylorotwell@gmail.com>
2021-09-14 15:57:25 +02:00
$message->withSymfonyMessage($callback);
$this->assertSame([$callback], $message->callbacks);
}
public function testWhenCallback()
{
$callback = function (MailMessage $mailMessage, $condition) {
$this->assertTrue($condition);
$mailMessage->cc('cc@example.com');
};
$message = new MailMessage;
$message->when(true, $callback);
$this->assertSame([['cc@example.com', null]], $message->cc);
$message = new MailMessage;
$message->when(false, $callback);
$this->assertSame([], $message->cc);
}
public function testWhenCallbackWithReturn()
{
$callback = function (MailMessage $mailMessage, $condition) {
$this->assertTrue($condition);
return $mailMessage->cc('cc@example.com');
};
$message = new MailMessage;
$message->when(true, $callback)->bcc('bcc@example.com');
$this->assertSame([['cc@example.com', null]], $message->cc);
$this->assertSame([['bcc@example.com', null]], $message->bcc);
$message = new MailMessage;
$message->when(false, $callback)->bcc('bcc@example.com');
$this->assertSame([], $message->cc);
$this->assertSame([['bcc@example.com', null]], $message->bcc);
}
public function testWhenCallbackWithDefault()
{
$callback = function (MailMessage $mailMessage, $condition) {
$this->assertSame('truthy', $condition);
$mailMessage->cc('truthy@example.com');
};
$default = function (MailMessage $mailMessage, $condition) {
$this->assertEquals(0, $condition);
$mailMessage->cc('zero@example.com');
};
$message = new MailMessage;
$message->when('truthy', $callback, $default);
$this->assertSame([['truthy@example.com', null]], $message->cc);
$message = new MailMessage;
$message->when(0, $callback, $default);
$this->assertSame([['zero@example.com', null]], $message->cc);
}
public function testUnlessCallback()
{
$callback = function (MailMessage $mailMessage, $condition) {
$this->assertFalse($condition);
$mailMessage->cc('test@example.com');
};
$message = new MailMessage;
$message->unless(false, $callback);
$this->assertSame([['test@example.com', null]], $message->cc);
$message = new MailMessage;
$message->unless(true, $callback);
$this->assertSame([], $message->cc);
}
public function testUnlessCallbackWithReturn()
{
$callback = function (MailMessage $mailMessage, $condition) {
$this->assertFalse($condition);
return $mailMessage->cc('cc@example.com');
};
$message = new MailMessage;
$message->unless(false, $callback)->bcc('bcc@example.com');
$this->assertSame([['cc@example.com', null]], $message->cc);
$this->assertSame([['bcc@example.com', null]], $message->bcc);
$message = new MailMessage;
$message->unless(true, $callback)->bcc('bcc@example.com');
$this->assertSame([], $message->cc);
$this->assertSame([['bcc@example.com', null]], $message->bcc);
}
public function testUnlessCallbackWithDefault()
{
$callback = function (MailMessage $mailMessage, $condition) {
$this->assertEquals(0, $condition);
$mailMessage->cc('zero@example.com');
};
$default = function (MailMessage $mailMessage, $condition) {
$this->assertSame('truthy', $condition);
$mailMessage->cc('truthy@example.com');
};
$message = new MailMessage;
$message->unless(0, $callback, $default);
$this->assertSame([['zero@example.com', null]], $message->cc);
$message = new MailMessage;
$message->unless('truthy', $callback, $default);
$this->assertSame([['truthy@example.com', null]], $message->cc);
}
public function testItAttachesFilesViaAttachableContractFromPath()
{
$message = new MailMessage;
$message->attach(new class() implements Attachable
{
public function toMailAttachment()
{
return Attachment::fromPath('/foo.jpg')->as('bar')->withMime('image/png');
}
});
$this->assertSame([
'file' => '/foo.jpg',
'options' => [
'as' => 'bar',
'mime' => 'image/png',
],
], $message->attachments[0]);
}
public function testItAttachesFilesViaAttachableContractFromData()
{
$mailMessage = new MailMessage();
$mailMessage->attach(new class() implements Attachable
{
public function toMailAttachment()
{
return Attachment::fromData(fn () => 'bar', 'foo.jpg')->withMime('image/png');
}
});
$this->assertSame([
'data' => 'bar',
'name' => 'foo.jpg',
'options' => [
'mime' => 'image/png',
],
], $mailMessage->rawAttachments[0]);
}
public function testItAttachesManyFiles()
{
$mailMessage = new MailMessage();
$attachable = new class() implements Attachable
{
public function toMailAttachment()
{
return Attachment::fromData(fn () => 'bar', 'foo.jpg')->withMime('image/png');
}
};
$mailMessage->attachMany([
$attachable,
'/path/to/forge.svg',
'/path/to/vapor.svg' => [
'as' => 'Logo.svg',
'mime' => 'image/svg+xml',
],
]);
$this->assertSame([
[
'data' => 'bar',
'name' => 'foo.jpg',
'options' => [
'mime' => 'image/png',
],
],
], $mailMessage->rawAttachments);
$this->assertSame([
[
'file' => '/path/to/forge.svg',
'options' => [],
],
[
'file' => '/path/to/vapor.svg',
'options' => [
'as' => 'Logo.svg',
'mime' => 'image/svg+xml',
],
],
], $mailMessage->attachments);
}
2017-09-13 08:20:20 -05:00
}