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\Integration\Notifications; use Illuminate\Contracts\Tra..
Decoded Output download
<?php
namespace Illuminate\Tests\Integration\Notifications;
use Illuminate\Contracts\Translation\HasLocalePreference;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Foundation\Events\LocaleUpdated;
use Illuminate\Mail\Mailable;
use Illuminate\Notifications\Channels\MailChannel;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notifiable;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Notification as NotificationFacade;
use Illuminate\Support\Facades\Schema;
use Illuminate\Testing\Assert;
use Orchestra\Testbench\TestCase;
class SendingNotificationsWithLocaleTest extends TestCase
{
protected function defineEnvironment($app)
{
$app['config']->set('mail.driver', 'array');
$app['config']->set('app.locale', 'en');
$app['view']->addLocation(__DIR__.'/Fixtures');
$app['translator']->setLoaded([
'*' => [
'*' => [
'en' => ['hi' => 'hello'],
'es' => ['hi' => 'hola'],
'fr' => ['hi' => 'bonjour'],
],
],
]);
}
protected function setUp(): void
{
parent::setUp();
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('email');
$table->string('name')->nullable();
});
}
public function testMailIsSentWithDefaultLocale()
{
$user = NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
'name' => 'Taylor Otwell',
]);
NotificationFacade::send($user, new GreetingMailNotification);
$this->assertStringContainsString('hello',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
}
public function testMailIsSentWithFacadeSelectedLocale()
{
$user = NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
'name' => 'Taylor Otwell',
]);
NotificationFacade::locale('fr')->send($user, new GreetingMailNotification);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
}
public function testMailIsSentWithNotificationSelectedLocale()
{
$users = [
NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
'name' => 'Taylor Otwell',
]),
NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
'name' => 'Mohamed Said',
]),
];
NotificationFacade::send($users, (new GreetingMailNotification)->locale('fr'));
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[1]->toString()
);
}
public function testMailableIsSentWithSelectedLocale()
{
$user = NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
'name' => 'Taylor Otwell',
]);
NotificationFacade::locale('fr')->send($user, new GreetingMailNotificationWithMailable);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
}
public function testMailIsSentWithLocaleUpdatedListenersCalled()
{
Carbon::setTestNow('2018-07-25');
Event::listen(LocaleUpdated::class, function ($event) {
Carbon::setLocale($event->locale);
});
$user = NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
'name' => 'Taylor Otwell',
]);
$user->notify((new GreetingMailNotification)->locale('fr'));
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
Assert::assertMatchesRegularExpression('/dans (1|un) jour/',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
$this->assertTrue($this->app->isLocale('en'));
$this->assertSame('en', Carbon::getLocale());
Carbon::setTestNow(null);
}
public function testLocaleIsSentWithNotifiablePreferredLocale()
{
$recipient = new NotifiableEmailLocalePreferredUser([
'email' => '[email protected]',
'email_locale' => 'fr',
]);
$recipient->notify(new GreetingMailNotification);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
}
public function testLocaleIsSentWithNotifiablePreferredLocaleForMultipleRecipients()
{
$recipients = [
new NotifiableEmailLocalePreferredUser([
'email' => '[email protected]',
'email_locale' => 'fr',
]),
new NotifiableEmailLocalePreferredUser([
'email' => '[email protected]',
'email_locale' => 'es',
]),
NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
]),
];
NotificationFacade::send(
$recipients, new GreetingMailNotification
);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
$this->assertStringContainsString('hola',
app('mailer')->getSymfonyTransport()->messages()[1]->toString()
);
$this->assertStringContainsString('hello',
app('mailer')->getSymfonyTransport()->messages()[2]->toString()
);
}
public function testLocaleIsSentWithNotificationSelectedLocaleOverridingNotifiablePreferredLocale()
{
$recipient = new NotifiableEmailLocalePreferredUser([
'email' => '[email protected]',
'email_locale' => 'es',
]);
$recipient->notify(
(new GreetingMailNotification)->locale('fr')
);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
}
public function testLocaleIsSentWithFacadeSelectedLocaleOverridingNotifiablePreferredLocale()
{
$recipient = new NotifiableEmailLocalePreferredUser([
'email' => '[email protected]',
'email_locale' => 'es',
]);
NotificationFacade::locale('fr')->send(
$recipient, new GreetingMailNotification
);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
}
}
class NotifiableLocalizedUser extends Model
{
use Notifiable;
public $table = 'users';
public $timestamps = false;
}
class NotifiableEmailLocalePreferredUser extends Model implements HasLocalePreference
{
use Notifiable;
protected $fillable = [
'email',
'email_locale',
];
public function preferredLocale()
{
return $this->email_locale;
}
}
class GreetingMailNotification extends Notification
{
public function via($notifiable)
{
return [MailChannel::class];
}
public function toMail($notifiable)
{
return (new MailMessage)
->greeting(__('hi'))
->line(Carbon::tomorrow()->diffForHumans());
}
}
class GreetingMailNotificationWithMailable extends Notification
{
public function via($notifiable)
{
return [MailChannel::class];
}
public function toMail($notifiable)
{
return (new GreetingMailable)
->to($notifiable->email);
}
}
class GreetingMailable extends Mailable
{
public function build()
{
return $this->view('greeting');
}
}
?>
Did this file decode correctly?
Original Code
<?php
namespace Illuminate\Tests\Integration\Notifications;
use Illuminate\Contracts\Translation\HasLocalePreference;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Foundation\Events\LocaleUpdated;
use Illuminate\Mail\Mailable;
use Illuminate\Notifications\Channels\MailChannel;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notifiable;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Notification as NotificationFacade;
use Illuminate\Support\Facades\Schema;
use Illuminate\Testing\Assert;
use Orchestra\Testbench\TestCase;
class SendingNotificationsWithLocaleTest extends TestCase
{
protected function defineEnvironment($app)
{
$app['config']->set('mail.driver', 'array');
$app['config']->set('app.locale', 'en');
$app['view']->addLocation(__DIR__.'/Fixtures');
$app['translator']->setLoaded([
'*' => [
'*' => [
'en' => ['hi' => 'hello'],
'es' => ['hi' => 'hola'],
'fr' => ['hi' => 'bonjour'],
],
],
]);
}
protected function setUp(): void
{
parent::setUp();
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('email');
$table->string('name')->nullable();
});
}
public function testMailIsSentWithDefaultLocale()
{
$user = NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
'name' => 'Taylor Otwell',
]);
NotificationFacade::send($user, new GreetingMailNotification);
$this->assertStringContainsString('hello',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
}
public function testMailIsSentWithFacadeSelectedLocale()
{
$user = NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
'name' => 'Taylor Otwell',
]);
NotificationFacade::locale('fr')->send($user, new GreetingMailNotification);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
}
public function testMailIsSentWithNotificationSelectedLocale()
{
$users = [
NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
'name' => 'Taylor Otwell',
]),
NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
'name' => 'Mohamed Said',
]),
];
NotificationFacade::send($users, (new GreetingMailNotification)->locale('fr'));
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[1]->toString()
);
}
public function testMailableIsSentWithSelectedLocale()
{
$user = NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
'name' => 'Taylor Otwell',
]);
NotificationFacade::locale('fr')->send($user, new GreetingMailNotificationWithMailable);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
}
public function testMailIsSentWithLocaleUpdatedListenersCalled()
{
Carbon::setTestNow('2018-07-25');
Event::listen(LocaleUpdated::class, function ($event) {
Carbon::setLocale($event->locale);
});
$user = NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
'name' => 'Taylor Otwell',
]);
$user->notify((new GreetingMailNotification)->locale('fr'));
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
Assert::assertMatchesRegularExpression('/dans (1|un) jour/',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
$this->assertTrue($this->app->isLocale('en'));
$this->assertSame('en', Carbon::getLocale());
Carbon::setTestNow(null);
}
public function testLocaleIsSentWithNotifiablePreferredLocale()
{
$recipient = new NotifiableEmailLocalePreferredUser([
'email' => '[email protected]',
'email_locale' => 'fr',
]);
$recipient->notify(new GreetingMailNotification);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
}
public function testLocaleIsSentWithNotifiablePreferredLocaleForMultipleRecipients()
{
$recipients = [
new NotifiableEmailLocalePreferredUser([
'email' => '[email protected]',
'email_locale' => 'fr',
]),
new NotifiableEmailLocalePreferredUser([
'email' => '[email protected]',
'email_locale' => 'es',
]),
NotifiableLocalizedUser::forceCreate([
'email' => '[email protected]',
]),
];
NotificationFacade::send(
$recipients, new GreetingMailNotification
);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
$this->assertStringContainsString('hola',
app('mailer')->getSymfonyTransport()->messages()[1]->toString()
);
$this->assertStringContainsString('hello',
app('mailer')->getSymfonyTransport()->messages()[2]->toString()
);
}
public function testLocaleIsSentWithNotificationSelectedLocaleOverridingNotifiablePreferredLocale()
{
$recipient = new NotifiableEmailLocalePreferredUser([
'email' => '[email protected]',
'email_locale' => 'es',
]);
$recipient->notify(
(new GreetingMailNotification)->locale('fr')
);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
}
public function testLocaleIsSentWithFacadeSelectedLocaleOverridingNotifiablePreferredLocale()
{
$recipient = new NotifiableEmailLocalePreferredUser([
'email' => '[email protected]',
'email_locale' => 'es',
]);
NotificationFacade::locale('fr')->send(
$recipient, new GreetingMailNotification
);
$this->assertStringContainsString('bonjour',
app('mailer')->getSymfonyTransport()->messages()[0]->toString()
);
}
}
class NotifiableLocalizedUser extends Model
{
use Notifiable;
public $table = 'users';
public $timestamps = false;
}
class NotifiableEmailLocalePreferredUser extends Model implements HasLocalePreference
{
use Notifiable;
protected $fillable = [
'email',
'email_locale',
];
public function preferredLocale()
{
return $this->email_locale;
}
}
class GreetingMailNotification extends Notification
{
public function via($notifiable)
{
return [MailChannel::class];
}
public function toMail($notifiable)
{
return (new MailMessage)
->greeting(__('hi'))
->line(Carbon::tomorrow()->diffForHumans());
}
}
class GreetingMailNotificationWithMailable extends Notification
{
public function via($notifiable)
{
return [MailChannel::class];
}
public function toMail($notifiable)
{
return (new GreetingMailable)
->to($notifiable->email);
}
}
class GreetingMailable extends Mailable
{
public function build()
{
return $this->view('greeting');
}
}
Function Calls
| None |
Stats
| MD5 | 79600dce84b6cc558006c6a79d6900cc |
| Eval Count | 0 |
| Decode Time | 88 ms |