8000 merged 2.0 · beryllium/symfony@eba4aba · GitHub
[go: up one dir, main page]

Skip to content

Commit eba4aba

Browse files
committed
merged 2.0
2 parents a26e66c + f541844 commit eba4aba

File tree

8 files changed

+65
-1
lines changed
  • Type
  • Tests/Extension/Core
  • 8 files changed

    +65
    -1
    lines changed

    .travis.yml

    Lines changed: 1 addition & 0 deletions
    < 8000 div data-testid="neutral diffstat" class="DiffSquares-module__diffSquare--h5kjy DiffSquares-module__neutral--VlyoP">
    Original file line numberDiff line numberDiff line change
    @@ -1,6 +1,7 @@
    11
    language: php
    22

    33
    php:
    4+
    - 5.3.3
    45
    - 5.3
    56
    - 5.4
    67

    src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformer.php

    Lines changed: 3 additions & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -157,6 +157,8 @@ protected function getIntlDateFormatter()
    157157
    $calendar = $this->calendar;
    158158
    $pattern = $this->pattern;
    159159

    160-
    return new \IntlDateFormatter(\Locale::getDefault(), $dateFormat, $timeFormat, $timezone, $calendar, $pattern);
    160+
    $intlDateFormatter = new \IntlDateFormatter(\Locale::getDefault(), $dateFormat, $timeFormat, $timezone, $calendar, $pattern);
    161+
    $intlDateFormatter->setLenient(false);
    162+
    return $intlDateFormatter;
    161163
    }
    162164
    }

    src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToStringTransformer.php

    Lines changed: 4 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -96,6 +96,10 @@ public function reverseTransform($value)
    9696

    9797
    try {
    9898
    $dateTime = new \DateTime($value, new \DateTimeZone($this->outputTimezone));
    99+
    $lastErrors = \DateTime::getLastErrors();
    100+
    if (0 < $lastErrors['warning_count'] || 0 < $lastErrors['error_count']) {
    101+
    throw new \UnexpectedValueException(implode(', ', array_merge(array_values($lastErrors['warnings']), array_values($lastErrors['errors']))));
    102+
    }
    99103

    100104
    // Force value to be in same format as given to transform
    101105
    if ($value !== $dateTime->format($this->format)) {

    src/Symfony/Component/Form/Extension/Core/Type/DateType.php

    Lines changed: 1 addition & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -61,6 +61,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
    6161
    \IntlDateFormatter::GREGORIAN,
    6262
    $pattern
    6363
    );
    64+
    $formatter->setLenient(false);
    6465

    6566
    if ('single_text' === $options['widget']) {
    6667
    $builder->addViewTransformer(new DateTimeToLocalizedStringTransformer($options['data_timezone'], $options['user_timezone'], $format, \IntlDateFormatter::NONE, \IntlDateFormatter::GREGORIAN, $pattern));

    src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformerTest.php

    Lines changed: 10 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -284,4 +284,14 @@ public function testValidateTimeFormatOption()
    284284
    {
    285285
    new DateTimeToLocalizedStringTransformer(null, null, null, 'foobar');
    286286
    }
    287+
    288+
    /**
    289+
    * @expectedException Symfony\Component\Form\Exception\TransformationFailedException
    290+
    */
    291+
    public function testReverseTransformWithNonExistingDate()
    292+
    {
    293+
    $transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC', \IntlDateFormatter::SHORT);
    294+
    295+
    $this->assertDateTimeEquals($this->dateTimeWithoutSeconds, $transformer->reverseTransform('31.04.10 04:05'));
    296+
    }
    287297
    }

    src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/DateTimeToStringTransformerTest.php

    Lines changed: 9 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -138,4 +138,13 @@ public function testReverseTransformExpectsValidDateString()
    138138

    139139
    $reverseTransformer->reverseTransform('2010-2010-2010');
    140140
    }
    141+
    142+
    public function testReverseTransformWithNonExistingDate()
    143+
    {
    144+
    $reverseTransformer = new DateTimeToStringTransformer();
    145+
    146+
    $this->setExpectedException('Symfony\Component\Form\Exception\TransformationFailedException');
    147+
    148+
    $reverseTransformer->reverseTransform('2010-04-31');
    149+
    }
    141150
    }

    src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTimeTypeTest.php

    Lines changed: 18 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -243,4 +243,22 @@ public function testSingleTextWidgetShouldUseTheRightInputType()
    243243
    $view = $form->createView();
    244244
    $this->assertEquals('datetime', $view->getVar('type'));
    245245
    }
    246+
    247+
    public function testSubmit_invalidDateTimeSingleText()
    248+
    {
    249+
    $form = $this->factory->create('datetime', null, array(
    250+
    'data_timezone' => 'UTC',
    251+
    'user_timezone' => 'UTC',
    252+
    'input' => 'datetime',
    253+
    'widget' => 'single_text',
    254+
    'invalid_message' => 'Customized invalid message',
    255+
    ));
    256+
    257+
    $form->bind('2012-04-31 03:04:05');
    258+
    259+
    $this->assertFalse($form->isValid());
    260+
    $this->assertNull($form->getData());
    261+
    $this->assertEquals('2012-04-31 03:04:05', $form->getClientData());
    262+
    $this->assertEquals(array(new FormError('Customized invalid message', array())), $form->getErrors());
    263+
    }
    246264
    }

    src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php

    Lines changed: 19 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -12,6 +12,7 @@
    1212
    namespace Symfony\Component\Form\Tests\Extension\Core\Type;
    1313

    1414
    use Symfony\Component\Form\Extension\Core\View\ChoiceView;
    15+
    use Symfony\Component\Form\FormError;
    1516

    1617
    class DateTypeTest extends LocalizedTestCase
    1718
    {
    @@ -546,4 +547,22 @@ public function testSingleTextWidgetShouldUseTheRightInputType()
    546547
    $view = $form->createView();
    547548
    $this->assertEquals('date', $view->getVar('type'));
    548549
    }
    550+
    551+
    public function testInvalidDateWithSingleTextDateTi 9842 me()
    552+
    {
    553+
    $form = $this->factory->create('date', null, array(
    554+
    'data_timezone' => 'UTC',
    555+
    'user_timezone' => 'UTC',
    556+
    'widget' => 'single_text',
    557+
    'input' => 'datetime',
    558+
    'invalid_message' => 'Customized invalid message',
    559+
    ));
    560+
    561+
    $form->bind('31.4.2012');
    562+
    563+
    $this->assertFalse($form->isValid());
    564+
    $this->assertNull($form->getData());
    565+
    $this->assertEquals('31.4.2012', $form->getClientData());
    566+
    $this->assertEquals(array(new FormError('Customized invalid message', array())), $form->getErrors());
    567+
    }
    549568
    }

    0 commit comments

    Comments
     (0)
    0