Skip to content
This repository has been archived by the owner on Jan 30, 2020. It is now read-only.

Commit

Permalink
Merge pull request zendframework/zendframework#5436 from ThaDafinser/…
Browse files Browse the repository at this point in the history
…ZendFilter

[WIP] Zend\Filter harmonization (Issue 5119)

Conflicts:
	library/Zend/I18n/Filter/NumberFormat.php
  • Loading branch information
weierophinney committed Feb 4, 2014
169 parents 8848167 + 147d497 + 8651b9e + c99b627 + 740abb6 + 9b5478d + 91a23e2 + 8649d44 + 3f353b0 + d340adb + 1e0e8f4 + 5c4289e + fb94cca + 2a3844c + 906bbcf + 3d9b8bb + 84844ae + 62fc651 + b0a3dd4 + 0dca0ef + 910bbbf + e574b9b + f30ec7d + 1fa84de + 41b8543 + 9e2c9d5 + 913f51c + 39924f3 + c2a11e1 + 61b9322 + 413a38b + e51b2b8 + 20e328b + 6437ec0 + e9b8476 + 95e54a0 + 7ea3aed + df6a706 + a82fc82 + 7c2a059 + 4fefb53 + 599ee3a + ea3fc65 + f6c04c2 + 6591e3d + a4f76e3 + 33c7531 + 2d59782 + 8152327 + e56ce9b + db9b18f + b88635a + a262823 + b79aef6 + c2284e4 + 70193eb + 96acf77 + 9675426 + 5f02411 + 0dafea7 + 15dc674 + 4a2447d + e6eb7f3 + e9499c5 + 272b15f + 11c7758 + 6f0e918 + 5f4980a + ecca95a + 88b5971 + ecb8d13 + 9de1c08 + 44aad17 + 13269e9 + 654cdb6 + dc708db + 380ffba + ff67e7f + fe2e025 + 95f0efa + 68cc4b3 + bf13b96 + 8870381 + 56480f4 + 1fa90d7 + 5c7fe1f + abe9bc1 + a33cacd + cdd7d9f + 6a261b1 + 5e594c4 + 01c1241 + 30d1dd2 + d4af079 + c9aa9b4 + 10f47ca + ef20fa1 + 2187ae2 + e7f3993 + db93d37 + aa57612 + 4af81d8 + 2f90998 + 3013404 + 69d83fe + f383ca9 + 1b26f48 + 054f09d + 0c86829 + f22d81a + e7ebffe + 72a7a54 + cc09223 + ab99f58 + 2c69e37 + b6ccfbc + b92a5da + 773a133 + 9ee28ff + 5865e20 + 63c7303 + 73371d0 + b96f402 + b36e36b + 60fa081 + a1d27a6 + 43e9240 + 9e59ae6 + be1ce44 + 5a6465d + 7e455b4 + 83d837e + 28bc01e + 215be48 + efcc8e0 + 5192ae6 + 7e1ba0f + dec8ccf + 94afc0f + 8c3ea5f + d680762 + 9092473 + 041fc63 + ea6499d + 1f59300 + a75142b + f592cc2 + f523aef + 2d12221 + 34ad758 + 23cc229 + 1fa15a0 + 6b74fc7 + 1472e82 + d816ccc + 7b26586 + 08d26c4 + a5cc444 + fe92acf + 6bd67b2 + 371ba41 + a313570 + 7a1829c + 39d06a8 + c05aee7 + 04f4340 + 2494ed2 + 4dbc11a + bb9327f commit 69bd82b
Show file tree
Hide file tree
Showing 6 changed files with 116 additions and 11 deletions.
10 changes: 7 additions & 3 deletions src/Filter/Alnum.php
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,15 @@ public function getAllowWhiteSpace()
*
* Returns $value as string with all non-alphanumeric characters removed
*
* @param mixed $value
* @return string
* @param string|array $value
* @return string|array
*/
public function filter($value)
{
if (!is_scalar($value) && !is_array($value)) {
return $value;
}

$whiteSpace = $this->options['allow_white_space'] ? '\s' : '';
$language = Locale::getPrimaryLanguage($this->getLocale());

Expand All @@ -87,6 +91,6 @@ public function filter($value)
$pattern = '/[^\p{L}\p{N}' . $whiteSpace . ']/u';
}

return preg_replace($pattern, '', (string) $value);
return preg_replace($pattern, '', $value);
}
}
10 changes: 7 additions & 3 deletions src/Filter/Alpha.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,15 @@ class Alpha extends Alnum
*
* Returns the string $value, removing all but alphabetic characters
*
* @param string $value
* @return string
* @param string|array $value
* @return string|array
*/
public function filter($value)
{
if (!is_scalar($value) && !is_array($value)) {
return $value;
}

$whiteSpace = $this->options['allow_white_space'] ? '\s' : '';
$language = Locale::getPrimaryLanguage($this->getLocale());

Expand All @@ -37,6 +41,6 @@ public function filter($value)
$pattern = '/[^\p{L}' . $whiteSpace . ']/u';
}

return preg_replace($pattern, '', (string) $value);
return preg_replace($pattern, '', $value);
}
}
11 changes: 6 additions & 5 deletions src/Filter/NumberFormat.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,15 @@ class NumberFormat extends NumberParse
*/
public function filter($value)
{
if (!is_int($value)
&& !is_float($value)) {
if (!is_scalar($value)) {
return $value;
}

if (!is_int($value)
&& !is_float($value)
) {
$result = parent::filter($value);

} else {

ErrorHandler::start();

$result = $this->getFormatter()->format(
Expand All @@ -38,7 +40,6 @@ public function filter($value)
);

ErrorHandler::stop();

}

if (false !== $result) {
Expand Down
36 changes: 36 additions & 0 deletions test/Filter/AlnumTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -158,4 +158,40 @@ public function testAllowWhiteSpace()
$this->assertEquals($expected, $actual);
}
}

public function testFilterSupportArray()
{
$filter = new AlnumFilter();

$values = array(
'abc123' => 'abc123',
'abc 123' => 'abc123',
'abcxyz' => 'abcxyz',
'AZ@#4.3' => 'AZ43',
'' => ''
);

$actual = $filter->filter(array_keys($values));

$this->assertEquals(array_values($values), $actual);
}

public function returnUnfilteredDataProvider()
{
return array(
array(null),
array(new \stdClass())
);
}

/**
* @dataProvider returnUnfilteredDataProvider
* @return void
*/
public function testReturnUnfiltered($input)
{
$filter = new AlnumFilter();

$this->assertEquals($input, $filter->filter($input));
}
}
36 changes: 36 additions & 0 deletions test/Filter/AlphaTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -162,4 +162,40 @@ public function testAllowWhiteSpace()
$this->assertEquals($expected, $actual);
}
}

public function testFilterSupportArray()
{
$filter = new AlphaFilter();

$values = array(
'abc123' => 'abc',
'abc 123' => 'abc',
'abcxyz' => 'abcxyz',
'' => ''
);

$actual = $filter->filter(array_keys($values));

$this->assertEquals(array_values($values), $actual);
}

public function returnUnfilteredDataProvider()
{
return array(
array(null),
array(new \stdClass())
);
}

/**
* @dataProvider returnUnfilteredDataProvider
* @return void
*/
public function testReturnUnfiltered($input)
{
$filter = new AlphaFilter();

$this->assertEquals($input, $filter->filter($input));
}

}
24 changes: 24 additions & 0 deletions test/Filter/NumberFormatTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -139,4 +139,28 @@ public function formattedToNumberProvider()
),
);
}


public function returnUnfilteredDataProvider()
{
return array(
array(null),
array(new \stdClass()),
array(array(
'1.234.567,891',
'1.567,891'
))
);
}

/**
* @dataProvider returnUnfilteredDataProvider
* @return void
*/
public function testReturnUnfiltered($input)
{
$filter = new NumberFormatFilter('de_AT', NumberFormatter::DEFAULT_STYLE, NumberFormatter::TYPE_DOUBLE);

$this->assertEquals($input, $filter->filter($input));
}
}

0 comments on commit 69bd82b

Please sign in to comment.