Skip to content

Instantly share code, notes, and snippets.

@lotsofbytes
Last active October 6, 2018 19:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lotsofbytes/c62d1a53982d4fab0f06fd1068b1f999 to your computer and use it in GitHub Desktop.
Save lotsofbytes/c62d1a53982d4fab0f06fd1068b1f999 to your computer and use it in GitHub Desktop.
[バリデーション:ip] #laravel #L55 #validation

バリデーション:ip,ipv4,ipv6

入力値がIPアドレスの文字列かを判定。

laravel 5.5

gistの画面

以下の実行で、ダウンロードできます

$ git clone git@gist.github.com:c62d1a53982d4fab0f06fd1068b1f999.git tests/Unit/Validations/Ip
<?php
namespace Tests\Unit\Validations\Ip;
use Tests\TestCase;
use Validator;
class IpTest extends TestCase
{
/**
* @test
* @dataProvider provider_ip
*/
public function ip($input, $expected)
{
$v = Validator::make(
$input,
['field' => 'required|ip']
);
$this->assertEquals($expected, $v->passes());
}
public function provider_ip()
{
return [
[['field' => '192'], false],
[['field' => '192.168.0.1'], true], // ip4
[['field' => '2001:db8:0:1234:0:567:8:1'], true], // ip6
];
}
/**
* @test
* @dataProvider provider_ipv4
*/
public function ipv4($input, $expected)
{
$v = Validator::make(
$input,
['field' => 'required|ipv4']
);
$this->assertEquals($expected, $v->passes());
}
public function provider_ipv4()
{
return [
[['field' => '192'], false],
[['field' => '192.168.0.1'], true], // ip4
[['field' => '2001:db8:0:1234:0:567:8:1'], false], // ip6
];
}
/**
* @test
* @dataProvider provider_ipv6
*/
public function ipv6($input, $expected)
{
$v = Validator::make(
$input,
['field' => 'required|ipv6']
);
$this->assertEquals($expected, $v->passes());
}
public function provider_ipv6()
{
return [
[['field' => '192'], false],
[['field' => '192.168.0.1'], false], // ip4
[['field' => '2001:db8:0:1234:0:567:8:1'], true], // ip6
];
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment