Inital commit for unit test configuration
This commit is contained in:

committed by
Manish Verma

parent
2f0796e954
commit
e0436b7757
@@ -38,8 +38,7 @@ Did you forget a "use" statement for another namespace?"
|
||||
["line":protected]=>
|
||||
int(%d)
|
||||
["trace":"Exception":private]=>
|
||||
array(0) {
|
||||
}
|
||||
array(%d) {%A}
|
||||
["previous":"Exception":private]=>
|
||||
NULL
|
||||
["severity":protected]=>
|
||||
|
@@ -1467,6 +1467,31 @@ class FilesystemTest extends FilesystemTestCase
|
||||
}
|
||||
}
|
||||
|
||||
public function testDumpFileWithArray()
|
||||
{
|
||||
$filename = $this->workspace.\DIRECTORY_SEPARATOR.'foo'.\DIRECTORY_SEPARATOR.'baz.txt';
|
||||
|
||||
$this->filesystem->dumpFile($filename, array('bar'));
|
||||
|
||||
$this->assertFileExists($filename);
|
||||
$this->assertStringEqualsFile($filename, 'bar');
|
||||
}
|
||||
|
||||
public function testDumpFileWithResource()
|
||||
{
|
||||
$filename = $this->workspace.\DIRECTORY_SEPARATOR.'foo'.\DIRECTORY_SEPARATOR.'baz.txt';
|
||||
|
||||
$resource = fopen('php://memory', 'rw');
|
||||
fwrite($resource, 'bar');
|
||||
fseek($resource, 0);
|
||||
|
||||
$this->filesystem->dumpFile($filename, $resource);
|
||||
|
||||
fclose($resource);
|
||||
$this->assertFileExists($filename);
|
||||
$this->assertStringEqualsFile($filename, 'bar');
|
||||
}
|
||||
|
||||
public function testDumpFileOverwritesAnExistingFile()
|
||||
{
|
||||
$filename = $this->workspace.\DIRECTORY_SEPARATOR.'foo.txt';
|
||||
|
@@ -31,8 +31,8 @@ class BinaryFileResponse extends Response
|
||||
* @var File
|
||||
*/
|
||||
protected $file;
|
||||
protected $offset;
|
||||
protected $maxlen;
|
||||
protected $offset = 0;
|
||||
protected $maxlen = -1;
|
||||
protected $deleteFileAfterSend = false;
|
||||
|
||||
/**
|
||||
|
14
vendor/symfony/http-foundation/Request.php
vendored
14
vendor/symfony/http-foundation/Request.php
vendored
@@ -1941,10 +1941,16 @@ class Request
|
||||
$forwardedValues = array();
|
||||
$param = self::$forwardedParams[$type];
|
||||
foreach ($parts as $subParts) {
|
||||
$assoc = HeaderUtils::combine($subParts);
|
||||
if (isset($assoc[$param])) {
|
||||
$forwardedValues[] = self::HEADER_X_FORWARDED_PORT === $type ? substr_replace($assoc[$param], '0.0.0.0', 0, strrpos($assoc[$param], ':')) : $assoc[$param];
|
||||
if (null === $v = HeaderUtils::combine($subParts)[$param] ?? null) {
|
||||
continue;
|
||||
}
|
||||
if (self::HEADER_X_FORWARDED_PORT === $type) {
|
||||
if (']' === substr($v, -1) || false === $v = strrchr($v, ':')) {
|
||||
$v = $this->isSecure() ? ':443' : ':80';
|
||||
}
|
||||
$v = '0.0.0.0'.$v;
|
||||
}
|
||||
$forwardedValues[] = $v;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1985,7 +1991,7 @@ class Request
|
||||
if ($i) {
|
||||
$clientIps[$key] = $clientIp = substr($clientIp, 0, $i);
|
||||
}
|
||||
} elseif ('[' == $clientIp[0]) {
|
||||
} elseif (0 === strpos($clientIp, '[')) {
|
||||
// Strip brackets and :port from IPv6 addresses.
|
||||
$i = strpos($clientIp, ']', 1);
|
||||
$clientIps[$key] = $clientIp = substr($clientIp, 1, $i - 1);
|
||||
|
1
vendor/symfony/http-foundation/Response.php
vendored
1
vendor/symfony/http-foundation/Response.php
vendored
@@ -689,6 +689,7 @@ class Response
|
||||
{
|
||||
if ($this->isFresh()) {
|
||||
$this->headers->set('Age', $this->getMaxAge());
|
||||
$this->headers->remove('Expires');
|
||||
}
|
||||
|
||||
return $this;
|
||||
|
@@ -33,14 +33,20 @@ class RedisSessionHandler extends AbstractSessionHandler
|
||||
* List of available options:
|
||||
* * prefix: The prefix to use for the keys in order to avoid collision on the Redis server.
|
||||
*
|
||||
* @param \Redis|\RedisArray|\RedisCluster|\Predis\Client $redis
|
||||
* @param array $options An associative array of options
|
||||
* @param \Redis|\RedisArray|\RedisCluster|\Predis\Client|RedisProxy $redis
|
||||
* @param array $options An associative array of options
|
||||
*
|
||||
* @throws \InvalidArgumentException When unsupported client or options are passed
|
||||
*/
|
||||
public function __construct($redis, array $options = array())
|
||||
{
|
||||
if (!$redis instanceof \Redis && !$redis instanceof \RedisArray && !$redis instanceof \Predis\Client && !$redis instanceof RedisProxy) {
|
||||
if (
|
||||
!$redis instanceof \Redis &&
|
||||
!$redis instanceof \RedisArray &&
|
||||
!$redis instanceof \RedisCluster &&
|
||||
!$redis instanceof \Predis\Client &&
|
||||
!$redis instanceof RedisProxy
|
||||
) {
|
||||
throw new \InvalidArgumentException(sprintf('%s() expects parameter 1 to be Redis, RedisArray, RedisCluster or Predis\Client, %s given', __METHOD__, \is_object($redis) ? \get_class($redis) : \gettype($redis)));
|
||||
}
|
||||
|
||||
|
@@ -208,6 +208,19 @@ class BinaryFileResponseTest extends ResponseTestCase
|
||||
);
|
||||
}
|
||||
|
||||
public function testUnpreparedResponseSendsFullFile()
|
||||
{
|
||||
$response = BinaryFileResponse::create(__DIR__.'/File/Fixtures/test.gif', 200);
|
||||
|
||||
$data = file_get_contents(__DIR__.'/File/Fixtures/test.gif');
|
||||
|
||||
$this->expectOutputString($data);
|
||||
$response = clone $response;
|
||||
$response->sendContent();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideInvalidRanges
|
||||
*/
|
||||
|
@@ -906,7 +906,7 @@ class RequestTest extends TestCase
|
||||
|
||||
public function getClientIpsProvider()
|
||||
{
|
||||
// $expected $remoteAddr $httpForwardedFor $trustedProxies
|
||||
// $expected $remoteAddr $httpForwardedFor $trustedProxies
|
||||
return array(
|
||||
// simple IPv4
|
||||
array(array('88.88.88.88'), '88.88.88.88', null, null),
|
||||
@@ -920,8 +920,8 @@ class RequestTest extends TestCase
|
||||
|
||||
// forwarded for with remote IPv4 addr not trusted
|
||||
array(array('127.0.0.1'), '127.0.0.1', '88.88.88.88', null),
|
||||
// forwarded for with remote IPv4 addr trusted
|
||||
array(array('88.88.88.88'), '127.0.0.1', '88.88.88.88', array('127.0.0.1')),
|
||||
// forwarded for with remote IPv4 addr trusted + comma
|
||||
array(array('88.88.88.88'), '127.0.0.1', '88.88.88.88,', array('127.0.0.1')),
|
||||
// forwarded for with remote IPv4 and all FF addrs trusted
|
||||
array(array('88.88.88.88'), '127.0.0.1', '88.88.88.88', array('127.0.0.1', '88.88.88.88')),
|
||||
// forwarded for with remote IPv4 range trusted
|
||||
@@ -1025,7 +1025,7 @@ class RequestTest extends TestCase
|
||||
'HTTP_X_FORWARDED_FOR' => $httpXForwardedFor,
|
||||
);
|
||||
|
||||
Request::setTrustedProxies(array('88.88.88.88'), Request::HEADER_X_FORWARDED_ALL);
|
||||
Request::setTrustedProxies(array('88.88.88.88'), -1);
|
||||
|
||||
$request->initialize(array(), array(), array(), array(), array(), $server);
|
||||
|
||||
@@ -2153,6 +2153,55 @@ class RequestTest extends TestCase
|
||||
$this->assertEquals($expectedBaseUrl, $request->getBaseUrl());
|
||||
$this->assertEquals($expectedBasePath, $request->getBasePath());
|
||||
}
|
||||
|
||||
public function testTrustedHost()
|
||||
{
|
||||
Request::setTrustedProxies(array('1.1.1.1'), -1);
|
||||
|
||||
$request = Request::create('/');
|
||||
$request->server->set('REMOTE_ADDR', '1.1.1.1');
|
||||
$request->headers->set('Forwarded', 'host=localhost:8080');
|
||||
$request->headers->set('X-Forwarded-Host', 'localhost:8080');
|
||||
|
||||
$this->assertSame('localhost:8080', $request->getHttpHost());
|
||||
$this->assertSame(8080, $request->getPort());
|
||||
|
||||
$request = Request::create('/');
|
||||
$request->server->set('REMOTE_ADDR', '1.1.1.1');
|
||||
$request->headers->set('Forwarded', 'host="[::1]:443"');
|
||||
$request->headers->set('X-Forwarded-Host', '[::1]:443');
|
||||
$request->headers->set('X-Forwarded-Port', 443);
|
||||
|
||||
$this->assertSame('[::1]:443', $request->getHttpHost());
|
||||
$this->assertSame(443, $request->getPort());
|
||||
}
|
||||
|
||||
public function testTrustedPort()
|
||||
{
|
||||
Request::setTrustedProxies(array('1.1.1.1'), -1);
|
||||
|
||||
$request = Request::create('/');
|
||||
$request->server->set('REMOTE_ADDR', '1.1.1.1');
|
||||
$request->headers->set('Forwarded', 'host=localhost:8080');
|
||||
$request->headers->set('X-Forwarded-Port', 8080);
|
||||
|
||||
$this->assertSame(8080, $request->getPort());
|
||||
|
||||
$request = Request::create('/');
|
||||
$request->server->set('REMOTE_ADDR', '1.1.1.1');
|
||||
$request->headers->set('Forwarded', 'host=localhost');
|
||||
$request->headers->set('X-Forwarded-Port', 80);
|
||||
|
||||
$this->assertSame(80, $request->getPort());
|
||||
|
||||
$request = Request::create('/');
|
||||
$request->server->set('REMOTE_ADDR', '1.1.1.1');
|
||||
$request->headers->set('Forwarded', 'host="[::1]"');
|
||||
$request->headers->set('X-Forwarded-Proto', 'https');
|
||||
$request->headers->set('X-Forwarded-Port', 443);
|
||||
|
||||
$this->assertSame(443, $request->getPort());
|
||||
}
|
||||
}
|
||||
|
||||
class RequestContentProxy extends Request
|
||||
|
@@ -362,6 +362,11 @@ class ResponseTest extends ResponseTestCase
|
||||
$response->headers->set('Expires', -1);
|
||||
$response->expire();
|
||||
$this->assertNull($response->headers->get('Age'), '->expire() does not set the Age when the response is expired');
|
||||
|
||||
$response = new Response();
|
||||
$response->headers->set('Expires', date(DATE_RFC2822, time() + 600));
|
||||
$response->expire();
|
||||
$this->assertNull($response->headers->get('Expires'), '->expire() removes the Expires header when the response is fresh');
|
||||
}
|
||||
|
||||
public function testGetTtl()
|
||||
|
@@ -32,11 +32,6 @@ abstract class AbstractRedisSessionHandlerTestCase extends TestCase
|
||||
*/
|
||||
protected $redisClient;
|
||||
|
||||
/**
|
||||
* @var \Redis
|
||||
*/
|
||||
protected $validator;
|
||||
|
||||
/**
|
||||
* @return \Redis|\RedisArray|\RedisCluster|\Predis\Client
|
||||
*/
|
||||
@@ -52,9 +47,6 @@ abstract class AbstractRedisSessionHandlerTestCase extends TestCase
|
||||
|
||||
$host = getenv('REDIS_HOST') ?: 'localhost';
|
||||
|
||||
$this->validator = new \Redis();
|
||||
$this->validator->connect($host);
|
||||
|
||||
$this->redisClient = $this->createRedisClient($host);
|
||||
$this->storage = new RedisSessionHandler(
|
||||
$this->redisClient,
|
||||
@@ -82,8 +74,8 @@ abstract class AbstractRedisSessionHandlerTestCase extends TestCase
|
||||
|
||||
public function testReadSession()
|
||||
{
|
||||
$this->setFixture(self::PREFIX.'id1', null);
|
||||
$this->setFixture(self::PREFIX.'id2', 'abc123');
|
||||
$this->redisClient->set(self::PREFIX.'id1', null);
|
||||
$this->redisClient->set(self::PREFIX.'id2', 'abc123');
|
||||
|
||||
$this->assertEquals('', $this->storage->read('id1'));
|
||||
$this->assertEquals('abc123', $this->storage->read('id2'));
|
||||
@@ -93,14 +85,14 @@ abstract class AbstractRedisSessionHandlerTestCase extends TestCase
|
||||
{
|
||||
$this->assertTrue($this->storage->write('id', 'data'));
|
||||
|
||||
$this->assertTrue($this->hasFixture(self::PREFIX.'id'));
|
||||
$this->assertEquals('data', $this->getFixture(self::PREFIX.'id'));
|
||||
$this->assertTrue((bool) $this->redisClient->exists(self::PREFIX.'id'));
|
||||
$this->assertEquals('data', $this->redisClient->get(self::PREFIX.'id'));
|
||||
}
|
||||
|
||||
public function testUseSessionGcMaxLifetimeAsTimeToLive()
|
||||
{
|
||||
$this->storage->write('id', 'data');
|
||||
$ttl = $this->fixtureTtl(self::PREFIX.'id');
|
||||
$ttl = $this->redisClient->ttl(self::PREFIX.'id');
|
||||
|
||||
$this->assertLessThanOrEqual(ini_get('session.gc_maxlifetime'), $ttl);
|
||||
$this->assertGreaterThanOrEqual(0, $ttl);
|
||||
@@ -108,11 +100,11 @@ abstract class AbstractRedisSessionHandlerTestCase extends TestCase
|
||||
|
||||
public function testDestroySession()
|
||||
{
|
||||
$this->setFixture(self::PREFIX.'id', 'foo');
|
||||
$this->redisClient->set(self::PREFIX.'id', 'foo');
|
||||
|
||||
$this->assertTrue($this->hasFixture(self::PREFIX.'id'));
|
||||
$this->assertTrue((bool) $this->redisClient->exists(self::PREFIX.'id'));
|
||||
$this->assertTrue($this->storage->destroy('id'));
|
||||
$this->assertFalse($this->hasFixture(self::PREFIX.'id'));
|
||||
$this->assertFalse((bool) $this->redisClient->exists(self::PREFIX.'id'));
|
||||
}
|
||||
|
||||
public function testGcSession()
|
||||
@@ -122,12 +114,12 @@ abstract class AbstractRedisSessionHandlerTestCase extends TestCase
|
||||
|
||||
public function testUpdateTimestamp()
|
||||
{
|
||||
$lowTTL = 10;
|
||||
$lowTtl = 10;
|
||||
|
||||
$this->setFixture(self::PREFIX.'id', 'foo', $lowTTL);
|
||||
$this->redisClient->setex(self::PREFIX.'id', $lowTtl, 'foo');
|
||||
$this->storage->updateTimestamp('id', array());
|
||||
|
||||
$this->assertGreaterThan($lowTTL, $this->fixtureTtl(self::PREFIX.'id'));
|
||||
$this->assertGreaterThan($lowTtl, $this->redisClient->ttl(self::PREFIX.'id'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -150,28 +142,4 @@ abstract class AbstractRedisSessionHandlerTestCase extends TestCase
|
||||
array(array('prefix' => 'sfs', 'foo' => 'bar'), false),
|
||||
);
|
||||
}
|
||||
|
||||
protected function setFixture($key, $value, $ttl = null)
|
||||
{
|
||||
if (null !== $ttl) {
|
||||
$this->validator->setex($key, $ttl, $value);
|
||||
} else {
|
||||
$this->validator->set($key, $value);
|
||||
}
|
||||
}
|
||||
|
||||
protected function getFixture($key)
|
||||
{
|
||||
return $this->validator->get($key);
|
||||
}
|
||||
|
||||
protected function hasFixture($key): bool
|
||||
{
|
||||
return $this->validator->exists($key);
|
||||
}
|
||||
|
||||
protected function fixtureTtl($key): int
|
||||
{
|
||||
return $this->validator->ttl($key);
|
||||
}
|
||||
}
|
||||
|
@@ -17,6 +17,6 @@ class PredisClusterSessionHandlerTest extends AbstractRedisSessionHandlerTestCas
|
||||
{
|
||||
protected function createRedisClient(string $host): Client
|
||||
{
|
||||
return new Client(array(array('host' => $host)));
|
||||
return new Client(array(array('host' => $host)));
|
||||
}
|
||||
}
|
||||
|
31
vendor/symfony/http-foundation/Tests/Session/Storage/Handler/RedisClusterSessionHandlerTest.php
vendored
Normal file
31
vendor/symfony/http-foundation/Tests/Session/Storage/Handler/RedisClusterSessionHandlerTest.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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\HttpFoundation\Tests\Session\Storage\Handler;
|
||||
|
||||
class RedisClusterSessionHandlerTest extends AbstractRedisSessionHandlerTestCase
|
||||
{
|
||||
public static function setupBeforeClass()
|
||||
{
|
||||
if (!class_exists('RedisCluster')) {
|
||||
self::markTestSkipped('The RedisCluster class is required.');
|
||||
}
|
||||
|
||||
if (!$hosts = getenv('REDIS_CLUSTER_HOSTS')) {
|
||||
self::markTestSkipped('REDIS_CLUSTER_HOSTS env var is not defined.');
|
||||
}
|
||||
}
|
||||
|
||||
protected function createRedisClient(string $host): \RedisCluster
|
||||
{
|
||||
return new \RedisCluster(null, explode(' ', getenv('REDIS_CLUSTER_HOSTS')));
|
||||
}
|
||||
}
|
@@ -41,6 +41,7 @@ class SubRequestHandler
|
||||
);
|
||||
foreach (array_filter($trustedHeaders) as $name => $key) {
|
||||
$request->headers->remove($name);
|
||||
$request->server->remove('HTTP_'.$name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,13 +60,16 @@ class SubRequestHandler
|
||||
// set trusted values, reusing as much as possible the global trusted settings
|
||||
if (Request::HEADER_FORWARDED & $trustedHeaderSet) {
|
||||
$trustedValues[0] .= sprintf(';host="%s";proto=%s', $request->getHttpHost(), $request->getScheme());
|
||||
$request->headers->set('Forwarded', implode(', ', $trustedValues));
|
||||
$request->headers->set('Forwarded', $v = implode(', ', $trustedValues));
|
||||
$request->server->set('HTTP_FORWARDED', $v);
|
||||
}
|
||||
if (Request::HEADER_X_FORWARDED_FOR & $trustedHeaderSet) {
|
||||
$request->headers->set('X-Forwarded-For', implode(', ', $trustedIps));
|
||||
$request->headers->set('X-Forwarded-For', $v = implode(', ', $trustedIps));
|
||||
$request->server->set('HTTP_X_FORWARDED_FOR', $v);
|
||||
} elseif (!(Request::HEADER_FORWARDED & $trustedHeaderSet)) {
|
||||
Request::setTrustedProxies($trustedProxies, $trustedHeaderSet | Request::HEADER_X_FORWARDED_FOR);
|
||||
$request->headers->set('X-Forwarded-For', implode(', ', $trustedIps));
|
||||
$request->headers->set('X-Forwarded-For', $v = implode(', ', $trustedIps));
|
||||
$request->server->set('HTTP_X_FORWARDED_FOR', $v);
|
||||
}
|
||||
|
||||
// fix the client IP address by setting it to 127.0.0.1,
|
||||
|
6
vendor/symfony/http-kernel/Kernel.php
vendored
6
vendor/symfony/http-kernel/Kernel.php
vendored
@@ -63,11 +63,11 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl
|
||||
private $requestStackSize = 0;
|
||||
private $resetServices = false;
|
||||
|
||||
const VERSION = '4.1.3';
|
||||
const VERSION_ID = 40103;
|
||||
const VERSION = '4.1.4';
|
||||
const VERSION_ID = 40104;
|
||||
const MAJOR_VERSION = 4;
|
||||
const MINOR_VERSION = 1;
|
||||
const RELEASE_VERSION = 3;
|
||||
const RELEASE_VERSION = 4;
|
||||
const EXTRA_VERSION = '';
|
||||
|
||||
const END_OF_MAINTENANCE = '01/2019';
|
||||
|
@@ -45,6 +45,8 @@ class InlineFragmentRendererTest extends TestCase
|
||||
$subRequest->attributes->replace(array('object' => $object, '_format' => 'html', '_controller' => 'main_controller', '_locale' => 'en'));
|
||||
$subRequest->headers->set('x-forwarded-for', array('127.0.0.1'));
|
||||
$subRequest->headers->set('forwarded', array('for="127.0.0.1";host="localhost";proto=http'));
|
||||
$subRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1');
|
||||
$subRequest->server->set('HTTP_FORWARDED', 'for="127.0.0.1";host="localhost";proto=http');
|
||||
|
||||
$strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($subRequest));
|
||||
|
||||
@@ -57,6 +59,7 @@ class InlineFragmentRendererTest extends TestCase
|
||||
|
||||
$expectedSubRequest = Request::create('/');
|
||||
$expectedSubRequest->headers->set('x-forwarded-for', array('127.0.0.1'));
|
||||
$expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1');
|
||||
|
||||
$strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($expectedSubRequest));
|
||||
$this->assertSame('foo', $strategy->render('/', Request::create('/'))->getContent());
|
||||
@@ -149,8 +152,10 @@ class InlineFragmentRendererTest extends TestCase
|
||||
|
||||
if (Request::HEADER_X_FORWARDED_FOR & Request::getTrustedHeaderSet()) {
|
||||
$expectedSubRequest->headers->set('x-forwarded-for', array('127.0.0.1'));
|
||||
$expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1');
|
||||
}
|
||||
$expectedSubRequest->headers->set('forwarded', array('for="127.0.0.1";host="localhost";proto=http'));
|
||||
$expectedSubRequest->server->set('HTTP_FORWARDED', 'for="127.0.0.1";host="localhost";proto=http');
|
||||
|
||||
$strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($expectedSubRequest));
|
||||
|
||||
@@ -173,6 +178,8 @@ class InlineFragmentRendererTest extends TestCase
|
||||
$expectedSubRequest = Request::create('/');
|
||||
$expectedSubRequest->headers->set('x-forwarded-for', array('127.0.0.1'));
|
||||
$expectedSubRequest->headers->set('forwarded', array('for="127.0.0.1";host="localhost";proto=http'));
|
||||
$expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1');
|
||||
$expectedSubRequest->server->set('HTTP_FORWARDED', 'for="127.0.0.1";host="localhost";proto=http');
|
||||
|
||||
$strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($expectedSubRequest));
|
||||
$request = Request::create('/', 'GET', array(), array(), array(), array('HTTP_IF_MODIFIED_SINCE' => 'Fri, 01 Jan 2016 00:00:00 GMT', 'HTTP_IF_NONE_MATCH' => '*'));
|
||||
@@ -188,6 +195,8 @@ class InlineFragmentRendererTest extends TestCase
|
||||
$expectedSubRequest->server->set('REMOTE_ADDR', '127.0.0.1');
|
||||
$expectedSubRequest->headers->set('x-forwarded-for', array('127.0.0.1'));
|
||||
$expectedSubRequest->headers->set('forwarded', array('for="127.0.0.1";host="localhost";proto=http'));
|
||||
$expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1');
|
||||
$expectedSubRequest->server->set('HTTP_FORWARDED', 'for="127.0.0.1";host="localhost";proto=http');
|
||||
|
||||
$strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($expectedSubRequest));
|
||||
|
||||
@@ -205,6 +214,8 @@ class InlineFragmentRendererTest extends TestCase
|
||||
$expectedSubRequest->server->set('REMOTE_ADDR', '127.0.0.1');
|
||||
$expectedSubRequest->headers->set('x-forwarded-for', array('127.0.0.1'));
|
||||
$expectedSubRequest->headers->set('forwarded', array('for="127.0.0.1";host="localhost";proto=http'));
|
||||
$expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1');
|
||||
$expectedSubRequest->server->set('HTTP_FORWARDED', 'for="127.0.0.1";host="localhost";proto=http');
|
||||
|
||||
Request::setTrustedProxies(array('1.1.1.1/24'), -1);
|
||||
|
||||
|
6
vendor/symfony/process/Tests/ProcessTest.php
vendored
6
vendor/symfony/process/Tests/ProcessTest.php
vendored
@@ -450,9 +450,6 @@ class ProcessTest extends TestCase
|
||||
$this->assertGreaterThan(0, $process->getExitCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* @group tty
|
||||
*/
|
||||
public function testTTYCommand()
|
||||
{
|
||||
if ('\\' === \DIRECTORY_SEPARATOR) {
|
||||
@@ -468,9 +465,6 @@ class ProcessTest extends TestCase
|
||||
$this->assertSame(Process::STATUS_TERMINATED, $process->getStatus());
|
||||
}
|
||||
|
||||
/**
|
||||
* @group tty
|
||||
*/
|
||||
public function testTTYCommandExitCode()
|
||||
{
|
||||
if ('\\' === \DIRECTORY_SEPARATOR) {
|
||||
|
@@ -194,7 +194,7 @@ EOF
|
||||
}
|
||||
|
||||
// used to display the Welcome Page in apps that don't define a homepage
|
||||
$code .= " if ('/' === \$pathinfo && !\$allow) {\n";
|
||||
$code .= " if ('/' === \$pathinfo && !\$allow && !\$allowSchemes) {\n";
|
||||
$code .= " throw new Symfony\Component\Routing\Exception\NoConfigurationException();\n";
|
||||
$code .= " }\n";
|
||||
|
||||
|
@@ -26,7 +26,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
|
||||
$canonicalMethod = 'GET';
|
||||
}
|
||||
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -238,7 +238,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
|
||||
$offset += strlen($m);
|
||||
}
|
||||
}
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -2821,7 +2821,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
|
||||
$offset += strlen($m);
|
||||
}
|
||||
}
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -142,7 +142,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
|
||||
$offset += strlen($m);
|
||||
}
|
||||
}
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -91,7 +91,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
|
||||
$offset += strlen($m);
|
||||
}
|
||||
}
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -60,7 +60,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
|
||||
$offset += strlen($m);
|
||||
}
|
||||
}
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -275,7 +275,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
|
||||
$offset += strlen($m);
|
||||
}
|
||||
}
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -103,7 +103,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
|
||||
$offset += strlen($m);
|
||||
}
|
||||
}
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -75,7 +75,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
|
||||
return $ret;
|
||||
}
|
||||
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -145,7 +145,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
|
||||
$offset += strlen($m);
|
||||
}
|
||||
}
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -122,7 +122,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
|
||||
$offset += strlen($m);
|
||||
}
|
||||
}
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -157,7 +157,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\Redirec
|
||||
$offset += strlen($m);
|
||||
}
|
||||
}
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -79,7 +79,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
|
||||
$offset += strlen($m);
|
||||
}
|
||||
}
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -44,7 +44,7 @@ class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
|
||||
break;
|
||||
}
|
||||
|
||||
if ('/' === $pathinfo && !$allow) {
|
||||
if ('/' === $pathinfo && !$allow && !$allowSchemes) {
|
||||
throw new Symfony\Component\Routing\Exception\NoConfigurationException();
|
||||
}
|
||||
|
||||
|
@@ -93,6 +93,20 @@ class RedirectableUrlMatcherTest extends UrlMatcherTest
|
||||
$this->assertEquals(array('_route' => 'foo', 'bar' => 'baz', 'redirect' => 'value'), $matcher->match('/foo/baz'));
|
||||
}
|
||||
|
||||
public function testSchemeRedirectForRoot()
|
||||
{
|
||||
$coll = new RouteCollection();
|
||||
$coll->add('foo', new Route('/', array(), array(), array(), '', array('https')));
|
||||
|
||||
$matcher = $this->getUrlMatcher($coll);
|
||||
$matcher
|
||||
->expects($this->once())
|
||||
->method('redirect')
|
||||
->with('/', 'foo', 'https')
|
||||
->will($this->returnValue(array('redirect' => 'value')));
|
||||
$this->assertEquals(array('_route' => 'foo', 'redirect' => 'value'), $matcher->match('/'));
|
||||
}
|
||||
|
||||
public function testSlashRedirectWithParams()
|
||||
{
|
||||
$coll = new RouteCollection();
|
||||
|
@@ -130,10 +130,10 @@ EOF
|
||||
$document->schemaValidate(__DIR__.'/../Resources/schemas/xliff-core-1.2-strict.xsd');
|
||||
foreach (libxml_get_errors() as $xmlError) {
|
||||
$errors[] = array(
|
||||
'line' => $xmlError->line,
|
||||
'column' => $xmlError->column,
|
||||
'message' => trim($xmlError->message),
|
||||
);
|
||||
'line' => $xmlError->line,
|
||||
'column' => $xmlError->column,
|
||||
'message' => trim($xmlError->message),
|
||||
);
|
||||
}
|
||||
|
||||
libxml_clear_errors();
|
||||
|
@@ -30,7 +30,7 @@ Jan-10-2006
|
||||
-->
|
||||
<xsd:schema xmlns:xlf="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:oasis:names:tc:xliff:document:1.2" xml:lang="en">
|
||||
<!-- Import for xml:lang and xml:space -->
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="../../Loader/schema/dic/xliff-core/xml.xsd"/>
|
||||
<!-- Attributes Lists -->
|
||||
<xsd:simpleType name="XTend">
|
||||
<xsd:restriction base="xsd:string">
|
||||
|
0
vendor/symfony/var-dumper/Resources/bin/var-dump-server
vendored
Normal file → Executable file
0
vendor/symfony/var-dumper/Resources/bin/var-dump-server
vendored
Normal file → Executable file
@@ -102,7 +102,7 @@ pre.sf-dump {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.hidden {
|
||||
display: none; !important
|
||||
display: none !important;
|
||||
}
|
||||
.dumped-tag > .sf-dump {
|
||||
display: inline-block;
|
||||
|
36
vendor/symfony/yaml/Parser.php
vendored
36
vendor/symfony/yaml/Parser.php
vendored
@@ -499,11 +499,6 @@ class Parser
|
||||
private function getNextEmbedBlock(int $indentation = null, bool $inSequence = false): ?string
|
||||
{
|
||||
$oldLineIndentation = $this->getCurrentLineIndentation();
|
||||
$blockScalarIndentations = array();
|
||||
|
||||
if ($this->isBlockScalarHeader()) {
|
||||
$blockScalarIndentations[] = $oldLineIndentation;
|
||||
}
|
||||
|
||||
if (!$this->moveToNextLine()) {
|
||||
return null;
|
||||
@@ -562,30 +557,9 @@ class Parser
|
||||
|
||||
$isItUnindentedCollection = $this->isStringUnIndentedCollectionItem();
|
||||
|
||||
if (empty($blockScalarIndentations) && $this->isBlockScalarHeader()) {
|
||||
$blockScalarIndentations[] = $this->getCurrentLineIndentation();
|
||||
}
|
||||
|
||||
$previousLineIndentation = $this->getCurrentLineIndentation();
|
||||
|
||||
while ($this->moveToNextLine()) {
|
||||
$indent = $this->getCurrentLineIndentation();
|
||||
|
||||
// terminate all block scalars that are more indented than the current line
|
||||
if (!empty($blockScalarIndentations) && $indent < $previousLineIndentation && '' !== trim($this->currentLine)) {
|
||||
foreach ($blockScalarIndentations as $key => $blockScalarIndentation) {
|
||||
if ($blockScalarIndentation >= $indent) {
|
||||
unset($blockScalarIndentations[$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($blockScalarIndentations) && !$this->isCurrentLineComment() && $this->isBlockScalarHeader()) {
|
||||
$blockScalarIndentations[] = $indent;
|
||||
}
|
||||
|
||||
$previousLineIndentation = $indent;
|
||||
|
||||
if ($isItUnindentedCollection && !$this->isCurrentLineEmpty() && !$this->isStringUnIndentedCollectionItem() && $newIndent === $indent) {
|
||||
$this->moveToPreviousLine();
|
||||
break;
|
||||
@@ -1002,16 +976,6 @@ class Parser
|
||||
return '-' === rtrim($this->currentLine) || 0 === strpos($this->currentLine, '- ');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests whether or not the current line is the header of a block scalar.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function isBlockScalarHeader(): bool
|
||||
{
|
||||
return (bool) self::preg_match('~'.self::BLOCK_SCALAR_HEADER_PATTERN.'$~', $this->currentLine);
|
||||
}
|
||||
|
||||
/**
|
||||
* A local wrapper for `preg_match` which will throw a ParseException if there
|
||||
* is an internal error in the PCRE engine.
|
||||
|
Reference in New Issue
Block a user