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
|
<?php
namespace Illuminate\Tests\Integration\Mail;
use Illuminate\Mail\Attachment;
use Illuminate\Mail\Mailable;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Support\Facades\Storage;
use Orchestra\Testbench\TestCase;
class AttachingFromStorageTest extends TestCase
{
public function testItCanAttachFromStorage()
{
Storage::disk('local')->put('/dir/foo.png', 'expected body contents');
$mail = new MailMessage();
$attachment = Attachment::fromStorageDisk('local', '/dir/foo.png')
->as('bar')
->withMime('text/css');
$attachment->attachTo($mail);
$this->assertSame([
'data' => 'expected body contents',
'name' => 'bar',
'options' => [
'mime' => 'text/css',
],
], $mail->rawAttachments[0]);
Storage::disk('local')->delete('/dir/foo.png');
}
public function testItCanAttachFromStorageAndFallbackToStorageNameAndMime()
{
Storage::disk()->put('/dir/foo.png', 'expected body contents');
$mail = new MailMessage();
$attachment = Attachment::fromStorageDisk('local', '/dir/foo.png');
$attachment->attachTo($mail);
$this->assertSame([
'data' => 'expected body contents',
'name' => 'foo.png',
'options' => [
// when using "prefer-lowest" the local filesystem driver will
// not detect the mime type based on the extension and will
// instead fallback to "text/plain".
'mime' => class_exists(\League\Flysystem\Local\FallbackMimeTypeDetector::class)
? 'image/png'
: 'text/plain',
],
], $mail->rawAttachments[0]);
Storage::disk('local')->delete('/dir/foo.png');
}
public function testItCanChainAttachWithMailMessage()
{
Storage::disk('local')->put('/dir/foo.png', 'expected body contents');
$message = new MailMessage();
$result = $message->attach(
Attachment::fromStorageDisk('local', '/dir/foo.png')
);
$this->assertSame($message, $result);
}
public function testItCanCheckForStorageBasedAttachments()
{
Storage::disk()->put('/dir/foo.png', 'expected body contents');
$mailable = new Mailable();
$mailable->attach(Attachment::fromStorage('/dir/foo.png'));
$this->assertTrue($mailable->hasAttachment(Attachment::fromStorage('/dir/foo.png')));
}
}
|