Security update for Core, with self-updated composer
[yaffs-website] / vendor / symfony / validator / Tests / Validator / AbstractTest.php
similarity index 77%
rename from vendor/symfony/validator/Tests/Validator/Abstract2Dot5ApiTest.php
rename to vendor/symfony/validator/Tests/Validator/AbstractTest.php
index 5e97d523bf759a03430c37a35aebd1d3acb84590..77a7cc6c2bdc6815d8208ac32aabc9b00278301d 100644 (file)
@@ -20,19 +20,16 @@ use Symfony\Component\Validator\Constraints\Valid;
 use Symfony\Component\Validator\ConstraintViolationInterface;
 use Symfony\Component\Validator\Context\ExecutionContextInterface;
 use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\MetadataFactoryInterface;
+use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface;
 use Symfony\Component\Validator\Tests\Fixtures\Entity;
 use Symfony\Component\Validator\Tests\Fixtures\FailingConstraint;
-use Symfony\Component\Validator\Tests\Fixtures\FakeClassMetadata;
 use Symfony\Component\Validator\Tests\Fixtures\Reference;
 use Symfony\Component\Validator\Validator\ValidatorInterface;
 
 /**
- * Verifies that a validator satisfies the API of Symfony 2.5+.
- *
  * @author Bernhard Schussek <bschussek@gmail.com>
  */
-abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
+abstract class AbstractTest extends AbstractValidatorTest
 {
     /**
      * @var ValidatorInterface
@@ -146,11 +143,10 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
 
     public function testValidateInSeparateContext()
     {
-        $test = $this;
         $entity = new Entity();
         $entity->reference = new Reference();
 
-        $callback1 = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
+        $callback1 = function ($value, ExecutionContextInterface $context) use ($entity) {
             $violations = $context
                 ->getValidator()
                 // Since the validator is not context aware, the group must
@@ -159,30 +155,31 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
             ;
 
             /* @var ConstraintViolationInterface[] $violations */
-            $test->assertCount(1, $violations);
-            $test->assertSame('Message value', $violations[0]->getMessage());
-            $test->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-            $test->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-            $test->assertSame('', $violations[0]->getPropertyPath());
+            $this->assertCount(1, $violations);
+            $this->assertSame('Message value', $violations[0]->getMessage());
+            $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
+            $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
+            $this->assertSame('', $violations[0]->getPropertyPath());
+
             // The root is different as we're in a new context
-            $test->assertSame($entity->reference, $violations[0]->getRoot());
-            $test->assertSame($entity->reference, $violations[0]->getInvalidValue());
-            $test->assertNull($violations[0]->getPlural());
-            $test->assertNull($violations[0]->getCode());
+            $this->assertSame($entity->reference, $violations[0]->getRoot());
+            $this->assertSame($entity->reference, $violations[0]->getInvalidValue());
+            $this->assertNull($violations[0]->getPlural());
+            $this->assertNull($violations[0]->getCode());
 
             // Verify that this method is called
             $context->addViolation('Separate violation');
         };
 
-        $callback2 = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->referenceMetadata, $context->getMetadata());
-            $test->assertSame($entity->reference, $context->getRoot());
-            $test->assertSame($entity->reference, $context->getValue());
-            $test->assertSame($entity->reference, $value);
+        $callback2 = function ($value, ExecutionContextInterface $context) use ($entity) {
+            $this->assertSame($this::REFERENCE_CLASS, $context->getClassName());
+            $this->assertNull($context->getPropertyName());
+            $this->assertSame('', $context->getPropertyPath());
+            $this->assertSame('Group', $context->getGroup());
+            $this->assertSame($this->referenceMetadata, $context->getMetadata());
+            $this->assertSame($entity->reference, $context->getRoot());
+            $this->assertSame($entity->reference, $context->getValue());
+            $this->assertSame($entity->reference, $value);
 
             $context->addViolation('Message %param%', array('%param%' => 'value'));
         };
@@ -200,16 +197,15 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
 
         /* @var ConstraintViolationInterface[] $violations */
         $this->assertCount(1, $violations);
-        $test->assertSame('Separate violation', $violations[0]->getMessage());
+        $this->assertSame('Separate violation', $violations[0]->getMessage());
     }
 
     public function testValidateInContext()
     {
-        $test = $this;
         $entity = new Entity();
         $entity->reference = new Reference();
 
-        $callback1 = function ($value, ExecutionContextInterface $context) use ($test) {
+        $callback1 = function ($value, ExecutionContextInterface $context) {
             $previousValue = $context->getValue();
             $previousObject = $context->getObject();
             $previousMetadata = $context->getMetadata();
@@ -224,22 +220,22 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
             ;
 
             // context changes shouldn't leak out of the validate() call
-            $test->assertSame($previousValue, $context->getValue());
-            $test->assertSame($previousObject, $context->getObject());
-            $test->assertSame($previousMetadata, $context->getMetadata());
-            $test->assertSame($previousPath, $context->getPropertyPath());
-            $test->assertSame($previousGroup, $context->getGroup());
+            $this->assertSame($previousValue, $context->getValue());
+            $this->assertSame($previousObject, $context->getObject());
+            $this->assertSame($previousMetadata, $context->getMetadata());
+            $this->assertSame($previousPath, $context->getPropertyPath());
+            $this->assertSame($previousGroup, $context->getGroup());
         };
 
-        $callback2 = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('subpath', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->referenceMetadata, $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame($entity->reference, $context->getValue());
-            $test->assertSame($entity->reference, $value);
+        $callback2 = function ($value, ExecutionContextInterface $context) use ($entity) {
+            $this->assertSame($this::REFERENCE_CLASS, $context->getClassName());
+            $this->assertNull($context->getPropertyName());
+            $this->assertSame('subpath', $context->getPropertyPath());
+            $this->assertSame('Group', $context->getGroup());
+            $this->assertSame($this->referenceMetadata, $context->getMetadata());
+            $this->assertSame($entity, $context->getRoot());
+            $this->assertSame($entity->reference, $context->getValue());
+            $this->assertSame($entity->reference, $value);
 
             $context->addViolation('Message %param%', array('%param%' => 'value'));
         };
@@ -269,11 +265,10 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
 
     public function testValidateArrayInContext()
     {
-        $test = $this;
         $entity = new Entity();
         $entity->reference = new Reference();
 
-        $callback1 = function ($value, ExecutionContextInterface $context) use ($test) {
+        $callback1 = function ($value, ExecutionContextInterface $context) {
             $previousValue = $context->getValue();
             $previousObject = $context->getObject();
             $previousMetadata = $context->getMetadata();
@@ -288,22 +283,22 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
             ;
 
             // context changes shouldn't leak out of the validate() call
-            $test->assertSame($previousValue, $context->getValue());
-            $test->assertSame($previousObject, $context->getObject());
-            $test->assertSame($previousMetadata, $context->getMetadata());
-            $test->assertSame($previousPath, $context->getPropertyPath());
-            $test->assertSame($previousGroup, $context->getGroup());
+            $this->assertSame($previousValue, $context->getValue());
+            $this->assertSame($previousObject, $context->getObject());
+            $this->assertSame($previousMetadata, $context->getMetadata());
+            $this->assertSame($previousPath, $context->getPropertyPath());
+            $this->assertSame($previousGroup, $context->getGroup());
         };
 
-        $callback2 = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('subpath[key]', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->referenceMetadata, $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame($entity->reference, $context->getValue());
-            $test->assertSame($entity->reference, $value);
+        $callback2 = function ($value, ExecutionContextInterface $context) use ($entity) {
+            $this->assertSame($this::REFERENCE_CLASS, $context->getClassName());
+            $this->assertNull($context->getPropertyName());
+            $this->assertSame('subpath[key]', $context->getPropertyPath());
+            $this->assertSame('Group', $context->getGroup());
+            $this->assertSame($this->referenceMetadata, $context->getMetadata());
+            $this->assertSame($entity, $context->getRoot());
+            $this->assertSame($entity->reference, $context->getValue());
+            $this->assertSame($entity->reference, $value);
 
             $context->addViolation('Message %param%', array('%param%' => 'value'));
         };
@@ -333,19 +328,18 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
 
     public function testTraverseTraversableByDefault()
     {
-        $test = $this;
         $entity = new Entity();
         $traversable = new \ArrayIterator(array('key' => $entity));
 
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity, $traversable) {
-            $test->assertSame($test::ENTITY_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('[key]', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->metadata, $context->getMetadata());
-            $test->assertSame($traversable, $context->getRoot());
-            $test->assertSame($entity, $context->getValue());
-            $test->assertSame($entity, $value);
+        $callback = function ($value, ExecutionContextInterface $context) use ($entity, $traversable) {
+            $this->assertSame($this::ENTITY_CLASS, $context->getClassName());
+            $this->assertNull($context->getPropertyName());
+            $this->assertSame('[key]', $context->getPropertyPath());
+            $this->assertSame('Group', $context->getGroup());
+            $this->assertSame($this->metadata, $context->getMetadata());
+            $this->assertSame($traversable, $context->getRoot());
+            $this->assertSame($entity, $context->getValue());
+            $this->assertSame($entity, $value);
 
             $context->addViolation('Message %param%', array('%param%' => 'value'));
         };
@@ -396,12 +390,11 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
 
     public function testTraversalDisabledOnClass()
     {
-        $test = $this;
         $entity = new Entity();
         $traversable = new \ArrayIterator(array('key' => $entity));
 
-        $callback = function ($value, ExecutionContextInterface $context) use ($test) {
-            $test->fail('Should not be called');
+        $callback = function ($value, ExecutionContextInterface $context) {
+            $this->fail('Should not be called');
         };
 
         $traversableMetadata = new ClassMetadata('ArrayIterator');
@@ -433,12 +426,11 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
 
     public function testReferenceTraversalDisabledOnClass()
     {
-        $test = $this;
         $entity = new Entity();
         $entity->reference = new \ArrayIterator(array('key' => new Reference()));
 
-        $callback = function ($value, ExecutionContextInterface $context) use ($test) {
-            $test->fail('Should not be called');
+        $callback = function ($value, ExecutionContextInterface $context) {
+            $this->fail('Should not be called');
         };
 
         $traversableMetadata = new ClassMetadata('ArrayIterator');
@@ -459,12 +451,11 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
 
     public function testReferenceTraversalEnabledOnReferenceDisabledOnClass()
     {
-        $test = $this;
         $entity = new Entity();
         $entity->reference = new \ArrayIterator(array('key' => new Reference()));
 
-        $callback = function ($value, ExecutionContextInterface $context) use ($test) {
-            $test->fail('Should not be called');
+        $callback = function ($value, ExecutionContextInterface $context) {
+            $this->fail('Should not be called');
         };
 
         $traversableMetadata = new ClassMetadata('ArrayIterator');
@@ -487,12 +478,11 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
 
     public function testReferenceTraversalDisabledOnReferenceEnabledOnClass()
     {
-        $test = $this;
         $entity = new Entity();
         $entity->reference = new \ArrayIterator(array('key' => new Reference()));
 
-        $callback = function ($value, ExecutionContextInterface $context) use ($test) {
-            $test->fail('Should not be called');
+        $callback = function ($value, ExecutionContextInterface $context) {
+            $this->fail('Should not be called');
         };
 
         $traversableMetadata = new ClassMetadata('ArrayIterator');
@@ -542,63 +532,6 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
         $this->assertSame(42, $violations[0]->getCode());
     }
 
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnsupportedMetadataException
-     * @group legacy
-     */
-    public function testMetadataMustImplementClassMetadataInterface()
-    {
-        $entity = new Entity();
-
-        $metadata = $this->getMockBuilder('Symfony\Component\Validator\Tests\Fixtures\LegacyClassMetadata')->getMock();
-        $metadata->expects($this->any())
-            ->method('getClassName')
-            ->will($this->returnValue(get_class($entity)));
-
-        $this->metadataFactory->addMetadata($metadata);
-
-        $this->validator->validate($entity);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnsupportedMetadataException
-     * @group legacy
-     */
-    public function testReferenceMetadataMustImplementClassMetadataInterface()
-    {
-        $entity = new Entity();
-        $entity->reference = new Reference();
-
-        $metadata = $this->getMockBuilder('Symfony\Component\Validator\Tests\Fixtures\LegacyClassMetadata')->getMock();
-        $metadata->expects($this->any())
-            ->method('getClassName')
-            ->will($this->returnValue(get_class($entity->reference)));
-
-        $this->metadataFactory->addMetadata($metadata);
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-
-        $this->validator->validate($entity);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnsupportedMetadataException
-     * @group legacy
-     */
-    public function testLegacyPropertyMetadataMustImplementPropertyMetadataInterface()
-    {
-        $entity = new Entity();
-
-        // Legacy interface
-        $propertyMetadata = $this->getMockBuilder('Symfony\Component\Validator\MetadataInterface')->getMock();
-        $metadata = new FakeClassMetadata(get_class($entity));
-        $metadata->addCustomPropertyMetadata('firstName', $propertyMetadata);
-
-        $this->metadataFactory->addMetadata($metadata);
-
-        $this->validator->validate($entity);
-    }
-
     public function testNoDuplicateValidationIfClassConstraintInMultipleGroups()
     {
         $entity = new Entity();
@@ -647,14 +580,13 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
 
     public function testAccessCurrentObject()
     {
-        $test = $this;
         $called = false;
         $entity = new Entity();
         $entity->firstName = 'Bernhard';
 
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity, &$called) {
+        $callback = function ($value, ExecutionContextInterface $context) use ($entity, &$called) {
             $called = true;
-            $test->assertSame($entity, $context->getObject());
+            $this->assertSame($entity, $context->getObject());
         };
 
         $this->metadata->addConstraint(new Callback($callback));
@@ -667,7 +599,6 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
 
     public function testInitializeObjectsOnFirstValidation()
     {
-        $test = $this;
         $entity = new Entity();
         $entity->initialized = false;
 
@@ -694,8 +625,8 @@ abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
         // prepare constraint which
         // * checks that "initialized" is set to true
         // * validates the object again
-        $callback = function ($object, ExecutionContextInterface $context) use ($test) {
-            $test->assertTrue($object->initialized);
+        $callback = function ($object, ExecutionContextInterface $context) {
+            $this->assertTrue($object->initialized);
 
             // validate again in same group
             $validator = $context->getValidator()->inContext($context);