]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
first test for API, need refactor
authorNicolas Lœuillet <nicolas@loeuillet.org>
Tue, 10 Feb 2015 22:13:34 +0000 (23:13 +0100)
committerNicolas Lœuillet <nicolas@loeuillet.org>
Wed, 11 Feb 2015 05:27:05 +0000 (06:27 +0100)
src/Wallabag/CoreBundle/Controller/WallabagRestController.php
src/Wallabag/CoreBundle/Tests/Controller/WallabagRestControllerTest.php

index 27d11da5ec158c931f614186d51777a75f73fa3b..fcd212efb4507a4383bc41d1e7edcb97ee0a511c 100644 (file)
@@ -33,7 +33,7 @@ class WallabagRestController extends Controller
             throw $this->createNotFoundException();
         }
 
-        return $user->getSalt();
+        return array($user->getSalt());
     }
     /**
      * Retrieve all entries. It could be filtered by many options.
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());
     }
 }