Test session service provider with routes that does not use session
merged branch romainneutron/Sessions (PR #565)

This PR was squashed before being merged into the master branch (closes #565).

Commits
-------

55dce6b Test session service provider with routes that does not use session

Discussion
----------

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.

---------------------------------------------------------------------------

by romainneutron at 2012-12-17T22:19:24Z

It seems the fix I've added is good enough, so, finally this PR brings a solution to the problem :)