I would like to create a behat definition to authenticate a user using a cookie.

It works with the Behat BrowserKitDriver, when there is no @javascript tag on the behat scenario. But it did not work with the Behat Selenium2Driver, when there is the @javascript tag like here.

I used the symfony-demo application for demonstrate my tests.

What's wrong in my definition ?

/** * @Given I am logged in as :username */ public function iAmLoggedInAs($username) { $driver = $this->getSession()->getDriver(); $session = $this->kernel->getContainer()->get('session'); $user = $this->kernel->getContainer()->get('security.user.provider.concrete.database_users')->loadUserByUsername($username); $providerKey = 'secured_area'; $token = new UsernamePasswordToken($user, null, $providerKey, $user->getRoles()); $session->set('_security_'.$providerKey, serialize($token)); $session->save(); if ($driver instanceof BrowserKitDriver) { $client = $driver->getClient(); $cookie = new Cookie($session->getName(), $session->getId()); $client->getCookieJar()->set($cookie); } else if ($driver instanceof Selenium2Driver) { $this->visitPath('/'); } else { throw new \Exception('Unsupported Driver'); } $this->getSession()->setCookie($session->getName(), $session->getId()); }

I just want that my last behat test works.

I don't know if I'm clear... ask if not.

If you can do a Pull Request with a fix it will be perfect.