]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - tests/Wallabag/ApiBundle/WallabagApiTestCase.php
CS
[github/wallabag/wallabag.git] / tests / Wallabag / ApiBundle / WallabagApiTestCase.php
index a67655c8620abcb5266eaabe4a8119c0e2b4607c..fd2e113e1a3996209b51769ba19faab9e57415f9 100644 (file)
@@ -8,7 +8,7 @@ use Symfony\Component\BrowserKit\Cookie;
 abstract class WallabagApiTestCase extends WebTestCase
 {
     /**
-     * @var Client
+     * @var \Symfony\Bundle\FrameworkBundle\Client
      */
     protected $client = null;
 
@@ -23,7 +23,7 @@ abstract class WallabagApiTestCase extends WebTestCase
     }
 
     /**
-     * @return Client
+     * @return \Symfony\Bundle\FrameworkBundle\Client
      */
     protected function createAuthorizedClient()
     {
@@ -31,16 +31,16 @@ abstract class WallabagApiTestCase extends WebTestCase
         $container = $client->getContainer();
 
         /** @var $userManager \FOS\UserBundle\Doctrine\UserManager */
-        $userManager = $container->get('fos_user.user_manager');
+        $userManager = $container->get('fos_user.user_manager.test');
         /** @var $loginManager \FOS\UserBundle\Security\LoginManager */
-        $loginManager = $container->get('fos_user.security.login_manager');
+        $loginManager = $container->get('fos_user.security.login_manager.test');
         $firewallName = $container->getParameter('fos_user.firewall_name');
 
         $this->user = $userManager->findUserBy(['username' => 'admin']);
         $loginManager->logInUser($firewallName, $this->user);
 
         // save the login token into the session and put it in a cookie
-        $container->get('session')->set('_security_'.$firewallName, serialize($container->get('security.token_storage')->getToken()));
+        $container->get('session')->set('_security_' . $firewallName, serialize($container->get('security.token_storage')->getToken()));
         $container->get('session')->save();
 
         $session = $container->get('session');
@@ -48,4 +48,23 @@ abstract class WallabagApiTestCase extends WebTestCase
 
         return $client;
     }
+
+    /**
+     * Return the ID for the user admin.
+     * Used because on heavy testing we don't want to re-create the database on each run.
+     * Which means "admin" user won't have id 1 all the time.
+     *
+     * @param string $username
+     *
+     * @return int
+     */
+    protected function getUserId($username = 'admin')
+    {
+        return $this->client
+            ->getContainer()
+            ->get('doctrine.orm.entity_manager')
+            ->getRepository('WallabagUserBundle:User')
+            ->findOneByUserName($username)
+            ->getId();
+    }
 }