minor #20551 [ci] Testing with UTC hides bugs (nicolas-grekas)
This PR was merged into the 2.7 branch.
Discussion
----------
[ci] Testing with UTC hides bugs
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
As shown by #20550, we're having bugs because we don't in proper TZ conditions.
Let's do Europe on Travis, and America on Windows.
Commits
-------
e0f9bda
[ci] Testing with UTC hides bugs
This commit is contained in:
commit
e968d0ff5d
@ -47,6 +47,7 @@ before_install:
|
||||
# A sigchild-enabled-PHP is used to test the Process component on the lowest PHP matrix line
|
||||
- if [[ ! $deps && $PHP = ${MIN_PHP%.*} && ! -d php-$MIN_PHP/sapi ]]; then wget http://museum.php.net/php5/php-$MIN_PHP.tar.bz2 -O - | tar -xj; (cd php-$MIN_PHP; ./configure --enable-sigchild --enable-pcntl; make -j2); fi
|
||||
- if [[ ! $PHP = hhvm* ]]; then INI_FILE=~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; else INI_FILE=/etc/hhvm/php.ini; fi
|
||||
- if [[ ! $skip ]]; then echo date.timezone = Europe/Paris >> $INI_FILE; fi
|
||||
- if [[ ! $skip ]]; then echo memory_limit = -1 >> $INI_FILE; fi
|
||||
- if [[ ! $skip ]]; then echo session.gc_probability = 0 >> $INI_FILE; fi
|
||||
- if [[ ! $skip && $PHP = 5.* ]]; then echo extension = mongo.so >> $INI_FILE; fi
|
||||
|
@ -33,7 +33,7 @@ install:
|
||||
- cd ..
|
||||
- copy /Y php.ini-development php.ini-min
|
||||
- echo max_execution_time=1200 >> php.ini-min
|
||||
- echo date.timezone="UTC" >> php.ini-min
|
||||
- echo date.timezone="America/Los_Angeles" >> php.ini-min
|
||||
- echo extension_dir=ext >> php.ini-min
|
||||
- copy /Y php.ini-min php.ini-max
|
||||
- echo extension=php_openssl.dll >> php.ini-max
|
||||
|
@ -87,7 +87,7 @@ class IntegerToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCas
|
||||
public function testReverseTransform()
|
||||
{
|
||||
// Since we test against "de_AT", we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -109,7 +109,7 @@ class IntegerToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCas
|
||||
public function testReverseTransformWithGrouping()
|
||||
{
|
||||
// Since we test against "de_AT", we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
|
@ -19,7 +19,7 @@ class MoneyToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testTransform()
|
||||
{
|
||||
// Since we test against "de_AT", we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -47,7 +47,7 @@ class MoneyToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testReverseTransform()
|
||||
{
|
||||
// Since we test against "de_AT", we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
|
@ -42,7 +42,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testTransform($from, $to, $locale)
|
||||
{
|
||||
// Since we test against other locales, we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault($locale);
|
||||
|
||||
@ -68,7 +68,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testTransformWithGrouping($from, $to, $locale)
|
||||
{
|
||||
// Since we test against other locales, we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault($locale);
|
||||
|
||||
@ -80,7 +80,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testTransformWithScale()
|
||||
{
|
||||
// Since we test against "de_AT", we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -185,7 +185,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testTransformWithRounding($scale, $input, $output, $roundingMode)
|
||||
{
|
||||
// Since we test against "de_AT", we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -197,7 +197,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testTransformDoesNotRoundIfNoScale()
|
||||
{
|
||||
// Since we test against "de_AT", we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -212,7 +212,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testReverseTransform($to, $from, $locale)
|
||||
{
|
||||
// Since we test against other locales, we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault($locale);
|
||||
|
||||
@ -227,7 +227,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testReverseTransformWithGrouping($to, $from, $locale)
|
||||
{
|
||||
// Since we test against other locales, we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault($locale);
|
||||
|
||||
@ -244,7 +244,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testReverseTransformWithGroupingAndFixedSpaces()
|
||||
{
|
||||
// Since we test against other locales, we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('ru');
|
||||
|
||||
@ -256,7 +256,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testReverseTransformWithGroupingButWithoutGroupSeparator()
|
||||
{
|
||||
// Since we test against "de_AT", we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -376,7 +376,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testDecimalSeparatorMayBeDotIfGroupingSeparatorIsNotDot()
|
||||
{
|
||||
// Since we test against other locales, we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('fr');
|
||||
$transformer = new NumberToLocalizedStringTransformer(null, true);
|
||||
@ -396,7 +396,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testDecimalSeparatorMayNotBeDotIfGroupingSeparatorIsDot()
|
||||
{
|
||||
// Since we test against "de_AT", we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -411,7 +411,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testDecimalSeparatorMayNotBeDotIfGroupingSeparatorIsDotWithNoGroupSep()
|
||||
{
|
||||
// Since we test against "de_AT", we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -423,7 +423,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testDecimalSeparatorMayBeDotIfGroupingSeparatorIsDotButNoGroupingUsed()
|
||||
{
|
||||
// Since we test against other locales, we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('fr');
|
||||
$transformer = new NumberToLocalizedStringTransformer();
|
||||
@ -435,7 +435,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testDecimalSeparatorMayBeCommaIfGroupingSeparatorIsNotComma()
|
||||
{
|
||||
// Since we test against other locales, we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('bg');
|
||||
$transformer = new NumberToLocalizedStringTransformer(null, true);
|
||||
@ -588,7 +588,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testReverseTransformDisallowsCenteredExtraCharactersMultibyte()
|
||||
{
|
||||
// Since we test against other locales, we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('ru');
|
||||
|
||||
@ -605,7 +605,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testReverseTransformIgnoresTrailingSpacesInExceptionMessage()
|
||||
{
|
||||
// Since we test against other locales, we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('ru');
|
||||
|
||||
@ -633,7 +633,7 @@ class NumberToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
public function testReverseTransformDisallowsTrailingExtraCharactersMultibyte()
|
||||
{
|
||||
// Since we test against other locales, we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('ru');
|
||||
|
||||
|
@ -53,7 +53,7 @@ class PercentToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCas
|
||||
public function testTransformWithScale()
|
||||
{
|
||||
// Since we test against "de_AT", we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -92,7 +92,7 @@ class PercentToLocalizedStringTransformerTest extends \PHPUnit_Framework_TestCas
|
||||
public function testReverseTransformWithScale()
|
||||
{
|
||||
// Since we test against "de_AT", we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
|
@ -19,7 +19,7 @@ class CountryTypeTest extends TestCase
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
IntlTestHelper::requireIntl($this);
|
||||
IntlTestHelper::requireIntl($this, false);
|
||||
|
||||
parent::setUp();
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ class CurrencyTypeTest extends TestCase
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
IntlTestHelper::requireIntl($this);
|
||||
IntlTestHelper::requireIntl($this, false);
|
||||
|
||||
parent::setUp();
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ class DateTypeTest extends TestCase
|
||||
public function testSubmitFromSingleTextDateTime()
|
||||
{
|
||||
// we test against "de_AT", so we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -91,7 +91,7 @@ class DateTypeTest extends TestCase
|
||||
public function testSubmitFromSingleTextString()
|
||||
{
|
||||
// we test against "de_AT", so we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -112,7 +112,7 @@ class DateTypeTest extends TestCase
|
||||
public function testSubmitFromSingleTextTimestamp()
|
||||
{
|
||||
// we test against "de_AT", so we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -135,7 +135,7 @@ class DateTypeTest extends TestCase
|
||||
public function testSubmitFromSingleTextRaw()
|
||||
{
|
||||
// we test against "de_AT", so we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -399,7 +399,7 @@ class DateTypeTest extends TestCase
|
||||
public function testSetDataWithNegativeTimezoneOffsetStringInput()
|
||||
{
|
||||
// we test against "de_AT", so we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -421,7 +421,7 @@ class DateTypeTest extends TestCase
|
||||
public function testSetDataWithNegativeTimezoneOffsetDateTimeInput()
|
||||
{
|
||||
// we test against "de_AT", so we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -495,7 +495,7 @@ class DateTypeTest extends TestCase
|
||||
public function testMonthsOptionLongFormat()
|
||||
{
|
||||
// we test against "de_AT", so we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -515,7 +515,7 @@ class DateTypeTest extends TestCase
|
||||
public function testMonthsOptionLongFormatWithDifferentTimezone()
|
||||
{
|
||||
// we test against "de_AT", so we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -621,7 +621,7 @@ class DateTypeTest extends TestCase
|
||||
public function testPassDatePatternToView()
|
||||
{
|
||||
// we test against "de_AT", so we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -634,7 +634,7 @@ class DateTypeTest extends TestCase
|
||||
public function testPassDatePatternToViewDifferentFormat()
|
||||
{
|
||||
// we test against "de_AT", so we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_AT');
|
||||
|
||||
@ -682,7 +682,7 @@ class DateTypeTest extends TestCase
|
||||
public function testDatePatternFormatWithQuotedStrings()
|
||||
{
|
||||
// we test against "es_ES", so we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('es_ES');
|
||||
|
||||
|
@ -18,7 +18,7 @@ class IntegerTypeTest extends TestCase
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
IntlTestHelper::requireIntl($this);
|
||||
IntlTestHelper::requireIntl($this, false);
|
||||
|
||||
parent::setUp();
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ class LanguageTypeTest extends TestCase
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
IntlTestHelper::requireIntl($this);
|
||||
IntlTestHelper::requireIntl($this, false);
|
||||
|
||||
parent::setUp();
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ class LocaleTypeTest extends TestCase
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
IntlTestHelper::requireIntl($this);
|
||||
IntlTestHelper::requireIntl($this, false);
|
||||
|
||||
parent::setUp();
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ class MoneyTypeTest extends TestCase
|
||||
{
|
||||
// we test against different locales, so we need the full
|
||||
// implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
parent::setUp();
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ class NumberTypeTest extends TestCase
|
||||
parent::setUp();
|
||||
|
||||
// we test against "de_DE", so we need the full implementation
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('de_DE');
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ class CollatorTest extends AbstractCollatorTest
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
parent::setUp();
|
||||
}
|
||||
|
@ -908,9 +908,7 @@ abstract class AbstractIntlDateFormatterTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
$dateTime = new \DateTime();
|
||||
$dateTime->setTimestamp(null === $timestamp ? time() : $timestamp);
|
||||
if (null !== $timeZone) {
|
||||
$dateTime->setTimezone(new \DateTimeZone($timeZone));
|
||||
}
|
||||
$dateTime->setTimezone(new \DateTimeZone($timeZone ?: getenv('TZ') ?: 'UTC'));
|
||||
|
||||
return $dateTime;
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ class IntlDateFormatterTest extends AbstractIntlDateFormatterTest
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
parent::setUp();
|
||||
}
|
||||
@ -45,6 +45,8 @@ class IntlDateFormatterTest extends AbstractIntlDateFormatterTest
|
||||
|
||||
protected function getDateFormatter($locale, $datetype, $timetype, $timezone = null, $calendar = IntlDateFormatter::GREGORIAN, $pattern = null)
|
||||
{
|
||||
IntlTestHelper::requireFullIntl($this, '55.1');
|
||||
|
||||
if (!$formatter = new \IntlDateFormatter($locale, $datetype, $timetype, $timezone, $calendar, $pattern)) {
|
||||
throw new \InvalidArgumentException(intl_get_error_message());
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ class IntlGlobalsTest extends AbstractIntlGlobalsTest
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
parent::setUp();
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ class LocaleTest extends AbstractLocaleTest
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
parent::setUp();
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ class NumberFormatterTest extends AbstractNumberFormatterTest
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, '55.1');
|
||||
|
||||
parent::setUp();
|
||||
}
|
||||
@ -32,6 +32,13 @@ class NumberFormatterTest extends AbstractNumberFormatterTest
|
||||
$this->assertInstanceOf('\NumberFormatter', \NumberFormatter::create('en', \NumberFormatter::DECIMAL));
|
||||
}
|
||||
|
||||
public function testGetTextAttribute()
|
||||
{
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
|
||||
parent::testGetTextAttribute();
|
||||
}
|
||||
|
||||
protected function getNumberFormatter($locale = 'en', $style = null, $pattern = null)
|
||||
{
|
||||
return new \NumberFormatter($locale, $style, $pattern);
|
||||
|
@ -28,19 +28,21 @@ class IntlTestHelper
|
||||
{
|
||||
/**
|
||||
* Should be called before tests that work fine with the stub implementation.
|
||||
*
|
||||
* @param \PhpUnit_Framework_TestCase $testCase
|
||||
*/
|
||||
public static function requireIntl(\PHPUnit_Framework_TestCase $testCase)
|
||||
public static function requireIntl(\PHPUnit_Framework_TestCase $testCase, $minimumIcuVersion = null)
|
||||
{
|
||||
if (null === $minimumIcuVersion) {
|
||||
$minimumIcuVersion = Intl::getIcuStubVersion();
|
||||
}
|
||||
|
||||
// We only run tests if the version is *one specific version*.
|
||||
// This condition is satisfied if
|
||||
//
|
||||
// * the intl extension is loaded with version Intl::getIcuStubVersion()
|
||||
// * the intl extension is not loaded
|
||||
|
||||
if (IcuVersion::compare(Intl::getIcuVersion(), Intl::getIcuStubVersion(), '!=', 1)) {
|
||||
$testCase->markTestSkipped('ICU version '.Intl::getIcuStubVersion().' is required.');
|
||||
if (($minimumIcuVersion || defined('HHVM_VERSION_ID')) && IcuVersion::compare(Intl::getIcuVersion(), $minimumIcuVersion, '!=', 1)) {
|
||||
$testCase->markTestSkipped('ICU version '.$minimumIcuVersion.' is required.');
|
||||
}
|
||||
|
||||
// Normalize the default locale in case this is not done explicitly
|
||||
@ -60,24 +62,15 @@ class IntlTestHelper
|
||||
/**
|
||||
* Should be called before tests that require a feature-complete intl
|
||||
* implementation.
|
||||
*
|
||||
* @param \PhpUnit_Framework_TestCase $testCase
|
||||
*/
|
||||
public static function requireFullIntl(\PHPUnit_Framework_TestCase $testCase)
|
||||
public static function requireFullIntl(\PHPUnit_Framework_TestCase $testCase, $minimumIcuVersion = null)
|
||||
{
|
||||
// We only run tests if the intl extension is loaded...
|
||||
if (!Intl::isExtensionLoaded()) {
|
||||
$testCase->markTestSkipped('Extension intl is required.');
|
||||
}
|
||||
|
||||
// ... and only if the version is *one specific version*
|
||||
if (IcuVersion::compare(Intl::getIcuVersion(), Intl::getIcuStubVersion(), '!=', 1)) {
|
||||
$testCase->markTestSkipped('ICU version '.Intl::getIcuStubVersion().' is required.');
|
||||
}
|
||||
|
||||
// Normalize the default locale in case this is not done explicitly
|
||||
// in the test
|
||||
\Locale::setDefault('en');
|
||||
self::requireIntl($testCase, $minimumIcuVersion);
|
||||
|
||||
// Consequently, tests will
|
||||
//
|
||||
@ -89,8 +82,6 @@ class IntlTestHelper
|
||||
|
||||
/**
|
||||
* Skips the test unless the current system has a 32bit architecture.
|
||||
*
|
||||
* @param \PhpUnit_Framework_TestCase $testCase
|
||||
*/
|
||||
public static function require32Bit(\PHPUnit_Framework_TestCase $testCase)
|
||||
{
|
||||
@ -101,8 +92,6 @@ class IntlTestHelper
|
||||
|
||||
/**
|
||||
* Skips the test unless the current system has a 64bit architecture.
|
||||
*
|
||||
* @param \PhpUnit_Framework_TestCase $testCase
|
||||
*/
|
||||
public static function require64Bit(\PHPUnit_Framework_TestCase $testCase)
|
||||
{
|
||||
|
@ -36,7 +36,7 @@ class LocaleTest extends \PHPUnit_Framework_TestCase
|
||||
|
||||
public function testGetDisplayCountriesForSwitzerland()
|
||||
{
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
$countries = Locale::getDisplayCountries('de_CH');
|
||||
$this->assertEquals('Schweiz', $countries['CH']);
|
||||
|
@ -60,7 +60,7 @@ class IdentityTranslatorTest extends \PHPUnit_Framework_TestCase
|
||||
public function testGetLocaleReturnsDefaultLocaleIfNotSet()
|
||||
{
|
||||
// in order to test with "pt_BR"
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
$translator = new IdentityTranslator();
|
||||
|
||||
|
@ -96,7 +96,7 @@ class CountryValidatorTest extends AbstractConstraintValidatorTest
|
||||
public function testValidateUsingCountrySpecificLocale()
|
||||
{
|
||||
// in order to test with "en_GB"
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('en_GB');
|
||||
|
||||
|
@ -65,7 +65,7 @@ class CurrencyValidatorTest extends AbstractConstraintValidatorTest
|
||||
**/
|
||||
public function testValidCurrenciesWithCountrySpecificLocale($currency)
|
||||
{
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('en_GB');
|
||||
|
||||
|
@ -95,7 +95,7 @@ class LanguageValidatorTest extends AbstractConstraintValidatorTest
|
||||
|
||||
public function testValidateUsingCountrySpecificLocale()
|
||||
{
|
||||
IntlTestHelper::requireFullIntl($this);
|
||||
IntlTestHelper::requireFullIntl($this, false);
|
||||
|
||||
\Locale::setDefault('fr_FR');
|
||||
$existingLanguage = 'en';
|
||||
|
Reference in New Issue
Block a user