Merge branch '2.7' into 2.8
* 2.7: [Bridge\Doctrine] Fix change breaking doctrine-bundle test suite [HttpFoundation][bugfix] should always be initialized MockArraySessionStorage: updated phpdoc for $bags so that IDE autocompletion would work normalize paths before making them relative
This commit is contained in:
commit
d175340777
@ -109,15 +109,12 @@ class RegisterEventListenersAndSubscribersPass implements CompilerPassInterface
|
|||||||
throw new RuntimeException(sprintf('The Doctrine connection "%s" referenced in service "%s" does not exist. Available connections names: %s', $con, $id, implode(', ', array_keys($this->connections))));
|
throw new RuntimeException(sprintf('The Doctrine connection "%s" referenced in service "%s" does not exist. Available connections names: %s', $con, $id, implode(', ', array_keys($this->connections))));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($lazy = isset($tag['lazy']) && $tag['lazy']) {
|
if ($lazy = !empty($tag['lazy'])) {
|
||||||
$taggedListenerDef->setPublic(true);
|
$taggedListenerDef->setPublic(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// we add one call per event per service so we have the correct order
|
// we add one call per event per service so we have the correct order
|
||||||
$this->getEventManagerDef($container, $con)->addMethodCall('addEventListener', array(
|
$this->getEventManagerDef($container, $con)->addMethodCall('addEventListener', array(array($tag['event']), $lazy ? $id : new Reference($id)));
|
||||||
$tag['event'],
|
|
||||||
$lazy ? $id : new Reference($id),
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,11 +90,11 @@ class RegisterEventListenersAndSubscribersPassTest extends TestCase
|
|||||||
|
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
array(
|
array(
|
||||||
array('addEventListener', array('foo_bar', new Reference('c'))),
|
array('addEventListener', array(array('foo_bar'), new Reference('c'))),
|
||||||
array('addEventListener', array('foo_bar', new Reference('a'))),
|
array('addEventListener', array(array('foo_bar'), new Reference('a'))),
|
||||||
array('addEventListener', array('bar', new Reference('a'))),
|
array('addEventListener', array(array('bar'), new Reference('a'))),
|
||||||
array('addEventListener', array('foo', new Reference('b'))),
|
array('addEventListener', array(array('foo'), new Reference('b'))),
|
||||||
array('addEventListener', array('foo', new Reference('a'))),
|
array('addEventListener', array(array('foo'), new Reference('a'))),
|
||||||
),
|
),
|
||||||
$methodCalls
|
$methodCalls
|
||||||
);
|
);
|
||||||
@ -138,16 +138,16 @@ class RegisterEventListenersAndSubscribersPassTest extends TestCase
|
|||||||
|
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
array(
|
array(
|
||||||
array('addEventListener', array('onFlush', new Reference('a'))),
|
array('addEventListener', array(array('onFlush'), new Reference('a'))),
|
||||||
array('addEventListener', array('onFlush', new Reference('b'))),
|
array('addEventListener', array(array('onFlush'), new Reference('b'))),
|
||||||
),
|
),
|
||||||
$container->getDefinition('doctrine.dbal.default_connection.event_manager')->getMethodCalls()
|
$container->getDefinition('doctrine.dbal.default_connection.event_manager')->getMethodCalls()
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
array(
|
array(
|
||||||
array('addEventListener', array('onFlush', new Reference('a'))),
|
array('addEventListener', array(array('onFlush'), new Reference('a'))),
|
||||||
array('addEventListener', array('onFlush', new Reference('c'))),
|
array('addEventListener', array(array('onFlush'), new Reference('c'))),
|
||||||
),
|
),
|
||||||
$container->getDefinition('doctrine.dbal.second_connection.event_manager')->getMethodCalls()
|
$container->getDefinition('doctrine.dbal.second_connection.event_manager')->getMethodCalls()
|
||||||
);
|
);
|
||||||
|
@ -362,6 +362,31 @@ class Filesystem
|
|||||||
$startPathArr = explode('/', trim($startPath, '/'));
|
$startPathArr = explode('/', trim($startPath, '/'));
|
||||||
$endPathArr = explode('/', trim($endPath, '/'));
|
$endPathArr = explode('/', trim($endPath, '/'));
|
||||||
|
|
||||||
|
if ('/' !== $startPath[0]) {
|
||||||
|
array_shift($startPathArr);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('/' !== $endPath[0]) {
|
||||||
|
array_shift($endPathArr);
|
||||||
|
}
|
||||||
|
|
||||||
|
$normalizePathArray = function ($pathSegments) {
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
foreach ($pathSegments as $segment) {
|
||||||
|
if ('..' === $segment) {
|
||||||
|
array_pop($result);
|
||||||
|
} else {
|
||||||
|
$result[] = $segment;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
};
|
||||||
|
|
||||||
|
$startPathArr = $normalizePathArray($startPathArr);
|
||||||
|
$endPathArr = $normalizePathArray($endPathArr);
|
||||||
|
|
||||||
// Find for which directory the common path stops
|
// Find for which directory the common path stops
|
||||||
$index = 0;
|
$index = 0;
|
||||||
while (isset($startPathArr[$index]) && isset($endPathArr[$index]) && $startPathArr[$index] === $endPathArr[$index]) {
|
while (isset($startPathArr[$index]) && isset($endPathArr[$index]) && $startPathArr[$index] === $endPathArr[$index]) {
|
||||||
|
@ -868,6 +868,16 @@ class FilesystemTest extends FilesystemTestCase
|
|||||||
array('/a/aab/bb/', '/b/aab', '../../a/aab/bb/'),
|
array('/a/aab/bb/', '/b/aab', '../../a/aab/bb/'),
|
||||||
array('/aab/bb', '/aa', '../aab/bb/'),
|
array('/aab/bb', '/aa', '../aab/bb/'),
|
||||||
array('/aab', '/aa', '../aab/'),
|
array('/aab', '/aa', '../aab/'),
|
||||||
|
array('/aa/bb/cc', '/aa/dd/..', 'bb/cc/'),
|
||||||
|
array('/aa/../bb/cc', '/aa/dd/..', '../bb/cc/'),
|
||||||
|
array('/aa/bb/../../cc', '/aa/../dd/..', 'cc/'),
|
||||||
|
array('/../aa/bb/cc', '/aa/dd/..', 'bb/cc/'),
|
||||||
|
array('/../../aa/../bb/cc', '/aa/dd/..', '../bb/cc/'),
|
||||||
|
array('C:/aa/bb/cc', 'C:/aa/dd/..', 'bb/cc/'),
|
||||||
|
array('c:/aa/../bb/cc', 'c:/aa/dd/..', '../bb/cc/'),
|
||||||
|
array('C:/aa/bb/../../cc', 'C:/aa/../dd/..', 'cc/'),
|
||||||
|
array('C:/../aa/bb/cc', 'C:/aa/dd/..', 'bb/cc/'),
|
||||||
|
array('C:/../../aa/../bb/cc', 'C:/aa/dd/..', '../bb/cc/'),
|
||||||
);
|
);
|
||||||
|
|
||||||
if ('\\' === DIRECTORY_SEPARATOR) {
|
if ('\\' === DIRECTORY_SEPARATOR) {
|
||||||
|
@ -58,9 +58,9 @@ class MockArraySessionStorage implements SessionStorageInterface
|
|||||||
protected $metadataBag;
|
protected $metadataBag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array
|
* @var array|SessionBagInterface[]
|
||||||
*/
|
*/
|
||||||
protected $bags;
|
protected $bags = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
|
@ -97,6 +97,30 @@ class MockArraySessionStorageTest extends TestCase
|
|||||||
$this->assertNotEquals('', $this->storage->getId());
|
$this->assertNotEquals('', $this->storage->getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testClearClearsBags()
|
||||||
|
{
|
||||||
|
$this->storage->clear();
|
||||||
|
|
||||||
|
$this->assertSame(array(), $this->storage->getBag('attributes')->all());
|
||||||
|
$this->assertSame(array(), $this->storage->getBag('flashes')->peekAll());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testClearStartsSession()
|
||||||
|
{
|
||||||
|
$this->storage->clear();
|
||||||
|
|
||||||
|
$this->assertTrue($this->storage->isStarted());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testClearWithNoBagsStartsSession()
|
||||||
|
{
|
||||||
|
$storage = new MockArraySessionStorage();
|
||||||
|
|
||||||
|
$storage->clear();
|
||||||
|
|
||||||
|
$this->assertTrue($storage->isStarted());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @expectedException \RuntimeException
|
* @expectedException \RuntimeException
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user