Merge branch '3.4' into 4.4

* 3.4:
  [Validator] Add missing translations of nn locale
  [HttpKernel] Fix that the `Store` would not save responses with the X-Content-Digest header present
  [Intl] bump icu 67.1
This commit is contained in:
Nicolas Grekas 2020-05-19 18:54:45 +02:00
commit 2c57ae2b97
1070 changed files with 4468 additions and 1290 deletions

View File

@ -175,19 +175,15 @@ class Store implements StoreInterface
$key = $this->getCacheKey($request);
$storedEnv = $this->persistRequest($request);
// write the response body to the entity store if this is the original response
if (!$response->headers->has('X-Content-Digest')) {
$digest = $this->generateContentDigest($response);
$digest = $this->generateContentDigest($response);
$response->headers->set('X-Content-Digest', $digest);
if (!$this->save($digest, $response->getContent())) {
throw new \RuntimeException('Unable to store the entity.');
}
if (!$this->save($digest, $response->getContent(), false)) {
throw new \RuntimeException('Unable to store the entity.');
}
$response->headers->set('X-Content-Digest', $digest);
if (!$response->headers->has('Transfer-Encoding')) {
$response->headers->set('Content-Length', \strlen($response->getContent()));
}
if (!$response->headers->has('Transfer-Encoding')) {
$response->headers->set('Content-Length', \strlen($response->getContent()));
}
// read existing cache entries, remove non-varying, and add this one to the list
@ -346,10 +342,14 @@ class Store implements StoreInterface
/**
* Save data for the given key.
*/
private function save(string $key, string $data): bool
private function save(string $key, string $data, bool $overwrite = true): bool
{
$path = $this->getPath($key);
if (!$overwrite && file_exists($path)) {
return true;
}
if (isset($this->locks[$key])) {
$fp = $this->locks[$key];
@ftruncate($fp, 0);

View File

@ -97,6 +97,27 @@ class StoreTest extends TestCase
$this->assertEquals('en9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', $res['x-content-digest'][0]);
}
public function testDoesNotTrustXContentDigestFromUpstream()
{
$response = new Response('test', 200, ['X-Content-Digest' => 'untrusted-from-elsewhere']);
$cacheKey = $this->store->write($this->request, $response);
$entries = $this->getStoreMetadata($cacheKey);
list(, $res) = $entries[0];
$this->assertEquals('en9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', $res['x-content-digest'][0]);
$this->assertEquals('en9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', $response->headers->get('X-Content-Digest'));
}
public function testWritesResponseEvenIfXContentDigestIsPresent()
{
// Prime the store
$this->store->write($this->request, new Response('test', 200, ['X-Content-Digest' => 'untrusted-from-elsewhere']));
$response = $this->store->lookup($this->request);
$this->assertNotNull($response);
}
public function testFindsAStoredEntryWithLookup()
{
$this->storeSimpleEntry();

View File

@ -82,7 +82,6 @@ class CurrencyDataGenerator extends AbstractDataGenerator
if (isset($localeBundle['Currencies']) && null !== $localeBundle['Currencies']) {
$data = [
'Version' => $localeBundle['Version'],
'Names' => $this->generateSymbolNamePairs($localeBundle),
];
@ -102,7 +101,6 @@ class CurrencyDataGenerator extends AbstractDataGenerator
$rootBundle = $reader->read($tempDir, 'root');
return [
'Version' => $rootBundle['Version'],
'Names' => $this->generateSymbolNamePairs($rootBundle),
];
}
@ -112,7 +110,6 @@ class CurrencyDataGenerator extends AbstractDataGenerator
*/
protected function generateDataForMeta(BundleEntryReaderInterface $reader, string $tempDir): ?array
{
$rootBundle = $reader->read($tempDir, 'root');
$supplementalDataBundle = $reader->read($tempDir, 'supplementalData');
$numericCodesBundle = $reader->read($tempDir, 'currencyNumericCodes');
@ -121,7 +118,6 @@ class CurrencyDataGenerator extends AbstractDataGenerator
sort($this->currencyCodes);
$data = [
'Version' => $rootBundle['Version'],
'Currencies' => $this->currencyCodes,
'Meta' => $this->generateCurrencyMeta($supplementalDataBundle),
'Alpha3ToNumeric' => $this->generateAlpha3ToNumericMapping($numericCodesBundle, $this->currencyCodes),

View File

@ -143,7 +143,6 @@ class LanguageDataGenerator extends AbstractDataGenerator
}
}
$data = [
'Version' => $localeBundle['Version'],
'Names' => $names,
'LocalizedNames' => $localizedNames,
];
@ -167,7 +166,6 @@ class LanguageDataGenerator extends AbstractDataGenerator
*/
protected function generateDataForMeta(BundleEntryReaderInterface $reader, string $tempDir): ?array
{
$rootBundle = $reader->read($tempDir, 'root');
$metadataBundle = $reader->read($tempDir, 'metadata');
$this->languageCodes = array_unique($this->languageCodes);
@ -175,7 +173,6 @@ class LanguageDataGenerator extends AbstractDataGenerator
sort($this->languageCodes);
return [
'Version' => $rootBundle['Version'],
'Languages' => $this->languageCodes,
'Alpha3Languages' => $this->generateAlpha3Codes($this->languageCodes, $metadataBundle),
'Alpha2ToAlpha3' => $this->generateAlpha2ToAlpha3Mapping($metadataBundle),

View File

@ -116,7 +116,6 @@ class RegionDataGenerator extends AbstractDataGenerator
// isset() on \ResourceBundle returns true even if the value is null
if (isset($localeBundle['Countries']) && null !== $localeBundle['Countries']) {
$data = [
'Version' => $localeBundle['Version'],
'Names' => $this->generateRegionNames($localeBundle),
];
@ -141,7 +140,6 @@ class RegionDataGenerator extends AbstractDataGenerator
*/
protected function generateDataForMeta(BundleEntryReaderInterface $reader, string $tempDir): ?array
{
$rootBundle = $reader->read($tempDir, 'root');
$metadataBundle = $reader->read($tempDir, 'metadata');
$this->regionCodes = array_unique($this->regionCodes);
@ -153,7 +151,6 @@ class RegionDataGenerator extends AbstractDataGenerator
asort($alpha3ToAlpha2);
return [
'Version' => $rootBundle['Version'],
'Regions' => $this->regionCodes,
'Alpha2ToAlpha3' => $alpha2ToAlpha3,
'Alpha3ToAlpha2' => $alpha3ToAlpha2,

View File

@ -69,7 +69,6 @@ class ScriptDataGenerator extends AbstractDataGenerator
// isset() on \ResourceBundle returns true even if the value is null
if (isset($localeBundle['Scripts']) && null !== $localeBundle['Scripts']) {
$data = [
'Version' => $localeBundle['Version'],
'Names' => array_diff_key(iterator_to_array($localeBundle['Scripts']), self::$blacklist),
];
@ -94,14 +93,11 @@ class ScriptDataGenerator extends AbstractDataGenerator
*/
protected function generateDataForMeta(BundleEntryReaderInterface $reader, string $tempDir): ?array
{
$rootBundle = $reader->read($tempDir, 'root');
$this->scriptCodes = array_unique($this->scriptCodes);
sort($this->scriptCodes);
return [
'Version' => $rootBundle['Version'],
'Scripts' => $this->scriptCodes,
];
}

View File

@ -94,7 +94,6 @@ class TimezoneDataGenerator extends AbstractDataGenerator
}
$data = [
'Version' => $localeBundle['Version'],
'Names' => $this->generateZones($reader, $tempDir, $displayLocale),
'Meta' => self::generateZoneMetadata($localeBundle),
];
@ -131,7 +130,6 @@ class TimezoneDataGenerator extends AbstractDataGenerator
$rootBundle = $reader->read($tempDir, 'root');
return [
'Version' => $rootBundle['Version'],
'Meta' => self::generateZoneMetadata($rootBundle),
];
}
@ -149,7 +147,6 @@ class TimezoneDataGenerator extends AbstractDataGenerator
ksort($this->zoneToCountryMapping);
$data = [
'Version' => $rootBundle['Version'],
'Zones' => $this->zoneIds,
'ZoneToCountry' => $this->zoneToCountryMapping,
'CountryToZone' => self::generateCountryToZoneMapping($this->zoneToCountryMapping),

View File

@ -256,7 +256,7 @@ final class Intl
*/
public static function getIcuStubVersion(): string
{
return '66.1';
return '67.1';
}
/**

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AED": [
"AED",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"NAD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AED": [
"AED",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AED": [
"AED",
@ -239,7 +238,7 @@
],
"HRK": [
"HRK",
"HRK"
"የክሮሽያ ኩና"
],
"HTG": [
"HTG",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"DJF": [
"Fdj",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ERN": [
"Nfk",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"KMF": [
"CF",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"SDG": [
"SDG",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"SOS": [
"S",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"GBP": [
"GB£",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AED": [
"AED",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AZN": [
"₼",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AED": [
"AED",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AED": [
"AED",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"CNY": [
"¥",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"CNY": [
"CN¥",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"FRF": [
"F",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AED": [
"AED",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AED": [
"AED",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"BYN": [
"BYN",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"EUR": [
"EUR",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"LUF": [
"F",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AED": [
"AED",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ADP": [
"ADP",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"BYB": [
"BYB",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"EUR": [
"€",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AED": [
"AED",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"XCD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"XCD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AED": [
"AED",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"BBD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"BIF": [
"FBu",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"BMD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"BSD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"BWP": [
"P",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"BZD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"CAD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AUD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"NZD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AUD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"DKK": [
"kr.",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"XCD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ERN": [
"Nfk",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"FJD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"FKP": [
"£",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"XCD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"GBP": [
"£",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"GHS": [
"GH₵",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"GBP": [
"GB£",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"GMD": [
"D",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"GYD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"GBP": [
"£",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"VEF": [
"VEF",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"GBP": [
"£",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"JMD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"KES": [
"Ksh",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AUD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"XCD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"KYD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"XCD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"LRD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"ZAR": [
"R",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"MGA": [
"Ar",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"MOP": [
"MOP$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"XCD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"GBP": [
"GB£",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"MUR": [
"Rs",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"MWK": [
"MK",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"MYR": [
"RM",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"NAD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AUD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"NGN": [
"₦",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"VUV": [
"VT",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"AUD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"NZD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"NZD": [
"$",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"PGK": [
"K",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"PHP": [
"₱",

View File

@ -1,5 +1,4 @@
{
"Version": "36.1",
"Names": {
"PKR": [
"Rs",

Some files were not shown because too many files have changed in this diff Show More