- $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());