Selaa lähdekoodia

[Form] Removed automatic distribution of the locale in the Form component. This leads to more problems than it solves.

Bernhard Schussek 14 vuotta sitten
vanhempi
commit
fdbc064f06
34 muutettua tiedostoa jossa 81 lisäystä ja 234 poistoa
  1. 0 4
      src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
  2. 1 1
      src/Symfony/Component/Form/CountryField.php
  3. 1 1
      src/Symfony/Component/Form/DateField.php
  4. 0 20
      src/Symfony/Component/Form/Field.php
  5. 0 20
      src/Symfony/Component/Form/FormContext.php
  6. 0 1
      src/Symfony/Component/Form/FormContextInterface.php
  7. 0 2
      src/Symfony/Component/Form/FormFactory.php
  8. 1 1
      src/Symfony/Component/Form/LanguageField.php
  9. 1 1
      src/Symfony/Component/Form/LocaleField.php
  10. 0 27
      src/Symfony/Component/Form/Localizable.php
  11. 8 8
      src/Symfony/Component/Form/MoneyField.php
  12. 3 1
      src/Symfony/Component/Form/ValueTransformer/BaseDateTimeTransformer.php
  13. 0 46
      src/Symfony/Component/Form/ValueTransformer/BaseValueTransformer.php
  14. 2 1
      src/Symfony/Component/Form/ValueTransformer/BooleanToStringTransformer.php
  15. 2 1
      src/Symfony/Component/Form/ValueTransformer/CollectionToStringTransformer.php
  16. 0 1
      src/Symfony/Component/Form/ValueTransformer/DateTimeToArrayTransformer.php
  17. 1 2
      src/Symfony/Component/Form/ValueTransformer/DateTimeToLocalizedStringTransformer.php
  18. 2 1
      src/Symfony/Component/Form/ValueTransformer/DateTimeToStringTransformer.php
  19. 2 1
      src/Symfony/Component/Form/ValueTransformer/DateTimeToTimestampTransformer.php
  20. 3 2
      src/Symfony/Component/Form/ValueTransformer/NumberToLocalizedStringTransformer.php
  21. 3 2
      src/Symfony/Component/Form/ValueTransformer/PercentToLocalizedStringTransformer.php
  22. 0 8
      src/Symfony/Component/Form/ValueTransformer/ReversedTransformer.php
  23. 0 10
      src/Symfony/Component/Form/ValueTransformer/ValueTransformerChain.php
  24. 1 3
      src/Symfony/Component/Form/ValueTransformer/ValueTransformerInterface.php
  25. 1 1
      tests/Symfony/Tests/Component/Form/CountryFieldTest.php
  26. 1 1
      tests/Symfony/Tests/Component/Form/DateFieldTest.php
  27. 0 14
      tests/Symfony/Tests/Component/Form/FieldTest.php
  28. 1 1
      tests/Symfony/Tests/Component/Form/LanguageFieldTest.php
  29. 1 1
      tests/Symfony/Tests/Component/Form/LocaleFieldTest.php
  30. 25 20
      tests/Symfony/Tests/Component/Form/ValueTransformer/DateTimeToLocalizedStringTransformerTest.php
  31. 7 2
      tests/Symfony/Tests/Component/Form/ValueTransformer/MoneyToLocalizedStringTransformerTest.php
  32. 7 7
      tests/Symfony/Tests/Component/Form/ValueTransformer/NumberToLocalizedStringTransformerTest.php
  33. 7 6
      tests/Symfony/Tests/Component/Form/ValueTransformer/PercentToLocalizedStringTransformerTest.php
  34. 0 16
      tests/Symfony/Tests/Component/Form/ValueTransformer/ValueTransformerChainTest.php

+ 0 - 4
src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

@@ -67,10 +67,6 @@ class FrameworkExtension extends Extension
             }
         }
 
-        if (isset($config['i18n']) && $config['i18n']) {
-            FormContext::setLocale(\Locale::getDefault());
-        }
-
         if (isset($config['ide'])) {
             switch ($config['ide']) {
                 case 'textmate':

+ 1 - 1
src/Symfony/Component/Form/CountryField.php

@@ -23,7 +23,7 @@ class CountryField extends ChoiceField
 {
     protected function configure()
     {
-        $this->addOption('choices', Locale::getDisplayCountries($this->locale));
+        $this->addOption('choices', Locale::getDisplayCountries(\Locale::getDefault()));
 
         parent::configure();
     }

+ 1 - 1
src/Symfony/Component/Form/DateField.php

@@ -104,7 +104,7 @@ class DateField extends HybridField
         $this->addOption('user_timezone', 'UTC');
 
         $this->formatter = new \IntlDateFormatter(
-            $this->locale,
+            \Locale::getDefault(),
             self::$intlFormats[$this->getOption('format')],
             \IntlDateFormatter::NONE
         );

+ 0 - 20
src/Symfony/Component/Form/Field.php

@@ -49,7 +49,6 @@ use Symfony\Component\Form\ValueTransformer\TransformationFailedException;
 class Field extends Configurable implements FieldInterface
 {
     protected $taintedData = null;
-    protected $locale = null;
 
     private $errors = array();
     private $key = '';
@@ -74,7 +73,6 @@ class Field extends Configurable implements FieldInterface
         $this->addOption('normalization_transformer');
 
         $this->key = (string)$key;
-        $this->locale = FormContext::getLocale();
 
         parent::__construct($options);
 
@@ -412,20 +410,6 @@ class Field extends Configurable implements FieldInterface
         return $this->errors;
     }
 
-    /**
-     * Injects the locale into the given object, if set.
-     *
-     * The locale is injected only if the object implements Localizable.
-     *
-     * @param object $object
-     */
-    protected function injectLocale($object)
-    {
-        if ($object instanceof Localizable) {
-            $object->setLocale($this->locale);
-        }
-    }
-
     /**
      * Sets the ValueTransformer.
      *
@@ -433,8 +417,6 @@ class Field extends Configurable implements FieldInterface
      */
     protected function setNormalizationTransformer(ValueTransformerInterface $normalizationTransformer)
     {
-        $this->injectLocale($normalizationTransformer);
-
         $this->normalizationTransformer = $normalizationTransformer;
     }
 
@@ -455,8 +437,6 @@ class Field extends Configurable implements FieldInterface
      */
     protected function setValueTransformer(ValueTransformerInterface $valueTransformer)
     {
-        $this->injectLocale($valueTransformer);
-
         $this->valueTransformer = $valueTransformer;
     }
 

+ 0 - 20
src/Symfony/Component/Form/FormContext.php

@@ -65,26 +65,6 @@ class FormContext implements FormContextInterface
      */
     protected $csrfFieldName = '_token';
 
-    /**
-     * Globally sets the locale for new forms and fields
-     *
-     * @param string $locale  A valid locale, such as "en", "de_DE" etc.
-     */
-    public static function setLocale($locale)
-    {
-        self::$locale = $locale;
-    }
-
-    /**
-     * Returns the locale used for new forms and fields
-     *
-     * @return string  A valid locale, such as "en", "de_DE" etc.
-     */
-    public static function getLocale()
-    {
-        return self::$locale;
-    }
-
     /**
      * @inheritDoc
      */

+ 0 - 1
src/Symfony/Component/Form/FormContextInterface.php

@@ -24,7 +24,6 @@ use Symfony\Component\Validator\ValidatorInterface;
  *
  * <code>
  * $form = $context
- *     ->locale('en_US')
  *     ->validationGroups('Address')
  *     ->getForm('author');
  * </code>

+ 0 - 2
src/Symfony/Component/Form/FormFactory.php

@@ -25,7 +25,6 @@ use Symfony\Component\Validator\ValidatorInterface;
  *
  * <code>
  * $defaultContext = new FormContext();
- * $defaultContext->locale('en_US');
  * $defaultContext->csrfProtection(true);
  * $factory = new FormFactory($defaultContext);
  *
@@ -39,7 +38,6 @@ use Symfony\Component\Validator\ValidatorInterface;
  *
  * <code>
  * $form = $factory
- *     ->locale('de_DE')
  *     ->csrfProtection(false)
  *     ->getForm('author');
  * </code>

+ 1 - 1
src/Symfony/Component/Form/LanguageField.php

@@ -26,7 +26,7 @@ class LanguageField extends ChoiceField
      */
     protected function configure()
     {
-        $this->addOption('choices', Locale::getDisplayLanguages($this->locale));
+        $this->addOption('choices', Locale::getDisplayLanguages(\Locale::getDefault()));
 
         parent::configure();
     }

+ 1 - 1
src/Symfony/Component/Form/LocaleField.php

@@ -26,7 +26,7 @@ class LocaleField extends ChoiceField
      */
     protected function configure()
     {
-        $this->addOption('choices', Locale::getDisplayLocales($this->locale));
+        $this->addOption('choices', Locale::getDisplayLocales(\Locale::getDefault()));
 
         parent::configure();
     }

+ 0 - 27
src/Symfony/Component/Form/Localizable.php

@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Form;
-
-/**
- * Marks classes that you can inject a locale into.
- *
- * @author     Bernhard Schussek <bernhard.schussek@symfony-project.com>
- */
-interface Localizable
-{
-    /**
-     * Sets the locale of the class.
-     *
-     * @param string $locale
-     */
-    function setLocale($locale);
-}

+ 8 - 8
src/Symfony/Component/Form/MoneyField.php

@@ -70,12 +70,12 @@ class MoneyField extends NumberField
             return '{{ widget }}';
         }
 
-        if (!isset(self::$patterns[$this->locale])) {
-            self::$patterns[$this->locale] = array();
+        if (!isset(self::$patterns[\Locale::getDefault()])) {
+            self::$patterns[\Locale::getDefault()] = array();
         }
 
-        if (!isset(self::$patterns[$this->locale][$this->getOption('currency')])) {
-            $format = new \NumberFormatter($this->locale, \NumberFormatter::CURRENCY);
+        if (!isset(self::$patterns[\Locale::getDefault()][$this->getOption('currency')])) {
+            $format = new \NumberFormatter(\Locale::getDefault(), \NumberFormatter::CURRENCY);
             $pattern = $format->formatCurrency('123', $this->getOption('currency'));
 
             // the spacings between currency symbol and number are ignored, because
@@ -87,14 +87,14 @@ class MoneyField extends NumberField
             preg_match('/^([^\s\xc2\xa0]*)[\s\xc2\xa0]*123[,.]00[\s\xc2\xa0]*([^\s\xc2\xa0]*)$/', $pattern, $matches);
 
             if (!empty($matches[1])) {
-                self::$patterns[$this->locale] = $matches[1].' {{ widget }}';
+                self::$patterns[\Locale::getDefault()] = $matches[1].' {{ widget }}';
             } else if (!empty($matches[2])) {
-                self::$patterns[$this->locale] = '{{ widget }} '.$matches[2];
+                self::$patterns[\Locale::getDefault()] = '{{ widget }} '.$matches[2];
             } else {
-                self::$patterns[$this->locale] = '{{ widget }}';
+                self::$patterns[\Locale::getDefault()] = '{{ widget }}';
             }
         }
 
-        return self::$patterns[$this->locale];
+        return self::$patterns[\Locale::getDefault()];
     }
 }

+ 3 - 1
src/Symfony/Component/Form/ValueTransformer/BaseDateTimeTransformer.php

@@ -11,7 +11,9 @@
 
 namespace Symfony\Component\Form\ValueTransformer;
 
-abstract class BaseDateTimeTransformer extends BaseValueTransformer
+use Symfony\Component\Form\Configurable;
+
+abstract class BaseDateTimeTransformer extends Configurable implements ValueTransformerInterface
 {
     const NONE   = 'none';
     const FULL   = 'full';

+ 0 - 46
src/Symfony/Component/Form/ValueTransformer/BaseValueTransformer.php

@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Form\ValueTransformer;
-
-use Symfony\Component\Form\Configurable;
-
-/**
- * Implements functionality shared by most value transformers
- *
- * @author Bernhard Schussek <bernhard.schussek@symfony-project.com>
- */
-abstract class BaseValueTransformer extends Configurable implements ValueTransformerInterface
-{
-    /**
-     * The locale of this transformer as accepted by the class Locale
-     * @var string
-     */
-    protected $locale;
-
-    /**
-     * {@inheritDoc}
-     */
-    public function __construct(array $options = array())
-    {
-        $this->locale = class_exists('\Locale', false) ? \Locale::getDefault() : 'en';
-
-        parent::__construct($options);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setLocale($locale)
-    {
-        $this->locale = $locale;
-    }
-}

+ 2 - 1
src/Symfony/Component/Form/ValueTransformer/BooleanToStringTransformer.php

@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Form\ValueTransformer;
 
+use Symfony\Component\Form\Configurable;
 use Symfony\Component\Form\Exception\UnexpectedTypeException;
 
 /**
@@ -19,7 +20,7 @@ use Symfony\Component\Form\Exception\UnexpectedTypeException;
  * @author Bernhard Schussek <bernhard.schussek@symfony-project.com>
  * @author Florian Eckerstorfer <florian@eckerstorfer.org>
  */
-class BooleanToStringTransformer extends BaseValueTransformer
+class BooleanToStringTransformer extends Configurable implements ValueTransformerInterface
 {
     /**
      * Transforms a Boolean into a string.

+ 2 - 1
src/Symfony/Component/Form/ValueTransformer/CollectionToStringTransformer.php

@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Form\ValueTransformer;
 
+use Symfony\Component\Form\Configurable;
 use Doctrine\Common\Collections\Collection;
 
 /**
@@ -33,7 +34,7 @@ use Doctrine\Common\Collections\Collection;
  * @author Benjamin Eberlei <kontakt@beberlei.de>
  * @author Bernhard Schussek <bernhard.schussek@symfony-project.com>
  */
-class CollectionToStringTransformer extends BaseValueTransformer
+class CollectionToStringTransformer extends Configurable implements ValueTransformerInterface
 {
     protected function configure()
     {

+ 0 - 1
src/Symfony/Component/Form/ValueTransformer/DateTimeToArrayTransformer.php

@@ -21,7 +21,6 @@ use Symfony\Component\Form\Exception\UnexpectedTypeException;
  *  * "input": The type of the normalized format ("time" or "timestamp"). Default: "datetime"
  *  * "output": The type of the transformed format ("string" or "array"). Default: "string"
  *  * "format": The format of the time string ("short", "medium", "long" or "full"). Default: "short"
- *  * "locale": The locale of the localized string. Default: Result of Locale::getDefault()
  *
  * @author Bernhard Schussek <bernhard.schussek@symfony-project.com>
  * @author Florian Eckerstorfer <florian@eckerstorfer.org>

+ 1 - 2
src/Symfony/Component/Form/ValueTransformer/DateTimeToLocalizedStringTransformer.php

@@ -21,7 +21,6 @@ use Symfony\Component\Form\Exception\UnexpectedTypeException;
  *  * "input": The type of the normalized format ("time" or "timestamp"). Default: "datetime"
  *  * "output": The type of the transformed format ("string" or "array"). Default: "string"
  *  * "format": The format of the time string ("short", "medium", "long" or "full"). Default: "short"
- *  * "locale": The locale of the localized string. Default: Result of Locale::getDefault()
  *
  * @author Bernhard Schussek <bernhard.schussek@symfony-project.com>
  * @author Florian Eckerstorfer <florian@eckerstorfer.org>
@@ -126,6 +125,6 @@ class DateTimeToLocalizedStringTransformer extends BaseDateTimeTransformer
         $timeFormat = $this->getIntlFormatConstant($this->getOption('time_format'));
         $timezone = $this->getOption('output_timezone');
 
-        return new \IntlDateFormatter($this->locale, $dateFormat, $timeFormat, $timezone);
+        return new \IntlDateFormatter(\Locale::getDefault(), $dateFormat, $timeFormat, $timezone);
     }
 }

+ 2 - 1
src/Symfony/Component/Form/ValueTransformer/DateTimeToStringTransformer.php

@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Form\ValueTransformer;
 
+use Symfony\Component\Form\Configurable;
 use Symfony\Component\Form\Exception\UnexpectedTypeException;
 
 /**
@@ -19,7 +20,7 @@ use Symfony\Component\Form\Exception\UnexpectedTypeException;
  * @author Bernhard Schussek <bernhard.schussek@symfony-project.com>
  * @author Florian Eckerstorfer <florian@eckerstorfer.org>
  */
-class DateTimeToStringTransformer extends BaseValueTransformer
+class DateTimeToStringTransformer extends Configurable implements ValueTransformerInterface
 {
     /**
      * {@inheritDoc}

+ 2 - 1
src/Symfony/Component/Form/ValueTransformer/DateTimeToTimestampTransformer.php

@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Form\ValueTransformer;
 
+use Symfony\Component\Form\Configurable;
 use Symfony\Component\Form\Exception\UnexpectedTypeException;
 
 /**
@@ -19,7 +20,7 @@ use Symfony\Component\Form\Exception\UnexpectedTypeException;
  * @author Bernhard Schussek <bernhard.schussek@symfony-project.com>
  * @author Florian Eckerstorfer <florian@eckerstorfer.org>
  */
-class DateTimeToTimestampTransformer extends BaseValueTransformer
+class DateTimeToTimestampTransformer extends Configurable implements ValueTransformerInterface
 {
     /**
      * {@inheritDoc}

+ 3 - 2
src/Symfony/Component/Form/ValueTransformer/NumberToLocalizedStringTransformer.php

@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Form\ValueTransformer;
 
+use Symfony\Component\Form\Configurable;
 use Symfony\Component\Form\Exception\UnexpectedTypeException;
 
 /**
@@ -20,7 +21,7 @@ use Symfony\Component\Form\Exception\UnexpectedTypeException;
  * @author Bernhard Schussek <bernhard.schussek@symfony-project.com>
  * @author Florian Eckerstorfer <florian@eckerstorfer.org>
  */
-class NumberToLocalizedStringTransformer extends BaseValueTransformer
+class NumberToLocalizedStringTransformer extends Configurable implements ValueTransformerInterface
 {
     const ROUND_FLOOR    = \NumberFormatter::ROUND_FLOOR;
     const ROUND_DOWN     = \NumberFormatter::ROUND_DOWN;
@@ -100,7 +101,7 @@ class NumberToLocalizedStringTransformer extends BaseValueTransformer
      */
     protected function getNumberFormatter()
     {
-        $formatter = new \NumberFormatter($this->locale, \NumberFormatter::DECIMAL);
+        $formatter = new \NumberFormatter(\Locale::getDefault(), \NumberFormatter::DECIMAL);
 
         if ($this->getOption('precision') !== null) {
             $formatter->setAttribute(\NumberFormatter::FRACTION_DIGITS, $this->getOption('precision'));

+ 3 - 2
src/Symfony/Component/Form/ValueTransformer/PercentToLocalizedStringTransformer.php

@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Form\ValueTransformer;
 
+use Symfony\Component\Form\Configurable;
 use Symfony\Component\Form\Exception\UnexpectedTypeException;
 
 /**
@@ -19,7 +20,7 @@ use Symfony\Component\Form\Exception\UnexpectedTypeException;
  * @author Bernhard Schussek <bernhard.schussek@symfony-project.com>
  * @author Florian Eckerstorfer <florian@eckerstorfer.org>
  */
-class PercentToLocalizedStringTransformer extends BaseValueTransformer
+class PercentToLocalizedStringTransformer extends Configurable implements ValueTransformerInterface
 {
     const FRACTIONAL = 'fractional';
     const INTEGER = 'integer';
@@ -113,7 +114,7 @@ class PercentToLocalizedStringTransformer extends BaseValueTransformer
      */
     protected function getNumberFormatter()
     {
-        $formatter = new \NumberFormatter($this->locale, \NumberFormatter::DECIMAL);
+        $formatter = new \NumberFormatter(\Locale::getDefault(), \NumberFormatter::DECIMAL);
 
         $formatter->setAttribute(\NumberFormatter::FRACTION_DIGITS, $this->getOption('precision'));
 

+ 0 - 8
src/Symfony/Component/Form/ValueTransformer/ReversedTransformer.php

@@ -52,12 +52,4 @@ class ReversedTransformer implements ValueTransformerInterface
     {
         return $this->reversedTransformer->transform($value);
     }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setLocale($locale)
-    {
-        $this->reversedTransformer->setLocale($locale);
-    }
 }

+ 0 - 10
src/Symfony/Component/Form/ValueTransformer/ValueTransformerChain.php

@@ -74,14 +74,4 @@ class ValueTransformerChain implements ValueTransformerInterface
 
         return $value;
     }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setLocale($locale)
-    {
-        foreach ($this->transformers as $transformer) {
-            $transformer->setLocale($locale);
-        }
-    }
 }

+ 1 - 3
src/Symfony/Component/Form/ValueTransformer/ValueTransformerInterface.php

@@ -11,14 +11,12 @@
 
 namespace Symfony\Component\Form\ValueTransformer;
 
-use Symfony\Component\Form\Localizable;
-
 /**
  * Transforms a value between different representations.
  *
  * @author     Bernhard Schussek <bernhard.schussek@symfony-project.com>
  */
-interface ValueTransformerInterface extends Localizable
+interface ValueTransformerInterface
 {
     /**
      * Transforms a value from the original representation to a transformed representation.

+ 1 - 1
tests/Symfony/Tests/Component/Form/CountryFieldTest.php

@@ -18,7 +18,7 @@ class CountryFieldTest extends \PHPUnit_Framework_TestCase
 {
     public function testCountriesAreSelectable()
     {
-        FormContext::setLocale('de_AT');
+        \Locale::setDefault('de_AT');
 
         $field = new CountryField('country');
         $choices = $field->getOtherChoices();

+ 1 - 1
tests/Symfony/Tests/Component/Form/DateFieldTest.php

@@ -20,7 +20,7 @@ class DateFieldTest extends DateTimeTestCase
 {
     protected function setUp()
     {
-        FormContext::setLocale('de_AT');
+        \Locale::setDefault('de_AT');
     }
 
     public function testBind_fromInput_dateTime()

+ 0 - 14
tests/Symfony/Tests/Component/Form/FieldTest.php

@@ -145,20 +145,6 @@ class FieldTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals('news_article_title', $this->field->getId());
     }
 
-    public function testLocaleIsPassedToValueTransformer()
-    {
-        FormContext::setLocale('de_DE');
-
-        $transformer = $this->getMock('Symfony\Component\Form\ValueTransformer\ValueTransformerInterface');
-        $transformer->expects($this->exactly(1))
-                         ->method('setLocale')
-                         ->with($this->equalTo('de_DE'));
-
-        $field = new TestField('title', array(
-            'value_transformer' => $transformer,
-        ));
-    }
-
     public function testIsRequiredReturnsOwnValueIfNoParent()
     {
         $this->field->setRequired(true);

+ 1 - 1
tests/Symfony/Tests/Component/Form/LanguageFieldTest.php

@@ -18,7 +18,7 @@ class LanguageFieldTest extends \PHPUnit_Framework_TestCase
 {
     public function testCountriesAreSelectable()
     {
-        FormContext::setLocale('de_AT');
+        \Locale::setDefault('de_AT');
 
         $field = new LanguageField('language');
         $choices = $field->getOtherChoices();

+ 1 - 1
tests/Symfony/Tests/Component/Form/LocaleFieldTest.php

@@ -18,7 +18,7 @@ class LocaleFieldTest extends \PHPUnit_Framework_TestCase
 {
     public function testLocalesAreSelectable()
     {
-        FormContext::setLocale('de_AT');
+        \Locale::setDefault('de_AT');
 
         $field = new LocaleField('language');
         $choices = $field->getOtherChoices();

+ 25 - 20
tests/Symfony/Tests/Component/Form/ValueTransformer/DateTimeToLocalizedStringTransformerTest.php

@@ -25,6 +25,8 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
     {
         parent::setUp();
 
+        \Locale::setDefault('de_AT');
+
         $this->dateTime = new \DateTime('2010-02-03 04:05:06 UTC');
         $this->dateTimeWithoutSeconds = new \DateTime('2010-02-03 04:05:00 UTC');
     }
@@ -46,7 +48,6 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'date_format' => 'short',
         ));
-        $transformer->setLocale('de_AT');
         $this->assertEquals('03.02.10 04:05', $transformer->transform($this->dateTime));
     }
 
@@ -57,7 +58,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'date_format' => 'medium',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertEquals('03.02.2010 04:05', $transformer->transform($this->dateTime));
     }
 
@@ -68,7 +69,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'date_format' => 'long',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertEquals('03. Februar 2010 04:05', $transformer->transform($this->dateTime));
     }
 
@@ -79,7 +80,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'date_format' => 'full',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertEquals('Mittwoch, 03. Februar 2010 04:05', $transformer->transform($this->dateTime));
     }
 
@@ -90,7 +91,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'time_format' => 'short',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertEquals('03.02.2010 04:05', $transformer->transform($this->dateTime));
     }
 
@@ -101,7 +102,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'time_format' => 'medium',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertEquals('03.02.2010 04:05:06', $transformer->transform($this->dateTime));
     }
 
@@ -112,7 +113,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'time_format' => 'long',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertEquals('03.02.2010 04:05:06 GMT+00:00', $transformer->transform($this->dateTime));
     }
 
@@ -123,17 +124,19 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'time_format' => 'full',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertEquals('03.02.2010 04:05:06 GMT+00:00', $transformer->transform($this->dateTime));
     }
 
     public function testTransformToDifferentLocale()
     {
+        \Locale::setDefault('en_US');
+
         $transformer = new DateTimeToLocalizedStringTransformer(array(
             'input_timezone' => 'UTC',
             'output_timezone' => 'UTC',
         ));
-        $transformer->setLocale('en_US');
+
         $this->assertEquals('Feb 3, 2010 4:05 AM', $transformer->transform($this->dateTime));
     }
 
@@ -150,7 +153,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'input_timezone' => 'America/New_York',
             'output_timezone' => 'Asia/Hong_Kong',
         ));
-        $transformer->setLocale('de_AT');
+
 
         $input = new \DateTime('2010-02-03 04:05:06 America/New_York');
 
@@ -187,7 +190,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'date_format' => 'short',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertDateTimeEquals($this->dateTimeWithoutSeconds, $transformer->reverseTransform('03.02.10 04:05', null));
     }
 
@@ -198,7 +201,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'date_format' => 'medium',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertDateTimeEquals($this->dateTimeWithoutSeconds, $transformer->reverseTransform('03.02.2010 04:05', null));
     }
 
@@ -209,7 +212,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'date_format' => 'long',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertDateTimeEquals($this->dateTimeWithoutSeconds, $transformer->reverseTransform('03. Februar 2010 04:05', null));
     }
 
@@ -220,7 +223,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'date_format' => 'full',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertDateTimeEquals($this->dateTimeWithoutSeconds, $transformer->reverseTransform('Mittwoch, 03. Februar 2010 04:05', null));
     }
 
@@ -231,7 +234,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'time_format' => 'short',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertDateTimeEquals($this->dateTimeWithoutSeconds, $transformer->reverseTransform('03.02.2010 04:05', null));
     }
 
@@ -242,7 +245,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'time_format' => 'medium',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertDateTimeEquals($this->dateTime, $transformer->reverseTransform('03.02.2010 04:05:06', null));
     }
 
@@ -253,7 +256,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'time_format' => 'long',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertDateTimeEquals($this->dateTime, $transformer->reverseTransform('03.02.2010 04:05:06 GMT+00:00', null));
     }
 
@@ -264,17 +267,19 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'output_timezone' => 'UTC',
             'time_format' => 'full',
         ));
-        $transformer->setLocale('de_AT');
+
         $this->assertDateTimeEquals($this->dateTime, $transformer->reverseTransform('03.02.2010 04:05:06 GMT+00:00', null));
     }
 
     public function testReverseTransformFromDifferentLocale()
     {
+        \Locale::setDefault('en_US');
+
         $transformer = new DateTimeToLocalizedStringTransformer(array(
             'input_timezone' => 'UTC',
             'output_timezone' => 'UTC',
         ));
-        $transformer->setLocale('en_US');
+
         $this->assertDateTimeEquals($this->dateTimeWithoutSeconds, $transformer->reverseTransform('Feb 3, 2010 04:05 AM', null));
     }
 
@@ -284,7 +289,7 @@ class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase
             'input_timezone' => 'America/New_York',
             'output_timezone' => 'Asia/Hong_Kong',
         ));
-        $transformer->setLocale('de_AT');
+
 
         $dateTime = new \DateTime('2010-02-03 04:05:00 Asia/Hong_Kong');
         $dateTime->setTimezone(new \DateTimeZone('America/New_York'));

+ 7 - 2
tests/Symfony/Tests/Component/Form/ValueTransformer/MoneyToLocalizedStringTransformerTest.php

@@ -19,12 +19,18 @@ use Symfony\Tests\Component\Form\LocalizedTestCase;
 
 class MoneyToLocalizedStringTransformerTest extends LocalizedTestCase
 {
+    protected function setUp()
+    {
+        parent::setUp();
+
+        \Locale::setDefault('de_AT');
+    }
+
     public function testTransform()
     {
         $transformer = new MoneyToLocalizedStringTransformer(array(
             'divisor' => 100,
         ));
-        $transformer->setLocale('de_AT');
 
         $this->assertEquals('1,23', $transformer->transform(123));
     }
@@ -52,7 +58,6 @@ class MoneyToLocalizedStringTransformerTest extends LocalizedTestCase
         $transformer = new MoneyToLocalizedStringTransformer(array(
             'divisor' => 100,
         ));
-        $transformer->setLocale('de_AT');
 
         $this->assertEquals(123, $transformer->reverseTransform('1,23', null));
     }

+ 7 - 7
tests/Symfony/Tests/Component/Form/ValueTransformer/NumberToLocalizedStringTransformerTest.php

@@ -18,10 +18,16 @@ use Symfony\Tests\Component\Form\LocalizedTestCase;
 
 class NumberToLocalizedStringTransformerTest extends LocalizedTestCase
 {
+    protected function setUp()
+    {
+        parent::setUp();
+
+        \Locale::setDefault('de_AT');
+    }
+
     public function testTransform()
     {
         $transformer = new NumberToLocalizedStringTransformer();
-        $transformer->setLocale('de_AT');
 
         $this->assertEquals('1', $transformer->transform(1));
         $this->assertEquals('1,5', $transformer->transform(1.5));
@@ -41,7 +47,6 @@ class NumberToLocalizedStringTransformerTest extends LocalizedTestCase
         $transformer = new NumberToLocalizedStringTransformer(array(
             'grouping' => true,
         ));
-        $transformer->setLocale('de_AT');
 
         $this->assertEquals('1.234,5', $transformer->transform(1234.5));
         $this->assertEquals('12.345,912', $transformer->transform(12345.9123));
@@ -52,7 +57,6 @@ class NumberToLocalizedStringTransformerTest extends LocalizedTestCase
         $transformer = new NumberToLocalizedStringTransformer(array(
             'precision' => 2,
         ));
-        $transformer->setLocale('de_AT');
 
         $this->assertEquals('1234,50', $transformer->transform(1234.5));
         $this->assertEquals('678,92', $transformer->transform(678.916));
@@ -63,14 +67,12 @@ class NumberToLocalizedStringTransformerTest extends LocalizedTestCase
         $transformer = new NumberToLocalizedStringTransformer(array(
             'rounding-mode' => NumberToLocalizedStringTransformer::ROUND_DOWN,
         ));
-        $transformer->setLocale('de_AT');
         $this->assertEquals('1234,547', $transformer->transform(1234.547), '->transform() only applies rounding mode if precision set');
 
         $transformer = new NumberToLocalizedStringTransformer(array(
             'rounding-mode' => NumberToLocalizedStringTransformer::ROUND_DOWN,
             'precision' => 2,
         ));
-        $transformer->setLocale('de_AT');
         $this->assertEquals('1234,54', $transformer->transform(1234.547), '->transform() rounding-mode works');
 
     }
@@ -78,7 +80,6 @@ class NumberToLocalizedStringTransformerTest extends LocalizedTestCase
     public function testReverseTransform()
     {
         $transformer = new NumberToLocalizedStringTransformer();
-        $transformer->setLocale('de_AT');
 
         $this->assertEquals(1, $transformer->reverseTransform('1', null));
         $this->assertEquals(1.5, $transformer->reverseTransform('1,5', null));
@@ -98,7 +99,6 @@ class NumberToLocalizedStringTransformerTest extends LocalizedTestCase
         $transformer = new NumberToLocalizedStringTransformer(array(
             'grouping' => true,
         ));
-        $transformer->setLocale('de_AT');
 
         $this->assertEquals(1234.5, $transformer->reverseTransform('1.234,5', null));
         $this->assertEquals(12345.912, $transformer->reverseTransform('12.345,912', null));

+ 7 - 6
tests/Symfony/Tests/Component/Form/ValueTransformer/PercentToLocalizedStringTransformerTest.php

@@ -18,10 +18,16 @@ use Symfony\Tests\Component\Form\LocalizedTestCase;
 
 class PercentToLocalizedStringTransformerTest extends LocalizedTestCase
 {
+    protected function setUp()
+    {
+        parent::setUp();
+
+        \Locale::setDefault('de_AT');
+    }
+
     public function testTransform()
     {
         $transformer = new PercentToLocalizedStringTransformer();
-        $transformer->setLocale('de_AT');
 
         $this->assertEquals('10', $transformer->transform(0.1));
         $this->assertEquals('15', $transformer->transform(0.15));
@@ -41,7 +47,6 @@ class PercentToLocalizedStringTransformerTest extends LocalizedTestCase
         $transformer = new PercentToLocalizedStringTransformer(array(
             'type' => 'integer',
         ));
-        $transformer->setLocale('de_AT');
 
         $this->assertEquals('0', $transformer->transform(0.1));
         $this->assertEquals('1', $transformer->transform(1));
@@ -54,7 +59,6 @@ class PercentToLocalizedStringTransformerTest extends LocalizedTestCase
         $transformer = new PercentToLocalizedStringTransformer(array(
             'precision' => 2,
         ));
-        $transformer->setLocale('de_AT');
 
         $this->assertEquals('12,34', $transformer->transform(0.1234));
     }
@@ -62,7 +66,6 @@ class PercentToLocalizedStringTransformerTest extends LocalizedTestCase
     public function testReverseTransform()
     {
         $transformer = new PercentToLocalizedStringTransformer();
-        $transformer->setLocale('de_AT');
 
         $this->assertEquals(0.1, $transformer->reverseTransform('10', null));
         $this->assertEquals(0.15, $transformer->reverseTransform('15', null));
@@ -82,7 +85,6 @@ class PercentToLocalizedStringTransformerTest extends LocalizedTestCase
         $transformer = new PercentToLocalizedStringTransformer(array(
             'type' => 'integer',
         ));
-        $transformer->setLocale('de_AT');
 
         $this->assertEquals(10, $transformer->reverseTransform('10', null));
         $this->assertEquals(15, $transformer->reverseTransform('15', null));
@@ -95,7 +97,6 @@ class PercentToLocalizedStringTransformerTest extends LocalizedTestCase
         $transformer = new PercentToLocalizedStringTransformer(array(
             'precision' => 2,
         ));
-        $transformer->setLocale('de_AT');
 
         $this->assertEquals(0.1234, $transformer->reverseTransform('12,34', null));
     }

+ 0 - 16
tests/Symfony/Tests/Component/Form/ValueTransformer/ValueTransformerChainTest.php

@@ -50,20 +50,4 @@ class ValueTransformerChainTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals('baz', $chain->reverseTransform('foo', null));
     }
-
-    public function testSetLocale()
-    {
-        $transformer1 = $this->getMock('Symfony\Component\Form\ValueTransformer\ValueTransformerInterface');
-        $transformer1->expects($this->once())
-                                 ->method('setLocale')
-                                 ->with($this->identicalTo('de_DE'));
-        $transformer2 = $this->getMock('Symfony\Component\Form\ValueTransformer\ValueTransformerInterface');
-        $transformer2->expects($this->once())
-                                 ->method('setLocale')
-                                 ->with($this->identicalTo('de_DE'));
-
-        $chain = new ValueTransformerChain(array($transformer1, $transformer2));
-
-        $chain->setLocale('de_DE');
-    }
 }