fabpot/Silex — pull request #565 by romainneutron (2012-12-17 21:51:02+00:00)
Title: Test session service provider with routes that does not use session

Hello,

Since symfony/Symfony@098b593591, a bug occurs with `SessionServiceProvider` :

When using `HttpKernel\Client`, setting `$app['session.test'] = true;` and querying the application multiple routes in a single unit test, a `RuntimeException` is thrown by `Symfony\Component\HttpFoundation\Session\Storage\MockFileSessionStorage`.

For instance :

```php
use Silex\WebTestCase;
use Silex\Application;
use Silex\Provider\SessionServiceProvider;

class unitTest extends WebTestCase
{
public function testUn()
{
$client = $this->createClient();
$client->request('GET', '/');
$client->request('GET', '/');
}

public function createApplication()
{
$app = new Application();

$app->register(new SessionServiceProvider(), array(
'session.test' => true
));

$app['debug'] = true;
$app['exception_handler']->disable();

$app->get('/', function(Application $app) {
return 'BOOM';
});

return $app;
}
}
```
results in
```
1) unitTest::testUn
RuntimeException: Trying to save a session that was not started yet or was already closed

/Users/romain/Documents/workspace/testSess/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/MockFileSessionStorage.php:101
/Users/romain/Documents/workspace/testSess/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Session.php:184
/Users/romain/Documents/workspace/testSess/vendor/silex/silex/src/Silex/Provider/SessionServiceProvider.php:107
/Users/romain/Documents/workspace/testSess/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:164
/Users/romain/Documents/workspace/testSess/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:53
/Users/romain/Documents/workspace/testSess/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:169
/Users/romain/Documents/workspace/testSess/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:151
/Users/romain/Documents/workspace/testSess/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:73
/Users/romain/Documents/workspace/testSess/vendor/silex/silex/src/Silex/Application.php:469
/Users/romain/Documents/workspace/testSess/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Client.php:61
/Users/romain/Documents/workspace/testSess/vendor/symfony/symfony/src/Symfony/Component/BrowserKit/Client.php:264
/Users/romain/Documents/workspace/testSess/bingo.php:13
```

Of course, this test currently passes as the bug happens with latest `2.1.x-dev` source whereas `composer.json` settings ask to install latest stable tag.

This PR adds a test that fails with latest symfony 2.1.x.