Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php namespace Illuminate\Tests\Mail; use Aws\Command; use Aws\Exception\AwsException; ..
Decoded Output download
<?php
namespace Illuminate\Tests\Mail;
use Aws\Command;
use Aws\Exception\AwsException;
use Aws\SesV2\SesV2Client;
use Illuminate\Config\Repository;
use Illuminate\Container\Container;
use Illuminate\Mail\MailManager;
use Illuminate\Mail\Transport\SesV2Transport;
use Illuminate\View\Factory;
use Mockery as m;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Mailer\Exception\TransportException;
use Symfony\Component\Mailer\Header\MetadataHeader;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;
class MailSesV2TransportTest extends TestCase
{
protected function tearDown(): void
{
m::close();
parent::tearDown();
}
public function testGetTransport()
{
$container = new Container;
$container->singleton('config', function () {
return new Repository([
'services.ses' => [
'key' => 'foo',
'secret' => 'bar',
'region' => 'us-east-1',
],
]);
});
$manager = new MailManager($container);
/** @var \Illuminate\Mail\Transport\SesV2Transport $transport */
$transport = $manager->createSymfonyTransport(['transport' => 'ses-v2']);
$ses = $transport->ses();
$this->assertSame('us-east-1', $ses->getRegion());
$this->assertSame('ses-v2', (string) $transport);
}
public function testSend()
{
$message = new Email();
$message->subject('Foo subject');
$message->text('Bar body');
$message->sender('[email protected]');
$message->to('[email protected]');
$message->bcc('[email protected]');
$message->replyTo(new Address('[email protected]', 'Taylor Otwell'));
$message->getHeaders()->add(new MetadataHeader('FooTag', 'TagValue'));
$message->getHeaders()->addTextHeader('X-SES-LIST-MANAGEMENT-OPTIONS', 'contactListName=TestList;topicName=TestTopic');
$client = m::mock(SesV2Client::class);
$sesResult = m::mock();
$sesResult->shouldReceive('get')
->with('MessageId')
->once()
->andReturn('ses-message-id');
$client->shouldReceive('sendEmail')->once()
->with(m::on(function ($arg) {
return $arg['Source'] === '[email protected]' &&
$arg['Destination']['ToAddresses'] === ['[email protected]', '[email protected]'] &&
$arg['ListManagementOptions'] === ['ContactListName' => 'TestList', 'TopicName' => 'TestTopic'] &&
$arg['EmailTags'] === [['Name' => 'FooTag', 'Value' => 'TagValue']] &&
strpos($arg['Content']['Raw']['Data'], 'Reply-To: Taylor Otwell <[email protected]>') !== false;
}))
->andReturn($sesResult);
(new SesV2Transport($client))->send($message);
}
public function testSendError()
{
$message = new Email();
$message->subject('Foo subject');
$message->text('Bar body');
$message->sender('[email protected]');
$message->to('[email protected]');
$client = m::mock(SesV2Client::class);
$client->shouldReceive('sendEmail')->once()
->andThrow(new AwsException('Email address is not verified.', new Command('sendRawEmail')));
$this->expectException(TransportException::class);
(new SesV2Transport($client))->send($message);
}
public function testSesV2LocalConfiguration()
{
$container = new Container;
$container->singleton('config', function () {
return new Repository([
'mail' => [
'mailers' => [
'ses' => [
'transport' => 'ses-v2',
'region' => 'eu-west-1',
'options' => [
'ConfigurationSetName' => 'Laravel',
'EmailTags' => [
['Name' => 'Laravel', 'Value' => 'Framework'],
],
],
],
],
],
'services' => [
'ses' => [
'region' => 'us-east-1',
],
],
]);
});
$container->instance('view', $this->createMock(Factory::class));
$container->bind('events', function () {
return null;
});
$manager = new MailManager($container);
/** @var \Illuminate\Mail\Mailer $mailer */
$mailer = $manager->mailer('ses');
/** @var \Illuminate\Mail\Transport\SesV2Transport $transport */
$transport = $mailer->getSymfonyTransport();
$this->assertSame('eu-west-1', $transport->ses()->getRegion());
$this->assertSame([
'ConfigurationSetName' => 'Laravel',
'EmailTags' => [
['Name' => 'Laravel', 'Value' => 'Framework'],
],
], $transport->getOptions());
}
}
?>
Did this file decode correctly?
Original Code
<?php
namespace Illuminate\Tests\Mail;
use Aws\Command;
use Aws\Exception\AwsException;
use Aws\SesV2\SesV2Client;
use Illuminate\Config\Repository;
use Illuminate\Container\Container;
use Illuminate\Mail\MailManager;
use Illuminate\Mail\Transport\SesV2Transport;
use Illuminate\View\Factory;
use Mockery as m;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Mailer\Exception\TransportException;
use Symfony\Component\Mailer\Header\MetadataHeader;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;
class MailSesV2TransportTest extends TestCase
{
protected function tearDown(): void
{
m::close();
parent::tearDown();
}
public function testGetTransport()
{
$container = new Container;
$container->singleton('config', function () {
return new Repository([
'services.ses' => [
'key' => 'foo',
'secret' => 'bar',
'region' => 'us-east-1',
],
]);
});
$manager = new MailManager($container);
/** @var \Illuminate\Mail\Transport\SesV2Transport $transport */
$transport = $manager->createSymfonyTransport(['transport' => 'ses-v2']);
$ses = $transport->ses();
$this->assertSame('us-east-1', $ses->getRegion());
$this->assertSame('ses-v2', (string) $transport);
}
public function testSend()
{
$message = new Email();
$message->subject('Foo subject');
$message->text('Bar body');
$message->sender('[email protected]');
$message->to('[email protected]');
$message->bcc('[email protected]');
$message->replyTo(new Address('[email protected]', 'Taylor Otwell'));
$message->getHeaders()->add(new MetadataHeader('FooTag', 'TagValue'));
$message->getHeaders()->addTextHeader('X-SES-LIST-MANAGEMENT-OPTIONS', 'contactListName=TestList;topicName=TestTopic');
$client = m::mock(SesV2Client::class);
$sesResult = m::mock();
$sesResult->shouldReceive('get')
->with('MessageId')
->once()
->andReturn('ses-message-id');
$client->shouldReceive('sendEmail')->once()
->with(m::on(function ($arg) {
return $arg['Source'] === '[email protected]' &&
$arg['Destination']['ToAddresses'] === ['[email protected]', '[email protected]'] &&
$arg['ListManagementOptions'] === ['ContactListName' => 'TestList', 'TopicName' => 'TestTopic'] &&
$arg['EmailTags'] === [['Name' => 'FooTag', 'Value' => 'TagValue']] &&
strpos($arg['Content']['Raw']['Data'], 'Reply-To: Taylor Otwell <[email protected]>') !== false;
}))
->andReturn($sesResult);
(new SesV2Transport($client))->send($message);
}
public function testSendError()
{
$message = new Email();
$message->subject('Foo subject');
$message->text('Bar body');
$message->sender('[email protected]');
$message->to('[email protected]');
$client = m::mock(SesV2Client::class);
$client->shouldReceive('sendEmail')->once()
->andThrow(new AwsException('Email address is not verified.', new Command('sendRawEmail')));
$this->expectException(TransportException::class);
(new SesV2Transport($client))->send($message);
}
public function testSesV2LocalConfiguration()
{
$container = new Container;
$container->singleton('config', function () {
return new Repository([
'mail' => [
'mailers' => [
'ses' => [
'transport' => 'ses-v2',
'region' => 'eu-west-1',
'options' => [
'ConfigurationSetName' => 'Laravel',
'EmailTags' => [
['Name' => 'Laravel', 'Value' => 'Framework'],
],
],
],
],
],
'services' => [
'ses' => [
'region' => 'us-east-1',
],
],
]);
});
$container->instance('view', $this->createMock(Factory::class));
$container->bind('events', function () {
return null;
});
$manager = new MailManager($container);
/** @var \Illuminate\Mail\Mailer $mailer */
$mailer = $manager->mailer('ses');
/** @var \Illuminate\Mail\Transport\SesV2Transport $transport */
$transport = $mailer->getSymfonyTransport();
$this->assertSame('eu-west-1', $transport->ses()->getRegion());
$this->assertSame([
'ConfigurationSetName' => 'Laravel',
'EmailTags' => [
['Name' => 'Laravel', 'Value' => 'Framework'],
],
], $transport->getOptions());
}
}
Function Calls
None |
Stats
MD5 | 2043e9f071ddc67b1d8834564492e4dc |
Eval Count | 0 |
Decode Time | 107 ms |