]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Tests/Controller/WallabagRestControllerTest.php
first test for API, need refactor
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Tests / Controller / WallabagRestControllerTest.php
index d9e6a1618b38205d104b67db1527665a55ecaf78..ff3c9432092313b2bd431535c9d60ae88b6ee631 100644 (file)
@@ -3,6 +3,7 @@
 namespace Wallabag\CoreBundle\Tests\Controller;
 
 use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
+use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder;
 
 class WallabagRestControllerTest extends WebTestCase
 {
@@ -16,11 +17,31 @@ class WallabagRestControllerTest extends WebTestCase
         $this->assertEquals(404, $client->getResponse()->getStatusCode());
     }
 
-    public function testEmptyGetEntries()
+    public function testGetEntries()
     {
         $client = $this->createClient();
-        $client->request('GET', '/api/entries');
-        $this->assertTrue($client->getResponse()->isOk());
+        $client->request('GET', '/api/salts/admin.json');
+        $content = json_decode($client->getResponse()->getContent());
+        $salt = $content[0];
+
+        $username = 'admin';
+        $password = 'test';
+
+        $encryptedPassword = sha1($password.$username.$salt);
+        $nonce = substr(md5(uniqid('nonce_', true)), 0, 16);
+
+        $now = new \DateTime('now', new \DateTimeZone('UTC'));
+        $created = (string)$now->format( 'Y-m-d\TH:i:s\Z' );
+        $digest = base64_encode(sha1(base64_decode($nonce).$created.$encryptedPassword, true));
+
+        $headers = array(
+            'PHP_AUTH_USER' => 'username',
+            'HTTP_AUTHORIZATION' => 'Authorization profile="UsernameToken"',
+            'HTTP_x-wsse' => 'X-WSSE: UsernameToken Username="'.$username.'", PasswordDigest="'.$digest.'", Nonce="'.$nonce.'", Created="'.$created.'"'
+        );
+
+        $client->request('GET', '/api/entries', array(), array(), $headers);
+        $this->assertContains('Mailjet', $client->getResponse()->getContent());
 
         $this->assertTrue(
             $client->getResponse()->headers->contains(
@@ -28,6 +49,5 @@ class WallabagRestControllerTest extends WebTestCase
                 'application/json'
             )
         );
-        $this->assertEquals('[]', $client->getResponse()->getContent());
     }
 }