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\Validation; use Illuminate\Database\Eloquen..
Decoded Output download
<?php
namespace Illuminate\Tests\Integration\Validation;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Str;
use Illuminate\Tests\Integration\Database\DatabaseTestCase;
use Illuminate\Translation\ArrayLoader;
use Illuminate\Translation\Translator;
use Illuminate\Validation\DatabasePresenceVerifier;
use Illuminate\Validation\Validator;
class ValidatorTest extends DatabaseTestCase
{
protected function setUp(): void
{
parent::setUp();
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('uuid');
$table->string('first_name');
});
User::create(['uuid' => (string) Str::uuid(), 'first_name' => 'John']);
User::create(['uuid' => (string) Str::uuid(), 'first_name' => 'Jim']);
}
public function testExists()
{
$validator = $this->getValidator(['first_name' => ['John', 'Taylor']], ['first_name' => 'exists:users']);
$this->assertFalse($validator->passes());
}
public function testUnique()
{
$validator = $this->getValidator(['first_name' => 'John'], ['first_name' => 'unique:'.User::class]);
$this->assertFalse($validator->passes());
$validator = $this->getValidator(['first_name' => 'John'], ['first_name' => 'unique:'.User::class.',first_name,1']);
$this->assertTrue($validator->passes());
$validator = $this->getValidator(['first_name' => 'Taylor'], ['first_name' => 'unique:'.User::class]);
$this->assertTrue($validator->passes());
}
public function testUniqueWithCustomModelKey()
{
$_SERVER['CUSTOM_MODEL_KEY_NAME'] = 'uuid';
$validator = $this->getValidator(['first_name' => 'John'], ['first_name' => 'unique:'.UserWithUuid::class]);
$this->assertFalse($validator->passes());
$user = UserWithUuid::where('first_name', 'John')->first();
$validator = $this->getValidator(['first_name' => 'John'], ['first_name' => 'unique:'.UserWithUuid::class.',first_name,'.$user->uuid]);
$this->assertTrue($validator->passes());
$validator = $this->getValidator(['first_name' => 'John'], ['first_name' => 'unique:users,first_name,'.$user->uuid.',uuid']);
$this->assertTrue($validator->passes());
$validator = $this->getValidator(['first_name' => 'John'], ['first_name' => 'unique:users,first_name,'.$user->uuid.',id']);
$this->assertFalse($validator->passes());
$validator = $this->getValidator(['first_name' => 'Taylor'], ['first_name' => 'unique:'.UserWithUuid::class]);
$this->assertTrue($validator->passes());
unset($_SERVER['CUSTOM_MODEL_KEY_NAME']);
}
public function testImplicitAttributeFormatting()
{
$translator = new Translator(new ArrayLoader, 'en');
$translator->addLines(['validation.string' => ':attribute must be a string!'], 'en');
$validator = new Validator($translator, [['name' => 1]], ['*.name' => 'string']);
$validator->setImplicitAttributesFormatter(function ($attribute) {
[$line, $attribute] = explode('.', $attribute);
return sprintf('%s at line %d', $attribute, $line + 1);
});
$validator->passes();
$this->assertSame('name at line 1 must be a string!', $validator->getMessageBag()->all()[0]);
}
protected function getValidator(array $data, array $rules)
{
$translator = new Translator(new ArrayLoader, 'en');
$validator = new Validator($translator, $data, $rules);
$validator->setPresenceVerifier(new DatabasePresenceVerifier($this->app['db']));
return $validator;
}
}
class User extends Model
{
public $timestamps = false;
protected $guarded = [];
}
class UserWithUuid extends Model
{
protected $table = 'users';
public $timestamps = false;
protected $guarded = [];
protected $keyType = 'string';
public $incrementing = false;
public function getKeyName()
{
return 'uuid';
}
}
?>
Did this file decode correctly?
Original Code
<?php
namespace Illuminate\Tests\Integration\Validation;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Str;
use Illuminate\Tests\Integration\Database\DatabaseTestCase;
use Illuminate\Translation\ArrayLoader;
use Illuminate\Translation\Translator;
use Illuminate\Validation\DatabasePresenceVerifier;
use Illuminate\Validation\Validator;
class ValidatorTest extends DatabaseTestCase
{
protected function setUp(): void
{
parent::setUp();
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('uuid');
$table->string('first_name');
});
User::create(['uuid' => (string) Str::uuid(), 'first_name' => 'John']);
User::create(['uuid' => (string) Str::uuid(), 'first_name' => 'Jim']);
}
public function testExists()
{
$validator = $this->getValidator(['first_name' => ['John', 'Taylor']], ['first_name' => 'exists:users']);
$this->assertFalse($validator->passes());
}
public function testUnique()
{
$validator = $this->getValidator(['first_name' => 'John'], ['first_name' => 'unique:'.User::class]);
$this->assertFalse($validator->passes());
$validator = $this->getValidator(['first_name' => 'John'], ['first_name' => 'unique:'.User::class.',first_name,1']);
$this->assertTrue($validator->passes());
$validator = $this->getValidator(['first_name' => 'Taylor'], ['first_name' => 'unique:'.User::class]);
$this->assertTrue($validator->passes());
}
public function testUniqueWithCustomModelKey()
{
$_SERVER['CUSTOM_MODEL_KEY_NAME'] = 'uuid';
$validator = $this->getValidator(['first_name' => 'John'], ['first_name' => 'unique:'.UserWithUuid::class]);
$this->assertFalse($validator->passes());
$user = UserWithUuid::where('first_name', 'John')->first();
$validator = $this->getValidator(['first_name' => 'John'], ['first_name' => 'unique:'.UserWithUuid::class.',first_name,'.$user->uuid]);
$this->assertTrue($validator->passes());
$validator = $this->getValidator(['first_name' => 'John'], ['first_name' => 'unique:users,first_name,'.$user->uuid.',uuid']);
$this->assertTrue($validator->passes());
$validator = $this->getValidator(['first_name' => 'John'], ['first_name' => 'unique:users,first_name,'.$user->uuid.',id']);
$this->assertFalse($validator->passes());
$validator = $this->getValidator(['first_name' => 'Taylor'], ['first_name' => 'unique:'.UserWithUuid::class]);
$this->assertTrue($validator->passes());
unset($_SERVER['CUSTOM_MODEL_KEY_NAME']);
}
public function testImplicitAttributeFormatting()
{
$translator = new Translator(new ArrayLoader, 'en');
$translator->addLines(['validation.string' => ':attribute must be a string!'], 'en');
$validator = new Validator($translator, [['name' => 1]], ['*.name' => 'string']);
$validator->setImplicitAttributesFormatter(function ($attribute) {
[$line, $attribute] = explode('.', $attribute);
return sprintf('%s at line %d', $attribute, $line + 1);
});
$validator->passes();
$this->assertSame('name at line 1 must be a string!', $validator->getMessageBag()->all()[0]);
}
protected function getValidator(array $data, array $rules)
{
$translator = new Translator(new ArrayLoader, 'en');
$validator = new Validator($translator, $data, $rules);
$validator->setPresenceVerifier(new DatabasePresenceVerifier($this->app['db']));
return $validator;
}
}
class User extends Model
{
public $timestamps = false;
protected $guarded = [];
}
class UserWithUuid extends Model
{
protected $table = 'users';
public $timestamps = false;
protected $guarded = [];
protected $keyType = 'string';
public $incrementing = false;
public function getKeyName()
{
return 'uuid';
}
}
Function Calls
| None |
Stats
| MD5 | 663258f9d5a26044597ac251a635c4e9 |
| Eval Count | 0 |
| Decode Time | 113 ms |