]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - tests/Wallabag/CoreBundle/WallabagCoreTestCase.php
Jump to Symfony 3.1
[github/wallabag/wallabag.git] / tests / Wallabag / CoreBundle / WallabagCoreTestCase.php
diff --git a/tests/Wallabag/CoreBundle/WallabagCoreTestCase.php b/tests/Wallabag/CoreBundle/WallabagCoreTestCase.php
new file mode 100644 (file)
index 0000000..c69e833
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+
+namespace Tests\Wallabag\CoreBundle;
+
+use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
+
+abstract class WallabagCoreTestCase extends WebTestCase
+{
+    private $client = null;
+
+    public function getClient()
+    {
+        return $this->client;
+    }
+
+    public function setUp()
+    {
+        parent::setUp();
+
+        $this->client = static::createClient();
+    }
+
+    public function logInAs($username)
+    {
+        $crawler = $this->client->request('GET', '/login');
+        $form = $crawler->filter('button[type=submit]')->form();
+        $data = [
+            '_username' => $username,
+            '_password' => 'mypassword',
+        ];
+
+        $this->client->submit($form, $data);
+    }
+
+    /**
+     * Return the user id of the logged in user.
+     * You should be sure that you called `logInAs` before.
+     *
+     * @return int
+     */
+    public function getLoggedInUserId()
+    {
+        $token = static::$kernel->getContainer()->get('security.token_storage')->getToken();
+
+        if (null !== $token) {
+            return $token->getUser()->getId();
+        }
+
+        throw new \RuntimeException('No logged in User.');
+    }
+}