diff options
author | Nicolas LÅ“uillet <nicolas@loeuillet.org> | 2015-02-10 23:13:34 +0100 |
---|---|---|
committer | Nicolas LÅ“uillet <nicolas@loeuillet.org> | 2015-02-11 06:27:05 +0100 |
commit | e1dd7f70c5cc0a0086d83d5fcdaa7a25081a5e6f (patch) | |
tree | c30f5c6859492a6c17a760414db119d14c72a451 /src/Wallabag/CoreBundle/Tests | |
parent | f5deb024a2dd5a2cb27263a51f4653609407597e (diff) | |
download | wallabag-e1dd7f70c5cc0a0086d83d5fcdaa7a25081a5e6f.tar.gz wallabag-e1dd7f70c5cc0a0086d83d5fcdaa7a25081a5e6f.tar.zst wallabag-e1dd7f70c5cc0a0086d83d5fcdaa7a25081a5e6f.zip |
first test for API, need refactor
Diffstat (limited to 'src/Wallabag/CoreBundle/Tests')
-rw-r--r-- | src/Wallabag/CoreBundle/Tests/Controller/WallabagRestControllerTest.php | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/WallabagRestControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/WallabagRestControllerTest.php index d9e6a161..ff3c9432 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/WallabagRestControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/WallabagRestControllerTest.php | |||
@@ -3,6 +3,7 @@ | |||
3 | namespace Wallabag\CoreBundle\Tests\Controller; | 3 | namespace Wallabag\CoreBundle\Tests\Controller; |
4 | 4 | ||
5 | use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; | 5 | use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; |
6 | use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder; | ||
6 | 7 | ||
7 | class WallabagRestControllerTest extends WebTestCase | 8 | class WallabagRestControllerTest extends WebTestCase |
8 | { | 9 | { |
@@ -16,11 +17,31 @@ class WallabagRestControllerTest extends WebTestCase | |||
16 | $this->assertEquals(404, $client->getResponse()->getStatusCode()); | 17 | $this->assertEquals(404, $client->getResponse()->getStatusCode()); |
17 | } | 18 | } |
18 | 19 | ||
19 | public function testEmptyGetEntries() | 20 | public function testGetEntries() |
20 | { | 21 | { |
21 | $client = $this->createClient(); | 22 | $client = $this->createClient(); |
22 | $client->request('GET', '/api/entries'); | 23 | $client->request('GET', '/api/salts/admin.json'); |
23 | $this->assertTrue($client->getResponse()->isOk()); | 24 | $content = json_decode($client->getResponse()->getContent()); |
25 | $salt = $content[0]; | ||
26 | |||
27 | $username = 'admin'; | ||
28 | $password = 'test'; | ||
29 | |||
30 | $encryptedPassword = sha1($password.$username.$salt); | ||
31 | $nonce = substr(md5(uniqid('nonce_', true)), 0, 16); | ||
32 | |||
33 | $now = new \DateTime('now', new \DateTimeZone('UTC')); | ||
34 | $created = (string)$now->format( 'Y-m-d\TH:i:s\Z' ); | ||
35 | $digest = base64_encode(sha1(base64_decode($nonce).$created.$encryptedPassword, true)); | ||
36 | |||
37 | $headers = array( | ||
38 | 'PHP_AUTH_USER' => 'username', | ||
39 | 'HTTP_AUTHORIZATION' => 'Authorization profile="UsernameToken"', | ||
40 | 'HTTP_x-wsse' => 'X-WSSE: UsernameToken Username="'.$username.'", PasswordDigest="'.$digest.'", Nonce="'.$nonce.'", Created="'.$created.'"' | ||
41 | ); | ||
42 | |||
43 | $client->request('GET', '/api/entries', array(), array(), $headers); | ||
44 | $this->assertContains('Mailjet', $client->getResponse()->getContent()); | ||
24 | 45 | ||
25 | $this->assertTrue( | 46 | $this->assertTrue( |
26 | $client->getResponse()->headers->contains( | 47 | $client->getResponse()->headers->contains( |
@@ -28,6 +49,5 @@ class WallabagRestControllerTest extends WebTestCase | |||
28 | 'application/json' | 49 | 'application/json' |
29 | ) | 50 | ) |
30 | ); | 51 | ); |
31 | $this->assertEquals('[]', $client->getResponse()->getContent()); | ||
32 | } | 52 | } |
33 | } | 53 | } |