Upgrade 1-11.38

This commit is contained in:
xesmyd
2026-03-30 14:10:30 +02:00
parent f2a7e6d1fc
commit ac648ef29d
24665 changed files with 69682 additions and 2205004 deletions
@@ -1914,6 +1914,25 @@ abstract class AbstractBootstrap3LayoutTest extends AbstractLayoutTest
);
}
public function testMoneyWithoutCurrency()
{
$form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\MoneyType', 1234.56, array(
'currency' => false,
));
$this->assertWidgetMatchesXpath($form->createView(), array('id' => 'my&id', 'attr' => array('class' => 'my&class')),
'/input
[@id="my&id"]
[@type="text"]
[@name="name"]
[@class="my&class form-control"]
[@value="1234.56"]
[not(preceding-sibling::*)]
[not(following-sibling::*)]
'
);
}
public function testNumber()
{
$form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\NumberType', 1234.56);
+3 -3
View File
@@ -58,7 +58,7 @@ abstract class AbstractLayoutTest extends FormIntegrationTestCase
protected function assertMatchesXpath($html, $expression, $count = 1)
{
$dom = new \DomDocument('UTF-8');
$dom = new \DOMDocument('UTF-8');
try {
// Wrap in <root> node so we can load HTML with multiple tags at
// the top level
@@ -78,8 +78,8 @@ abstract class AbstractLayoutTest extends FormIntegrationTestCase
$this->fail(sprintf(
"Failed asserting that \n\n%s\n\nmatches exactly %s. Matches %s in \n\n%s",
$expression,
$count == 1 ? 'once' : $count.' times',
$nodeList->length == 1 ? 'once' : $nodeList->length.' times',
1 == $count ? 'once' : $count.' times',
1 == $nodeList->length ? 'once' : $nodeList->length.' times',
// strip away <root> and </root>
substr($dom->saveHTML(), 6, -8)
));
@@ -353,12 +353,24 @@ abstract class AbstractRequestHandlerTest extends TestCase
);
}
public function testUploadedFilesAreAccepted()
{
$this->assertTrue($this->requestHandler->isFileUpload($this->getMockFile()));
}
public function testInvalidFilesAreRejected()
{
$this->assertFalse($this->requestHandler->isFileUpload($this->getInvalidFile()));
}
abstract protected function setRequestData($method, $data, $files = array());
abstract protected function getRequestHandler();
abstract protected function getMockFile($suffix = '');
abstract protected function getInvalidFile();
protected function getMockForm($name, $method = null, $compound = true)
{
$config = $this->getMockBuilder('Symfony\Component\Form\FormConfigInterface')->getMock();
+7 -4
View File
@@ -13,6 +13,7 @@ namespace Symfony\Component\Form\Tests;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Form\ButtonBuilder;
use Symfony\Component\Form\Exception\InvalidArgumentException;
/**
* @author Alexander Cheprasov <cheprasov.84@ya.ru>
@@ -53,10 +54,12 @@ class ButtonBuilderTest extends TestCase
*/
public function testInvalidNames($name)
{
$this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}(
'\Symfony\Component\Form\Exception\InvalidArgumentException',
'Buttons cannot have empty names.'
);
if (method_exists($this, 'expectException')) {
$this->expectException(InvalidArgumentException::class);
$this->expectExceptionMessage('Buttons cannot have empty names.');
} else {
$this->setExpectedException(InvalidArgumentException::class, 'Buttons cannot have empty names.');
}
new ButtonBuilder($name);
}
}
+18 -2
View File
@@ -30,6 +30,20 @@ class ButtonTest extends TestCase
$this->factory = $this->getMockBuilder('Symfony\Component\Form\FormFactoryInterface')->getMock();
}
/**
* @expectedException \Symfony\Component\Form\Exception\AlreadySubmittedException
*/
public function testSetParentOnSubmittedButton()
{
$button = $this->getButtonBuilder('button')
->getForm()
;
$button->submit('');
$button->setParent($this->getFormBuilder('form')->getForm());
}
/**
* @dataProvider getDisabledStates
*/
@@ -37,11 +51,13 @@ class ButtonTest extends TestCase
{
$form = $this->getFormBuilder('form')
->setDisabled($parentDisabled)
->getForm();
->getForm()
;
$button = $this->getButtonBuilder('button')
->setDisabled($buttonDisabled)
->getForm();
->getForm()
;
$button->setParent($form);
+24 -2
View File
@@ -308,12 +308,12 @@ class CompoundFormTest extends AbstractFormTest
$this->form[] = $child;
$this->assertTrue(isset($this->form['foo']));
$this->assertArrayHasKey('foo', $this->form);
$this->assertSame($child, $this->form['foo']);
unset($this->form['foo']);
$this->assertFalse(isset($this->form['foo']));
$this->assertArrayNotHasKey('foo', $this->form);
}
public function testCountable()
@@ -1014,6 +1014,28 @@ class CompoundFormTest extends AbstractFormTest
$this->assertSame($button, $this->form->getClickedButton());
}
public function testDisabledButtonIsNotSubmitted()
{
$button = new SubmitButtonBuilder('submit');
$submit = $button
->setDisabled(true)
->getForm();
$form = $this->createForm()
->add($this->getBuilder('text')->getForm())
->add($submit)
;
$form->submit(array(
'text' => '',
'submit' => '',
));
$this->assertTrue($submit->isDisabled());
$this->assertFalse($submit->isClicked());
$this->assertFalse($submit->isSubmitted());
}
protected function createForm()
{
return $this->getBuilder()
@@ -41,8 +41,6 @@ class PropertyPathMapperTest extends TestCase
}
/**
* @param $path
*
* @return \PHPUnit_Framework_MockObject_MockObject
*/
private function getPropertyPath($path)
@@ -181,7 +181,12 @@ class DateIntervalToArrayTransformerTest extends DateIntervalTestCase
'minutes' => '',
'seconds' => '6',
);
$this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}(TransformationFailedException::class, 'This amount of "minutes" is invalid');
if (method_exists($this, 'expectException')) {
$this->expectException(TransformationFailedException::class);
$this->expectExceptionMessage('This amount of "minutes" is invalid');
} else {
$this->setExpectedException(TransformationFailedException::class, 'This amount of "minutes" is invalid');
}
$transformer->reverseTransform($input);
}
@@ -191,7 +196,12 @@ class DateIntervalToArrayTransformerTest extends DateIntervalTestCase
$input = array(
'invert' => '1',
);
$this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}(TransformationFailedException::class, 'The value of "invert" must be boolean');
if (method_exists($this, 'expectException')) {
$this->expectException(TransformationFailedException::class);
$this->expectExceptionMessage('The value of "invert" must be boolean');
} else {
$this->setExpectedException(TransformationFailedException::class, 'The value of "invert" must be boolean');
}
$transformer->reverseTransform($input);
}
@@ -1,22 +0,0 @@
<?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\Form\Tests\Extension\Core\DataTransformer;
use PHPUnit\Framework\TestCase;
abstract class DateTimeTestCase extends TestCase
{
public static function assertDateTimeEquals(\DateTime $expected, \DateTime $actual)
{
self::assertEquals($expected->format('U'), $actual->format('U'));
}
}
@@ -11,9 +11,10 @@
namespace Symfony\Component\Form\Tests\Extension\Core\DataTransformer;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToArrayTransformer;
class DateTimeToArrayTransformerTest extends DateTimeTestCase
class DateTimeToArrayTransformerTest extends TestCase
{
public function testTransform()
{
@@ -160,7 +161,7 @@ class DateTimeToArrayTransformerTest extends DateTimeTestCase
$output = new \DateTime('2010-02-03 04:05:06 UTC');
$this->assertDateTimeEquals($output, $transformer->reverseTransform($input));
$this->assertEquals($output, $transformer->reverseTransform($input));
}
public function testReverseTransformWithSomeZero()
@@ -178,7 +179,7 @@ class DateTimeToArrayTransformerTest extends DateTimeTestCase
$output = new \DateTime('2010-02-03 04:00:00 UTC');
$this->assertDateTimeEquals($output, $transformer->reverseTransform($input));
$this->assertEquals($output, $transformer->reverseTransform($input));
}
public function testReverseTransformCompletelyEmpty()
@@ -323,7 +324,7 @@ class DateTimeToArrayTransformerTest extends DateTimeTestCase
$output = new \DateTime('2010-02-03 04:05:06 Asia/Hong_Kong');
$output->setTimezone(new \DateTimeZone('America/New_York'));
$this->assertDateTimeEquals($output, $transformer->reverseTransform($input));
$this->assertEquals($output, $transformer->reverseTransform($input));
}
public function testReverseTransformToDifferentTimezone()
@@ -342,7 +343,7 @@ class DateTimeToArrayTransformerTest extends DateTimeTestCase
$output = new \DateTime('2010-02-03 04:05:06 UTC');
$output->setTimezone(new \DateTimeZone('Asia/Hong_Kong'));
$this->assertDateTimeEquals($output, $transformer->reverseTransform($input));
$this->assertEquals($output, $transformer->reverseTransform($input));
}
/**
@@ -11,10 +11,11 @@
namespace Symfony\Component\Form\Tests\Extension\Core\DataTransformer;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer;
use Symfony\Component\Intl\Util\IntlTestHelper;
class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
class DateTimeToLocalizedStringTransformerTest extends TestCase
{
protected $dateTime;
protected $dateTimeWithoutSeconds;
@@ -223,7 +224,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
{
$transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC', null, \IntlDateFormatter::FULL);
$this->assertDateTimeEquals($this->dateTime, $transformer->reverseTransform('03.02.2010, 04:05:06 GMT+00:00'));
$this->assertEquals($this->dateTime, $transformer->reverseTransform('03.02.2010, 04:05:06 GMT+00:00'));
}
public function testReverseTransformFromDifferentLocale()
@@ -232,7 +233,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
$transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC');
$this->assertDateTimeEquals($this->dateTimeWithoutSeconds, $transformer->reverseTransform('Feb 3, 2010, 04:05 AM'));
$this->assertEquals($this->dateTimeWithoutSeconds, $transformer->reverseTransform('Feb 3, 2010, 04:05 AM'));
}
public function testReverseTransformWithDifferentTimezones()
@@ -242,7 +243,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
$dateTime = new \DateTime('2010-02-03 04:05:00 Asia/Hong_Kong');
$dateTime->setTimezone(new \DateTimeZone('America/New_York'));
$this->assertDateTimeEquals($dateTime, $transformer->reverseTransform('03.02.2010, 04:05'));
$this->assertEquals($dateTime, $transformer->reverseTransform('03.02.2010, 04:05'));
}
public function testReverseTransformOnlyDateWithDifferentTimezones()
@@ -251,21 +252,21 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
$dateTime = new \DateTime('2017-01-10 11:00', new \DateTimeZone('Europe/Berlin'));
$this->assertDateTimeEquals($dateTime, $transformer->reverseTransform('2017-01-10'));
$this->assertEquals($dateTime, $transformer->reverseTransform('2017-01-10'));
}
public function testReverseTransformWithDifferentPatterns()
{
$transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC', \IntlDateFormatter::FULL, \IntlDateFormatter::FULL, \IntlDateFormatter::GREGORIAN, 'MM*yyyy*dd HH|mm|ss');
$this->assertDateTimeEquals($this->dateTime, $transformer->reverseTransform('02*2010*03 04|05|06'));
$this->assertEquals($this->dateTime, $transformer->reverseTransform('02*2010*03 04|05|06'));
}
public function testReverseTransformDateOnlyWithDstIssue()
{
$transformer = new DateTimeToLocalizedStringTransformer('Europe/Rome', 'Europe/Rome', \IntlDateFormatter::FULL, \IntlDateFormatter::FULL, \IntlDateFormatter::GREGORIAN, 'dd/MM/yyyy');
$this->assertDateTimeEquals(
$this->assertEquals(
new \DateTime('1978-05-28', new \DateTimeZone('Europe/Rome')),
$transformer->reverseTransform('28/05/1978')
);
@@ -275,7 +276,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
{
$transformer = new DateTimeToLocalizedStringTransformer('Europe/Rome', 'Europe/Rome', \IntlDateFormatter::FULL, \IntlDateFormatter::FULL, \IntlDateFormatter::GREGORIAN, "'day': dd 'month': MM 'year': yyyy");
$this->assertDateTimeEquals(
$this->assertEquals(
new \DateTime('1978-05-28', new \DateTimeZone('Europe/Rome')),
$transformer->reverseTransform('day: 28 month: 05 year: 1978')
);
@@ -329,7 +330,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
{
$transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC', \IntlDateFormatter::SHORT);
$this->assertDateTimeEquals($this->dateTimeWithoutSeconds, $transformer->reverseTransform('31.04.10 04:05'));
$this->assertEquals($this->dateTimeWithoutSeconds, $transformer->reverseTransform('31.04.10 04:05'));
}
/**
@@ -340,4 +341,22 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
$transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC');
$transformer->reverseTransform('1789-07-14');
}
/**
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
*/
public function testReverseTransformFiveDigitYears()
{
$transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC', null, null, \IntlDateFormatter::GREGORIAN, 'yyyy-MM-dd');
$transformer->reverseTransform('20107-03-21');
}
/**
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
*/
public function testReverseTransformFiveDigitYearsWithTimestamp()
{
$transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC', null, null, \IntlDateFormatter::GREGORIAN, 'yyyy-MM-dd HH:mm:ss');
$transformer->reverseTransform('20107-03-21 12:34:56');
}
}
@@ -11,9 +11,10 @@
namespace Symfony\Component\Form\Tests\Extension\Core\DataTransformer;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToRfc3339Transformer;
class DateTimeToRfc3339TransformerTest extends DateTimeTestCase
class DateTimeToRfc3339TransformerTest extends TestCase
{
protected $dateTime;
protected $dateTimeWithoutSeconds;
@@ -106,9 +107,9 @@ class DateTimeToRfc3339TransformerTest extends DateTimeTestCase
$transformer = new DateTimeToRfc3339Transformer($toTz, $fromTz);
if (null !== $to) {
$this->assertDateTimeEquals(new \DateTime($to), $transformer->reverseTransform($from));
$this->assertEquals(new \DateTime($to), $transformer->reverseTransform($from));
} else {
$this->assertSame($to, $transformer->reverseTransform($from));
$this->assertNull($transformer->reverseTransform($from));
}
}
@@ -11,9 +11,10 @@
namespace Symfony\Component\Form\Tests\Extension\Core\DataTransformer;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer;
class DateTimeToStringTransformerTest extends DateTimeTestCase
class DateTimeToStringTransformerTest extends TestCase
{
public function dataProvider()
{
@@ -124,7 +125,7 @@ class DateTimeToStringTransformerTest extends DateTimeTestCase
$output = new \DateTime($output);
$this->assertDateTimeEquals($output, $reverseTransformer->reverseTransform($input));
$this->assertEquals($output, $reverseTransformer->reverseTransform($input));
}
public function testReverseTransformEmpty()
@@ -142,7 +143,7 @@ class DateTimeToStringTransformerTest extends DateTimeTestCase
$input = $output->format('Y-m-d H:i:s');
$output->setTimezone(new \DateTimeZone('America/New_York'));
$this->assertDateTimeEquals($output, $reverseTransformer->reverseTransform($input));
$this->assertEquals($output, $reverseTransformer->reverseTransform($input));
}
public function testReverseTransformExpectsString()
@@ -11,9 +11,10 @@
namespace Symfony\Component\Form\Tests\Extension\Core\DataTransformer;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToTimestampTransformer;
class DateTimeToTimestampTransformerTest extends DateTimeTestCase
class DateTimeToTimestampTransformerTest extends TestCase
{
public function testTransform()
{
@@ -83,7 +84,7 @@ class DateTimeToTimestampTransformerTest extends DateTimeTestCase
$output = new \DateTime('2010-02-03 04:05:06 UTC');
$input = $output->format('U');
$this->assertDateTimeEquals($output, $reverseTransformer->reverseTransform($input));
$this->assertEquals($output, $reverseTransformer->reverseTransform($input));
}
public function testReverseTransformEmpty()
@@ -101,7 +102,7 @@ class DateTimeToTimestampTransformerTest extends DateTimeTestCase
$input = $output->format('U');
$output->setTimezone(new \DateTimeZone('Asia/Hong_Kong'));
$this->assertDateTimeEquals($output, $reverseTransformer->reverseTransform($input));
$this->assertEquals($output, $reverseTransformer->reverseTransform($input));
}
public function testReverseTransformExpectsValidTimestamp()
@@ -72,4 +72,12 @@ class MoneyToLocalizedStringTransformerTest extends TestCase
$this->assertNull($transformer->reverseTransform(''));
}
public function testFloatToIntConversionMismatchOnReversTransform()
{
$transformer = new MoneyToLocalizedStringTransformer(null, null, null, 100);
IntlTestHelper::requireFullIntl($this, false);
\Locale::setDefault('de_AT');
$this->assertSame(3655, (int) $transformer->reverseTransform('36,55'));
}
}
@@ -119,4 +119,187 @@ class PercentToLocalizedStringTransformerTest extends TestCase
$transformer->reverseTransform(1);
}
public function testDecimalSeparatorMayBeDotIfGroupingSeparatorIsNotDot()
{
IntlTestHelper::requireFullIntl($this, '4.8.1.1');
\Locale::setDefault('fr');
$transformer = new PercentToLocalizedStringTransformer(1, 'integer');
// completely valid format
$this->assertEquals(1234.5, $transformer->reverseTransform('1 234,5'));
// accept dots
$this->assertEquals(1234.5, $transformer->reverseTransform('1 234.5'));
// omit group separator
$this->assertEquals(1234.5, $transformer->reverseTransform('1234,5'));
$this->assertEquals(1234.5, $transformer->reverseTransform('1234.5'));
}
/**
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
*/
public function testDecimalSeparatorMayNotBeDotIfGroupingSeparatorIsDot()
{
// Since we test against "de_DE", we need the full implementation
IntlTestHelper::requireFullIntl($this, '4.8.1.1');
\Locale::setDefault('de_DE');
$transformer = new PercentToLocalizedStringTransformer(1, 'integer');
$transformer->reverseTransform('1.234.5');
}
/**
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
*/
public function testDecimalSeparatorMayNotBeDotIfGroupingSeparatorIsDotWithNoGroupSep()
{
// Since we test against "de_DE", we need the full implementation
IntlTestHelper::requireFullIntl($this, '4.8.1.1');
\Locale::setDefault('de_DE');
$transformer = new PercentToLocalizedStringTransformer(1, 'integer');
$transformer->reverseTransform('1234.5');
}
public function testDecimalSeparatorMayBeDotIfGroupingSeparatorIsDotButNoGroupingUsed()
{
// Since we test against other locales, we need the full implementation
IntlTestHelper::requireFullIntl($this, false);
\Locale::setDefault('fr');
$transformer = new PercentToLocalizedStringTransformer(1, 'integer');
$this->assertEquals(1234.5, $transformer->reverseTransform('1234,5'));
$this->assertEquals(1234.5, $transformer->reverseTransform('1234.5'));
}
public function testDecimalSeparatorMayBeCommaIfGroupingSeparatorIsNotComma()
{
// Since we test against other locales, we need the full implementation
IntlTestHelper::requireFullIntl($this, '4.8.1.1');
\Locale::setDefault('bg');
$transformer = new PercentToLocalizedStringTransformer(1, 'integer');
// completely valid format
$this->assertEquals(1234.5, $transformer->reverseTransform('1 234.5'));
// accept commas
$this->assertEquals(1234.5, $transformer->reverseTransform('1 234,5'));
// omit group separator
$this->assertEquals(1234.5, $transformer->reverseTransform('1234.5'));
$this->assertEquals(1234.5, $transformer->reverseTransform('1234,5'));
}
/**
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
*/
public function testDecimalSeparatorMayNotBeCommaIfGroupingSeparatorIsComma()
{
IntlTestHelper::requireFullIntl($this, '4.8.1.1');
$transformer = new PercentToLocalizedStringTransformer(1, 'integer');
$transformer->reverseTransform('1,234,5');
}
/**
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
*/
public function testDecimalSeparatorMayNotBeCommaIfGroupingSeparatorIsCommaWithNoGroupSep()
{
IntlTestHelper::requireFullIntl($this, '4.8.1.1');
$transformer = new PercentToLocalizedStringTransformer(1, 'integer');
$transformer->reverseTransform('1234,5');
}
public function testDecimalSeparatorMayBeCommaIfGroupingSeparatorIsCommaButNoGroupingUsed()
{
$formatter = new \NumberFormatter(\Locale::getDefault(), \NumberFormatter::DECIMAL);
$formatter->setAttribute(\NumberFormatter::FRACTION_DIGITS, 1);
$formatter->setAttribute(\NumberFormatter::GROUPING_USED, false);
$transformer = $this->getMockBuilder('Symfony\Component\Form\Extension\Core\DataTransformer\PercentToLocalizedStringTransformer')
->setMethods(array('getNumberFormatter'))
->setConstructorArgs(array(1, 'integer'))
->getMock();
$transformer->expects($this->any())
->method('getNumberFormatter')
->willReturn($formatter);
$this->assertEquals(1234.5, $transformer->reverseTransform('1234,5'));
$this->assertEquals(1234.5, $transformer->reverseTransform('1234.5'));
}
/**
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
*/
public function testReverseTransformDisallowsLeadingExtraCharacters()
{
$transformer = new PercentToLocalizedStringTransformer();
$transformer->reverseTransform('foo123');
}
/**
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
* @expectedExceptionMessage The number contains unrecognized characters: "foo3"
*/
public function testReverseTransformDisallowsCenteredExtraCharacters()
{
$transformer = new PercentToLocalizedStringTransformer();
$transformer->reverseTransform('12foo3');
}
/**
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
* @expectedExceptionMessage The number contains unrecognized characters: "foo8"
* @requires extension mbstring
*/
public function testReverseTransformDisallowsCenteredExtraCharactersMultibyte()
{
// Since we test against other locales, we need the full implementation
IntlTestHelper::requireFullIntl($this, false);
\Locale::setDefault('ru');
$transformer = new PercentToLocalizedStringTransformer();
$transformer->reverseTransform("12\xc2\xa0345,67foo8");
}
/**
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
* @expectedExceptionMessage The number contains unrecognized characters: "foo"
*/
public function testReverseTransformDisallowsTrailingExtraCharacters()
{
$transformer = new PercentToLocalizedStringTransformer();
$transformer->reverseTransform('123foo');
}
/**
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
* @expectedExceptionMessage The number contains unrecognized characters: "foo"
* @requires extension mbstring
*/
public function testReverseTransformDisallowsTrailingExtraCharactersMultibyte()
{
// Since we test against other locales, we need the full implementation
IntlTestHelper::requireFullIntl($this, false);
\Locale::setDefault('ru');
$transformer = new PercentToLocalizedStringTransformer();
$transformer->reverseTransform("12\xc2\xa0345,678foo");
}
}
@@ -196,7 +196,7 @@ class ChoiceTypeTest extends BaseTypeTest
'choices' => $this->choices,
));
$this->assertTrue(isset($form['placeholder']));
$this->assertArrayHasKey('placeholder', $form);
$this->assertCount(count($this->choices) + 1, $form, 'Each choice should become a new field');
}
@@ -209,7 +209,7 @@ class ChoiceTypeTest extends BaseTypeTest
'choices' => $this->choices,
));
$this->assertFalse(isset($form['placeholder']));
$this->assertArrayNotHasKey('placeholder', $form);
$this->assertCount(count($this->choices), $form, 'Each choice should become a new field');
}
@@ -222,7 +222,7 @@ class ChoiceTypeTest extends BaseTypeTest
'choices' => $this->choices,
));
$this->assertFalse(isset($form['placeholder']));
$this->assertArrayNotHasKey('placeholder', $form);
$this->assertCount(count($this->choices), $form, 'Each choice should become a new field');
}
@@ -238,7 +238,7 @@ class ChoiceTypeTest extends BaseTypeTest
),
));
$this->assertFalse(isset($form['placeholder']));
$this->assertArrayNotHasKey('placeholder', $form);
$this->assertCount(2, $form, 'Each choice should become a new field');
}
@@ -295,7 +295,7 @@ class ChoiceTypeTest extends BaseTypeTest
'placeholder' => 'Select an option',
));
$this->assertTrue(isset($form['placeholder']), 'Placeholder should be set');
$this->assertArrayHasKey('placeholder', $form, 'Placeholder should be set');
$this->assertCount(3, $form, 'Each choice should become a new field, placeholder included');
$view = $form->createView();
@@ -319,7 +319,7 @@ class ChoiceTypeTest extends BaseTypeTest
'placeholder' => 'Select an option',
));
$this->assertTrue(isset($form['placeholder']), 'Placeholder should be set');
$this->assertArrayHasKey('placeholder', $form, 'Placeholder should be set');
$this->assertCount(3, $form, 'Each choice should become a new field, placeholder included');
$view = $form->createView();
@@ -48,7 +48,7 @@ class CollectionTypeTest extends BaseTypeTest
$form->setData(array('foo@baz.com'));
$this->assertInstanceOf('Symfony\Component\Form\Form', $form[0]);
$this->assertFalse(isset($form[1]));
$this->assertArrayNotHasKey(1, $form);
$this->assertCount(1, $form);
$this->assertEquals('foo@baz.com', $form[0]->getData());
$formAttrs0 = $form[0]->getConfig()->getOption('attr');
@@ -227,7 +227,7 @@ class CollectionTypeTest extends BaseTypeTest
));
$data = $form->getData();
$this->assertFalse(isset($data['__name__']));
$this->assertArrayNotHasKey('__name__', $data);
}
public function testGetDataDoesNotContainsPrototypeNameAfterDataAreSet()
@@ -240,7 +240,7 @@ class CollectionTypeTest extends BaseTypeTest
$form->setData(array('foobar.png'));
$data = $form->getData();
$this->assertFalse(isset($data['__name__']));
$this->assertArrayNotHasKey('__name__', $data);
}
public function testPrototypeNameOption()
@@ -49,7 +49,7 @@ class DateTimeTypeTest extends BaseTypeTest
$dateTime = new \DateTime('2010-06-02 03:04:00 UTC');
$this->assertDateTimeEquals($dateTime, $form->getData());
$this->assertEquals($dateTime, $form->getData());
}
public function testSubmitString()
@@ -133,7 +133,7 @@ class DateTimeTypeTest extends BaseTypeTest
$form->submit($input);
$this->assertDateTimeEquals(new \DateTime('2010-06-02 03:00:00 UTC'), $form->getData());
$this->assertEquals(new \DateTime('2010-06-02 03:00:00 UTC'), $form->getData());
}
public function testSubmitWithSeconds()
@@ -165,7 +165,7 @@ class DateTimeTypeTest extends BaseTypeTest
$form->submit($input);
$this->assertDateTimeEquals(new \DateTime('2010-06-02 03:04:05 UTC'), $form->getData());
$this->assertEquals(new \DateTime('2010-06-02 03:04:05 UTC'), $form->getData());
}
public function testSubmitDifferentTimezones()
@@ -215,7 +215,7 @@ class DateTimeTypeTest extends BaseTypeTest
$outputTime->setTimezone(new \DateTimeZone('America/New_York'));
$this->assertDateTimeEquals($outputTime, $form->getData());
$this->assertEquals($outputTime, $form->getData());
$this->assertEquals('2010-06-02T03:04:00-10:00', $form->getViewData());
}
@@ -266,7 +266,7 @@ class DateTimeTypeTest extends BaseTypeTest
'time' => '03:04',
));
$this->assertDateTimeEquals($dateTime, $form->getData());
$this->assertEquals($dateTime, $form->getData());
}
public function testInitializeWithDateTime()
@@ -419,7 +419,7 @@ class DateTimeTypeTest extends BaseTypeTest
))
->createView();
$this->assertFalse(isset($view->vars['type']));
$this->assertArrayNotHasKey('type', $view->vars);
}
public function testDontPassHtml5TypeIfNotHtml5Format()
@@ -430,7 +430,7 @@ class DateTimeTypeTest extends BaseTypeTest
))
->createView();
$this->assertFalse(isset($view->vars['type']));
$this->assertArrayNotHasKey('type', $view->vars);
}
public function testDontPassHtml5TypeIfNotSingleText()
@@ -440,7 +440,7 @@ class DateTimeTypeTest extends BaseTypeTest
))
->createView();
$this->assertFalse(isset($view->vars['type']));
$this->assertArrayNotHasKey('type', $view->vars);
}
public function testDateTypeChoiceErrorsBubbleUp()
@@ -64,7 +64,7 @@ class DateTypeTest extends BaseTypeTest
$form->submit('2010-06-02');
$this->assertDateTimeEquals(new \DateTime('2010-06-02 UTC'), $form->getData());
$this->assertEquals(new \DateTime('2010-06-02 UTC'), $form->getData());
$this->assertEquals('2010-06-02', $form->getViewData());
}
@@ -80,7 +80,7 @@ class DateTypeTest extends BaseTypeTest
$form->submit('2010');
$this->assertDateTimeEquals(new \DateTime('2010-01-01 UTC'), $form->getData());
$this->assertEquals(new \DateTime('2010-01-01 UTC'), $form->getData());
$this->assertEquals('2010', $form->getViewData());
}
@@ -101,7 +101,7 @@ class DateTypeTest extends BaseTypeTest
$form->submit('2.6.2010');
$this->assertDateTimeEquals(new \DateTime('2010-06-02 UTC'), $form->getData());
$this->assertEquals(new \DateTime('2010-06-02 UTC'), $form->getData());
$this->assertEquals('02.06.2010', $form->getViewData());
}
@@ -194,7 +194,7 @@ class DateTypeTest extends BaseTypeTest
$dateTime = new \DateTime('2010-06-02 UTC');
$this->assertDateTimeEquals($dateTime, $form->getData());
$this->assertEquals($dateTime, $form->getData());
$this->assertEquals($text, $form->getViewData());
}
@@ -217,7 +217,7 @@ class DateTypeTest extends BaseTypeTest
$dateTime = new \DateTime('2010-06-02 UTC');
$this->assertDateTimeEquals($dateTime, $form->getData());
$this->assertEquals($dateTime, $form->getData());
$this->assertEquals($text, $form->getViewData());
}
@@ -254,7 +254,7 @@ class DateTypeTest extends BaseTypeTest
$form->submit('06*2010*02');
$this->assertDateTimeEquals(new \DateTime('2010-06-02 UTC'), $form->getData());
$this->assertEquals(new \DateTime('2010-06-02 UTC'), $form->getData());
$this->assertEquals('06*2010*02', $form->getViewData());
}
@@ -468,7 +468,7 @@ class DateTypeTest extends BaseTypeTest
// 2010-06-02 00:00:00 UTC
// 2010-06-01 20:00:00 UTC-4
$this->assertDateTimeEquals($dateTime, $form->getData());
$this->assertEquals($dateTime, $form->getData());
$this->assertEquals('01.06.2010', $form->getViewData());
}
@@ -678,7 +678,7 @@ class DateTypeTest extends BaseTypeTest
))
->createView();
$this->assertFalse(isset($view->vars['date_pattern']));
$this->assertArrayNotHasKey('date_pattern', $view->vars);
}
public function testDatePatternFormatWithQuotedStrings()
@@ -826,7 +826,7 @@ class DateTypeTest extends BaseTypeTest
))
->createView();
$this->assertFalse(isset($view->vars['type']));
$this->assertArrayNotHasKey('type', $view->vars);
}
public function testDontPassHtml5TypeIfNotHtml5Format()
@@ -837,7 +837,7 @@ class DateTypeTest extends BaseTypeTest
))
->createView();
$this->assertFalse(isset($view->vars['type']));
$this->assertArrayNotHasKey('type', $view->vars);
}
public function testDontPassHtml5TypeIfNotSingleText()
@@ -847,7 +847,7 @@ class DateTypeTest extends BaseTypeTest
))
->createView();
$this->assertFalse(isset($view->vars['type']));
$this->assertArrayNotHasKey('type', $view->vars);
}
public function provideCompoundWidgets()
+101 -36
View File
@@ -11,6 +11,11 @@
namespace Symfony\Component\Form\Tests\Extension\Core\Type;
use Symfony\Component\Form\Extension\HttpFoundation\HttpFoundationRequestHandler;
use Symfony\Component\Form\NativeRequestHandler;
use Symfony\Component\Form\RequestHandlerInterface;
use Symfony\Component\HttpFoundation\File\UploadedFile;
class FileTypeTest extends BaseTypeTest
{
const TESTED_TYPE = 'Symfony\Component\Form\Extension\Core\Type\FileType';
@@ -29,40 +34,49 @@ class FileTypeTest extends BaseTypeTest
$this->assertSame($data, $form->getData());
}
public function testSubmit()
/**
* @dataProvider requestHandlerProvider
*/
public function testSubmit(RequestHandlerInterface $requestHandler)
{
$form = $this->factory->createBuilder(static::TESTED_TYPE)->getForm();
$data = $this->createUploadedFileMock('abcdef', 'original.jpg', true);
$form = $this->factory->createBuilder(static::TESTED_TYPE)->setRequestHandler($requestHandler)->getForm();
$data = $this->createUploadedFileMock($requestHandler, __DIR__.'/../../../Fixtures/foo', 'foo.jpg');
$form->submit($data);
$this->assertSame($data, $form->getData());
}
public function testSetDataMultiple()
/**
* @dataProvider requestHandlerProvider
*/
public function testSetDataMultiple(RequestHandlerInterface $requestHandler)
{
$form = $this->factory->createBuilder(static::TESTED_TYPE, null, array(
'multiple' => true,
))->getForm();
))->setRequestHandler($requestHandler)->getForm();
$data = array(
$this->createUploadedFileMock('abcdef', 'first.jpg', true),
$this->createUploadedFileMock('zyxwvu', 'second.jpg', true),
$this->createUploadedFileMock($requestHandler, __DIR__.'/../../../Fixtures/foo', 'foo.jpg'),
$this->createUploadedFileMock($requestHandler, __DIR__.'/../../../Fixtures/foo2', 'foo2.jpg'),
);
$form->setData($data);
$this->assertSame($data, $form->getData());
}
public function testSubmitMultiple()
/**
* @dataProvider requestHandlerProvider
*/
public function testSubmitMultiple(RequestHandlerInterface $requestHandler)
{
$form = $this->factory->createBuilder(static::TESTED_TYPE, null, array(
'multiple' => true,
))->getForm();
))->setRequestHandler($requestHandler)->getForm();
$data = array(
$this->createUploadedFileMock('abcdef', 'first.jpg', true),
$this->createUploadedFileMock('zyxwvu', 'second.jpg', true),
$this->createUploadedFileMock($requestHandler, __DIR__.'/../../../Fixtures/foo', 'foo.jpg'),
$this->createUploadedFileMock($requestHandler, __DIR__.'/../../../Fixtures/foo2', 'foo2.jpg'),
);
$form->submit($data);
@@ -73,11 +87,14 @@ class FileTypeTest extends BaseTypeTest
$this->assertArrayHasKey('multiple', $view->vars['attr']);
}
public function testDontPassValueToView()
/**
* @dataProvider requestHandlerProvider
*/
public function testDontPassValueToView(RequestHandlerInterface $requestHandler)
{
$form = $this->factory->create(static::TESTED_TYPE);
$form = $this->factory->createBuilder(static::TESTED_TYPE)->setRequestHandler($requestHandler)->getForm();
$form->submit(array(
'file' => $this->createUploadedFileMock('abcdef', 'original.jpg', true),
'file' => $this->createUploadedFileMock($requestHandler, __DIR__.'/../../../Fixtures/foo', 'foo.jpg'),
));
$this->assertEquals('', $form->createView()->vars['value']);
@@ -109,29 +126,77 @@ class FileTypeTest extends BaseTypeTest
$this->assertSame(array(), $form->getViewData());
}
private function createUploadedFileMock($name, $originalName, $valid)
/**
* @dataProvider requestHandlerProvider
*/
public function testSubmittedFilePathsAreDropped(RequestHandlerInterface $requestHandler)
{
$file = $this
->getMockBuilder('Symfony\Component\HttpFoundation\File\UploadedFile')
->setConstructorArgs(array(__DIR__.'/../../../Fixtures/foo', 'foo'))
->getMock()
;
$file
->expects($this->any())
->method('getBasename')
->will($this->returnValue($name))
;
$file
->expects($this->any())
->method('getClientOriginalName')
->will($this->returnValue($originalName))
;
$file
->expects($this->any())
->method('isValid')
->will($this->returnValue($valid))
;
$form = $this->factory->createBuilder(static::TESTED_TYPE)->setRequestHandler($requestHandler)->getForm();
$form->submit('file:///etc/passwd');
return $file;
$this->assertNull($form->getData());
$this->assertNull($form->getNormData());
$this->assertSame('', $form->getViewData());
}
/**
* @dataProvider requestHandlerProvider
*/
public function testMultipleSubmittedFilePathsAreDropped(RequestHandlerInterface $requestHandler)
{
$form = $this->factory
->createBuilder(static::TESTED_TYPE, null, array(
'multiple' => true,
))
->setRequestHandler($requestHandler)
->getForm();
$form->submit(array(
'file:///etc/passwd',
$this->createUploadedFileMock(new HttpFoundationRequestHandler(), __DIR__.'/../../../Fixtures/foo', 'foo.jpg'),
$this->createUploadedFileMock(new NativeRequestHandler(), __DIR__.'/../../../Fixtures/foo2', 'foo2.jpg'),
));
$this->assertCount(1, $form->getData());
}
/**
* @dataProvider requestHandlerProvider
*/
public function testSubmitNonArrayValueWhenMultiple(RequestHandlerInterface $requestHandler)
{
$form = $this->factory
->createBuilder(static::TESTED_TYPE, null, array(
'multiple' => true,
))
->setRequestHandler($requestHandler)
->getForm();
$form->submit(null);
$this->assertSame(array(), $form->getData());
$this->assertSame(array(), $form->getNormData());
$this->assertSame(array(), $form->getViewData());
}
public function requestHandlerProvider()
{
return array(
array(new HttpFoundationRequestHandler()),
array(new NativeRequestHandler()),
);
}
private function createUploadedFileMock(RequestHandlerInterface $requestHandler, $path, $originalName)
{
if ($requestHandler instanceof HttpFoundationRequestHandler) {
return new UploadedFile($path, $originalName, null, 10, null, true);
}
return array(
'name' => $originalName,
'error' => 0,
'type' => 'text/plain',
'tmp_name' => $path,
'size' => 10,
);
}
}
@@ -43,7 +43,7 @@ class MoneyTypeTest extends BaseTypeTest
$view = $this->factory->create(static::TESTED_TYPE, null, array('currency' => 'JPY'))
->createView();
$this->assertTrue((bool) strstr($view->vars['money_pattern'], '¥'));
$this->assertSame('¥ {{ widget }}', $view->vars['money_pattern']);
}
// https://github.com/symfony/symfony/issues/5458
@@ -62,4 +62,12 @@ class MoneyTypeTest extends BaseTypeTest
{
parent::testSubmitNull($expected, $norm, '');
}
public function testMoneyPatternWithoutCurrency()
{
$view = $this->factory->create(static::TESTED_TYPE, null, array('currency' => false))
->createView();
$this->assertSame('{{ widget }}', $view->vars['money_pattern']);
}
}
@@ -315,7 +315,7 @@ class TimeTypeTest extends BaseTypeTest
'second' => (int) $outputTime->format('s'),
);
$this->assertDateTimeEquals($dateTime, $form->getData());
$this->assertEquals($dateTime, $form->getData());
$this->assertEquals($displayedData, $form->getViewData());
}
@@ -536,7 +536,7 @@ class TimeTypeTest extends BaseTypeTest
));
$view = $form->createView();
$this->assertFalse(isset($view->vars['type']));
$this->assertArrayNotHasKey('type', $view->vars);
}
public function testPassDefaultPlaceholderToViewIfNotRequired()
@@ -72,7 +72,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase
))
->createView();
$this->assertTrue(isset($view['csrf']));
$this->assertArrayHasKey('csrf', $view);
}
public function testNoCsrfProtectionByDefaultIfCompoundButNotRoot()
@@ -89,7 +89,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase
->get('form')
->createView();
$this->assertFalse(isset($view['csrf']));
$this->assertArrayNotHasKey('csrf', $view);
}
public function testNoCsrfProtectionByDefaultIfRootButNotCompound()
@@ -101,7 +101,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase
))
->createView();
$this->assertFalse(isset($view['csrf']));
$this->assertArrayNotHasKey('csrf', $view);
}
public function testCsrfProtectionCanBeDisabled()
@@ -114,7 +114,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase
))
->createView();
$this->assertFalse(isset($view['csrf']));
$this->assertArrayNotHasKey('csrf', $view);
}
public function testGenerateCsrfToken()
@@ -357,7 +357,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase
->createView()
->vars['prototype'];
$this->assertFalse(isset($prototypeView['csrf']));
$this->assertArrayNotHasKey('csrf', $prototypeView);
$this->assertCount(1, $prototypeView);
}
@@ -51,4 +51,9 @@ class HttpFoundationRequestHandlerTest extends AbstractRequestHandlerTest
{
return new UploadedFile(__DIR__.'/../../Fixtures/foo'.$suffix, 'foo'.$suffix);
}
protected function getInvalidFile()
{
return 'file:///etc/passwd';
}
}
@@ -372,6 +372,7 @@ class FormValidatorTest extends AbstractConstraintValidatorTest
->getForm();
$this->expectValidateAt(0, 'data', $object, new GroupSequence(array('group1', 'group2')));
$this->expectValidateAt(1, 'data', $object, new GroupSequence(array('group1', 'group2')));
$this->validator->validate($form, new Form());
@@ -12,21 +12,29 @@
namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
use Symfony\Component\Form\Extension\Validator\Type\FormTypeValidatorExtension;
use Symfony\Component\Form\Extension\Validator\ValidatorExtension;
use Symfony\Component\Form\Forms;
use Symfony\Component\Form\Tests\Extension\Core\Type\FormTypeTest;
use Symfony\Component\Form\Tests\Extension\Core\Type\TextTypeTest;
use Symfony\Component\Validator\Constraints\Email;
use Symfony\Component\Validator\Constraints\GroupSequence;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\Valid;
use Symfony\Component\Validator\ConstraintViolationList;
use Symfony\Component\Validator\Validation;
class FormTypeValidatorExtensionTest extends BaseValidatorExtensionTest
{
public function testSubmitValidatesData()
{
$builder = $this->factory->createBuilder(
'Symfony\Component\Form\Extension\Core\Type\FormType',
FormTypeTest::TESTED_TYPE,
null,
array(
'validation_groups' => 'group',
)
);
$builder->add('firstName', 'Symfony\Component\Form\Extension\Core\Type\FormType');
$builder->add('firstName', FormTypeTest::TESTED_TYPE);
$form = $builder->getForm();
$this->validator->expects($this->once())
@@ -53,8 +61,27 @@ class FormTypeValidatorExtensionTest extends BaseValidatorExtensionTest
$this->assertAttributeSame($validator, 'validator', $formTypeValidatorExtension);
}
public function testGroupSequenceWithConstraintsOption()
{
$form = Forms::createFormFactoryBuilder()
->addExtension(new ValidatorExtension(Validation::createValidator()))
->getFormFactory()
->create(FormTypeTest::TESTED_TYPE, null, (array('validation_groups' => new GroupSequence(array('First', 'Second')))))
->add('field', TextTypeTest::TESTED_TYPE, array(
'constraints' => array(
new Length(array('min' => 10, 'groups' => array('First'))),
new Email(array('groups' => array('Second'))),
),
))
;
$form->submit(array('field' => 'wrong'));
$this->assertCount(1, $form->getErrors(true));
}
protected function createForm(array $options = array())
{
return $this->factory->create('Symfony\Component\Form\Extension\Core\Type\FormType', null, $options);
return $this->factory->create(FormTypeTest::TESTED_TYPE, null, $options);
}
}
@@ -29,11 +29,8 @@ use Symfony\Component\Validator\ConstraintViolationInterface;
class ViolationMapperTest extends TestCase
{
const LEVEL_0 = 0;
const LEVEL_1 = 1;
const LEVEL_1B = 2;
const LEVEL_2 = 3;
/**
@@ -1260,7 +1257,7 @@ class ViolationMapperTest extends TestCase
// Only add it if we expect the error to come up on a different
// level than LEVEL_0, because in this case the error would
// (correctly) be mapped to the distraction field
if ($target !== self::LEVEL_0) {
if (self::LEVEL_0 !== $target) {
$mapFromPath = new PropertyPath($mapFrom);
$mapFromPrefix = $mapFromPath->isIndex(0)
? '['.$mapFromPath->getElement(0).']'
@@ -1274,7 +1271,7 @@ class ViolationMapperTest extends TestCase
$this->mapper->mapViolation($violation, $parent);
if ($target !== self::LEVEL_0) {
if (self::LEVEL_0 !== $target) {
$this->assertCount(0, $distraction->getErrors(), 'distraction should not have an error, but has one');
}
@@ -96,7 +96,7 @@ class ViolationPathTest extends TestCase
$path = new ViolationPath($string);
$this->assertSame($slicedPath, $path->__toString());
$this->assertSame(count($entries), count($path->getElements()));
$this->assertCount(count($entries), $path->getElements());
$this->assertSame(count($entries), $path->getLength());
foreach ($entries as $index => $entry) {
+1 -1
View File
@@ -15,7 +15,7 @@ class AlternatingRowType extends AbstractType
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($formFactory) {
$form = $event->getForm();
$type = $form->getName() % 2 === 0
$type = 0 === $form->getName() % 2
? 'Symfony\Component\Form\Extension\Core\Type\TextType'
: 'Symfony\Component\Form\Extension\Core\Type\TextareaType';
$form->add('title', $type);
@@ -36,7 +36,7 @@ class FixedDataTransformer implements DataTransformerInterface
{
$result = array_search($value, $this->mapping, true);
if ($result === false) {
if (false === $result) {
throw new TransformationFailedException(sprintf('No reverse mapping for value "%s"', $value));
}
+11
View File
@@ -216,4 +216,15 @@ class NativeRequestHandlerTest extends AbstractRequestHandlerTest
'size' => 100,
);
}
protected function getInvalidFile()
{
return array(
'name' => 'upload.txt',
'type' => 'text/plain',
'tmp_name' => 'owfdskjasdfsa',
'error' => '0',
'size' => '100',
);
}
}
@@ -36,4 +36,13 @@ class TranslationFilesTest extends TestCase
glob(dirname(dirname(__DIR__)).'/Resources/translations/*.xlf')
);
}
public function testNorwegianAlias()
{
$this->assertFileEquals(
dirname(dirname(__DIR__)).'/Resources/translations/validators.nb.xlf',
dirname(dirname(__DIR__)).'/Resources/translations/validators.no.xlf',
'The NO locale should be an alias for the NB variant of the Norwegian language.'
);
}
}
+23 -3
View File
@@ -56,6 +56,15 @@ class OrderedHashMapTest extends TestCase
$this->assertSame(array(0 => 1, 'foo' => 2, 1 => 3), iterator_to_array($map));
}
public function testInsertLooselyEqualKeys()
{
$map = new OrderedHashMap();
$map['1 as a string'] = '1 as a string';
$map[1] = 1;
$this->assertSame(array('1 as a string' => '1 as a string', 1 => 1), iterator_to_array($map));
}
/**
* Updates should not change the position of an element, otherwise we could
* turn foreach loops into endless loops if they change the current
@@ -82,14 +91,14 @@ class OrderedHashMapTest extends TestCase
$map = new OrderedHashMap();
$map['first'] = 1;
$this->assertTrue(isset($map['first']));
$this->assertArrayHasKey('first', $map);
}
public function testIssetReturnsFalseForNonExisting()
{
$map = new OrderedHashMap();
$this->assertFalse(isset($map['first']));
$this->assertArrayNotHasKey('first', $map);
}
public function testIssetReturnsFalseForNull()
@@ -97,7 +106,7 @@ class OrderedHashMapTest extends TestCase
$map = new OrderedHashMap();
$map['first'] = null;
$this->assertFalse(isset($map['first']));
$this->assertArrayNotHasKey('first', $map);
}
public function testUnset()
@@ -111,6 +120,17 @@ class OrderedHashMapTest extends TestCase
$this->assertSame(array('second' => 2), iterator_to_array($map));
}
public function testUnsetFromLooselyEqualKeysHashMap()
{
$map = new OrderedHashMap();
$map['1 as a string'] = '1 as a string';
$map[1] = 1;
unset($map[1]);
$this->assertSame(array('1 as a string' => '1 as a string'), iterator_to_array($map));
}
public function testUnsetNonExistingSucceeds()
{
$map = new OrderedHashMap();