forked from GNUsocial/gnu-social
[COMPOSER] Add new php-ffmpeg package
This commit is contained in:
192
vendor/symfony/validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
vendored
Normal file
192
vendor/symfony/validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
vendored
Normal file
@@ -0,0 +1,192 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\Validator\Tests\Constraints;
|
||||
|
||||
use Symfony\Component\Intl\Util\IntlTestHelper;
|
||||
use Symfony\Component\Validator\Constraint;
|
||||
|
||||
class ComparisonTest_Class
|
||||
{
|
||||
protected $value;
|
||||
|
||||
public function __construct($value)
|
||||
{
|
||||
$this->value = $value;
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return (string) $this->value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @author Daniel Holmes <daniel@danielholmes.org>
|
||||
*/
|
||||
abstract class AbstractComparisonValidatorTestCase extends AbstractConstraintValidatorTest
|
||||
{
|
||||
protected static function addPhp5Dot5Comparisons(array $comparisons)
|
||||
{
|
||||
if (\PHP_VERSION_ID < 50500) {
|
||||
return $comparisons;
|
||||
}
|
||||
|
||||
$result = $comparisons;
|
||||
|
||||
// Duplicate all tests involving DateTime objects to be tested with
|
||||
// DateTimeImmutable objects as well
|
||||
foreach ($comparisons as $comparison) {
|
||||
$add = false;
|
||||
|
||||
foreach ($comparison as $i => $value) {
|
||||
if ($value instanceof \DateTime) {
|
||||
$comparison[$i] = new \DateTimeImmutable(
|
||||
$value->format('Y-m-d H:i:s.u e'),
|
||||
$value->getTimezone()
|
||||
);
|
||||
$add = true;
|
||||
} elseif ('DateTime' === $value) {
|
||||
$comparison[$i] = 'DateTimeImmutable';
|
||||
$add = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($add) {
|
||||
$result[] = $comparison;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function provideInvalidConstraintOptions()
|
||||
{
|
||||
return array(
|
||||
array(null),
|
||||
array(array()),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideInvalidConstraintOptions
|
||||
* @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
|
||||
*/
|
||||
public function testThrowsConstraintExceptionIfNoValueOrProperty($options)
|
||||
{
|
||||
$this->createConstraint($options);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideAllValidComparisons
|
||||
*
|
||||
* @param mixed $dirtyValue
|
||||
* @param mixed $comparisonValue
|
||||
*/
|
||||
public function testValidComparisonToValue($dirtyValue, $comparisonValue)
|
||||
{
|
||||
$constraint = $this->createConstraint(array('value' => $comparisonValue));
|
||||
|
||||
$this->validator->validate($dirtyValue, $constraint);
|
||||
|
||||
$this->assertNoViolation();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function provideAllValidComparisons()
|
||||
{
|
||||
// The provider runs before setUp(), so we need to manually fix
|
||||
// the default timezone
|
||||
$this->setDefaultTimezone('UTC');
|
||||
|
||||
$comparisons = self::addPhp5Dot5Comparisons($this->provideValidComparisons());
|
||||
|
||||
$this->restoreDefaultTimezone();
|
||||
|
||||
return $comparisons;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
abstract public function provideValidComparisons();
|
||||
|
||||
/**
|
||||
* @dataProvider provideAllInvalidComparisons
|
||||
*
|
||||
* @param mixed $dirtyValue
|
||||
* @param mixed $dirtyValueAsString
|
||||
* @param mixed $comparedValue
|
||||
* @param mixed $comparedValueString
|
||||
* @param string $comparedValueType
|
||||
*/
|
||||
public function testInvalidComparisonToValue($dirtyValue, $dirtyValueAsString, $comparedValue, $comparedValueString, $comparedValueType)
|
||||
{
|
||||
// Conversion of dates to string differs between ICU versions
|
||||
// Make sure we have the correct version loaded
|
||||
if ($dirtyValue instanceof \DateTime || $dirtyValue instanceof \DateTimeInterface) {
|
||||
IntlTestHelper::requireIntl($this, '57.1');
|
||||
|
||||
if (\PHP_VERSION_ID < 50304 && !(\extension_loaded('intl') && method_exists('IntlDateFormatter', 'setTimeZone'))) {
|
||||
$this->markTestSkipped('Intl supports formatting DateTime objects since 5.3.4');
|
||||
}
|
||||
}
|
||||
|
||||
$constraint = $this->createConstraint(array('value' => $comparedValue));
|
||||
$constraint->message = 'Constraint Message';
|
||||
|
||||
$this->validator->validate($dirtyValue, $constraint);
|
||||
|
||||
$this->buildViolation('Constraint Message')
|
||||
->setParameter('{{ value }}', $dirtyValueAsString)
|
||||
->setParameter('{{ compared_value }}', $comparedValueString)
|
||||
->setParameter('{{ compared_value_type }}', $comparedValueType)
|
||||
->setCode($this->getErrorCode())
|
||||
->assertRaised();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function provideAllInvalidComparisons()
|
||||
{
|
||||
// The provider runs before setUp(), so we need to manually fix
|
||||
// the default timezone
|
||||
$this->setDefaultTimezone('UTC');
|
||||
|
||||
$comparisons = self::addPhp5Dot5Comparisons($this->provideInvalidComparisons());
|
||||
|
||||
$this->restoreDefaultTimezone();
|
||||
|
||||
return $comparisons;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
abstract public function provideInvalidComparisons();
|
||||
|
||||
/**
|
||||
* @param array|null $options Options for the constraint
|
||||
*
|
||||
* @return Constraint
|
||||
*/
|
||||
abstract protected function createConstraint(array $options = null);
|
||||
|
||||
/**
|
||||
* @return string|null
|
||||
*/
|
||||
protected function getErrorCode()
|
||||
{
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user