Skip to content

Commit

Permalink
Tests updated
Browse files Browse the repository at this point in the history
  • Loading branch information
filisko committed Feb 20, 2020
1 parent 04ccb21 commit e7a19b2
Show file tree
Hide file tree
Showing 5 changed files with 254 additions and 44 deletions.
36 changes: 12 additions & 24 deletions gump.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -399,11 +399,7 @@ public function validate(array $input, array $ruleset, $rules_delimiter='|', $pa
if (count(array_intersect($look_for, $rules)) > 0 || (isset($input[$field]))) {

if (isset($input[$field])) {
if (is_array($input[$field]) && in_array('required_file', $ruleset)) {
$input_array = array($input[$field]);
} else {
$input_array = array($input[$field]);
}
$input_array = array($input[$field]);
} else {
$input_array = array('');
}
Expand Down Expand Up @@ -1135,14 +1131,12 @@ protected function validate_max_len($field, $input, $param = null)
return;
}

if (function_exists('mb_strlen')) {
if (Helpers::functionExists('mb_strlen')) {
if (mb_strlen($input[$field]) <= (int) $param) {
return;
}
} else {
if (strlen($input[$field]) <= (int) $param) {
return;
}
} else if (strlen($input[$field]) <= (int) $param) {
return;
}

return array(
Expand Down Expand Up @@ -1170,14 +1164,12 @@ protected function validate_min_len($field, $input, $param = null)
return;
}

if (function_exists('mb_strlen')) {
if (Helpers::functionExists('mb_strlen')) {
if (mb_strlen($input[$field]) >= (int) $param) {
return;
}
} else {
if (strlen($input[$field]) >= (int) $param) {
return;
}
} else if (strlen($input[$field]) >= (int) $param) {
return;
}

return array(
Expand Down Expand Up @@ -1205,14 +1197,12 @@ protected function validate_exact_len($field, $input, $param = null)
return;
}

if (function_exists('mb_strlen')) {
if (Helpers::functionExists('mb_strlen')) {
if (mb_strlen($input[$field]) == (int) $param) {
return;
}
} else {
if (strlen($input[$field]) == (int) $param) {
return;
}
} else if (strlen($input[$field]) == (int) $param) {
return;
}

return array(
Expand Down Expand Up @@ -1646,20 +1636,19 @@ protected function validate_valid_cc($field, $input, $param = null)

$number = preg_replace('/\D/', '', $input[$field]);

if (function_exists('mb_strlen')) {
if (Helpers::functionExists('mb_strlen')) {
$number_length = mb_strlen($number);
} else {
$number_length = strlen($number);
}


/**
* Bail out if $number_length is 0.
* This can be the case if a user has entered only alphabets
*
* @since 1.5
*/
if( $number_length == 0 ) {
if ($number_length == 0 ) {
return array(
'field' => $field,
'value' => $input[$field],
Expand All @@ -1668,7 +1657,6 @@ protected function validate_valid_cc($field, $input, $param = null)
);
}


$parity = $number_length % 2;

$total = 0;
Expand Down
71 changes: 65 additions & 6 deletions tests/Validators/ExactLenValidatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use GUMP;
use Exception;
use Tests\BaseTestCase;
use Mockery as m;

/**
* Class ExactLenValidatorTest
Expand All @@ -13,18 +14,76 @@
*/
class ExactLenValidatorTest extends BaseTestCase
{
public function testSuccessWhenEqual()
public function testSuccessWhenEqualWithMbStrlen()
{
$this->assertTrue($this->validate('exact_len,2', '12'));
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnTrue();

$this->assertTrue($this->validate('exact_len,5', 'ñándú'));
}

public function testErrorWhenMore()
public function testErrorWhenMoreWithMbStrlen()
{
$this->assertNotTrue($this->validate('exact_len,2', '123'));
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnTrue();

$this->assertNotTrue($this->validate('exact_len,2', 'ñán'));
}

public function testErrorWhenLess()
public function testErrorWhenLessWithMbStrlen()
{
$this->assertNotTrue($this->validate('exact_len,2', '1'));
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnTrue();

$this->assertNotTrue($this->validate('exact_len,2', 'ñ'));
}

public function testSuccessWhenEqualWithStrlen()
{
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnFalse();

$this->assertTrue($this->validate('exact_len,3', 'ña'));
$this->assertTrue($this->validate('exact_len,2', 'na'));
}

public function testErrorWhenMoreWithStrlen()
{
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnFalse();

$this->assertNotTrue($this->validate('exact_len,2', 'nan'));
}

public function testErrorWhenLessWithStrlen()
{
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnFalse();

$this->assertNotTrue($this->validate('exact_len,2', 'n'));
}
}
71 changes: 65 additions & 6 deletions tests/Validators/MaxLenValidatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use GUMP;
use Exception;
use Tests\BaseTestCase;
use Mockery as m;

/**
* Class MaxLenValidatorTest
Expand All @@ -13,18 +14,76 @@
*/
class MaxLenValidatorTest extends BaseTestCase
{
public function testSuccessWhenEqual()
public function testSuccessWhenEqualWithMbStrlen()
{
$this->assertTrue($this->validate('max_len,2', '12'));
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnTrue();

$this->assertTrue($this->validate('max_len,5', 'ñándú'));
}

public function testSuccessWhenLess()
public function testSuccessWhenLessWithMbStrlen()
{
$this->assertTrue($this->validate('max_len,2', '1'));
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnTrue();

$this->assertTrue($this->validate('max_len,2', 'ñ'));
}

public function testErrorWhenMore()
public function testErrorWhenMoreWithMbStrlen()
{
$this->assertNotTrue($this->validate('max_len,2', '123'));
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnTrue();

$this->assertNotTrue($this->validate('max_len,2', 'ñán'));
}

public function testSuccessWhenEqualWithStrlen()
{
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnFalse();

$this->assertTrue($this->validate('max_len,3', 'ña'));
$this->assertTrue($this->validate('max_len,2', 'na'));
}

public function testSuccessWhenLessWithStrlen()
{
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnFalse();

$this->assertTrue($this->validate('max_len,2', 'n'));
}

public function testErrorWhenMoreWithStrlen()
{
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnFalse();

$this->assertNotTrue($this->validate('max_len,2', 'nan'));
}
}
71 changes: 65 additions & 6 deletions tests/Validators/MinLenValidatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use GUMP;
use Exception;
use Tests\BaseTestCase;
use Mockery as m;

/**
* Class MinLenValidatorTest
Expand All @@ -13,18 +14,76 @@
*/
class MinLenValidatorTest extends BaseTestCase
{
public function testSuccessWhenEqual()
public function testSuccessWhenEqualWithMbStrlen()
{
$this->assertTrue($this->validate('min_len,2', '12'));
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnTrue();

$this->assertTrue($this->validate('min_len,5', 'ñándú'));
}

public function testSuccessWhenMore()
public function testSuccessWhenMoreWithMbStrlen()
{
$this->assertTrue($this->validate('min_len,2', '123'));
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnTrue();

$this->assertTrue($this->validate('min_len,2', 'ñán'));
}

public function testErrorWhenLess()
public function testErrorWhenLessWithMbStrlen()
{
$this->assertNotTrue($this->validate('min_len,2', '1'));
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnTrue();

$this->assertNotTrue($this->validate('min_len,2', 'ñ'));
}

public function testSuccessWhenEqualWithStrlen()
{
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnFalse();

$this->assertTrue($this->validate('min_len,3', 'ña'));
$this->assertTrue($this->validate('min_len,2', 'na'));
}

public function testSuccessWhenMoreWithStrlen()
{
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnFalse();

$this->assertTrue($this->validate('min_len,2', 'nan'));
}

public function testErrorWhenLessWithStrlen()
{
$externalMock = m::mock('overload:GUMP\Helpers');

$externalMock->shouldReceive('functionExists')
->once()
->with('mb_strlen')
->andReturnFalse();

$this->assertNotTrue($this->validate('min_len,2', 'n'));
}
}
Loading

0 comments on commit e7a19b2

Please sign in to comment.