Security update for Core, with self-updated composer
[yaffs-website] / vendor / symfony / validator / Tests / Constraints / CallbackValidatorTest.php
index e87c9c4752a2ed693804c69cfb4c30b4640aa222..cb1b5c7b012c2beb963e613c426c205038bdf635 100644 (file)
@@ -14,8 +14,8 @@ namespace Symfony\Component\Validator\Tests\Constraints;
 use Symfony\Component\Validator\Constraint;
 use Symfony\Component\Validator\Constraints\Callback;
 use Symfony\Component\Validator\Constraints\CallbackValidator;
-use Symfony\Component\Validator\ExecutionContextInterface;
-use Symfony\Component\Validator\Validation;
+use Symfony\Component\Validator\Context\ExecutionContextInterface;
+use Symfony\Component\Validator\Test\ConstraintValidatorTestCase;
 
 class CallbackValidatorTest_Class
 {
@@ -44,13 +44,8 @@ class CallbackValidatorTest_Object
     }
 }
 
-class CallbackValidatorTest extends AbstractConstraintValidatorTest
+class CallbackValidatorTest extends ConstraintValidatorTestCase
 {
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
     protected function createValidator()
     {
         return new CallbackValidator();
@@ -185,106 +180,6 @@ class CallbackValidatorTest extends AbstractConstraintValidatorTest
             ->assertRaised();
     }
 
-    /**
-     * @group legacy
-     */
-    public function testLegacySingleMethodBc()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array('validate'));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('My message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacySingleMethodBcExplicitName()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array('methods' => array('validate')));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('My message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyMultipleMethodsBc()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array('validate', 'validateStatic'));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('My message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->buildNextViolation('Static message')
-            ->setParameter('{{ value }}', 'baz')
-            ->assertRaised();
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyMultipleMethodsBcExplicitName()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(
-            'methods' => array('validate', 'validateStatic'),
-        ));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('My message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->buildNextViolation('Static message')
-            ->setParameter('{{ value }}', 'baz')
-            ->assertRaised();
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacySingleStaticMethodBc()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(
-            array(__CLASS__.'_Class', 'validateCallback'),
-        ));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('Callback message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacySingleStaticMethodBcExplicitName()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(
-            'methods' => array(array(__CLASS__.'_Class', 'validateCallback')),
-        ));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('Callback message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
     /**
      * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
      */
@@ -305,20 +200,6 @@ class CallbackValidatorTest extends AbstractConstraintValidatorTest
         $this->validator->validate($object, new Callback(array('callback' => array('foo', 'bar'))));
     }
 
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     * @group legacy
-     */
-    public function testLegacyExpectEitherCallbackOrMethods()
-    {
-        $object = new CallbackValidatorTest_Object();
-
-        $this->validator->validate($object, new Callback(array(
-            'callback' => 'validate',
-            'methods' => array('validateStatic'),
-        )));
-    }
-
     public function testConstraintGetTargets()
     {
         $constraint = new Callback(array());
@@ -348,4 +229,28 @@ class CallbackValidatorTest extends AbstractConstraintValidatorTest
 
         $this->assertEquals(new Callback(array(__CLASS__.'_Class', 'validateCallback')), $constraint);
     }
+
+    public function testPayloadIsPassedToCallback()
+    {
+        $object = new \stdClass();
+        $payloadCopy = null;
+
+        $constraint = new Callback(array(
+            'callback' => function ($object, ExecutionContextInterface $constraint, $payload) use (&$payloadCopy) {
+                $payloadCopy = $payload;
+            },
+            'payload' => 'Hello world!',
+        ));
+        $this->validator->validate($object, $constraint);
+        $this->assertEquals('Hello world!', $payloadCopy);
+
+        $payloadCopy = null;
+        $constraint = new Callback(array(
+            'callback' => function ($object, ExecutionContextInterface $constraint, $payload) use (&$payloadCopy) {
+                $payloadCopy = $payload;
+            },
+        ));
+        $this->validator->validate($object, $constraint);
+        $this->assertNull($payloadCopy);
+    }
 }