/**
* @dataProvider vapidProvider
*
* @param $audience
* @param $vapid
* @param $expiration
* @param $expectedAuthorization
* @param $expectedCryptoKey
*/
public function testGetVapidHeaders($audience, $vapid, $expiration, $expectedAuthorization, $expectedCryptoKey)
{
$vapid = VAPID::validate($vapid);
$headers = VAPID::getVapidHeaders($audience, $vapid['subject'], $vapid['publicKey'], $vapid['privateKey'], $expiration);
$this->assertArrayHasKey('Authorization', $headers);
$this->assertEquals(Utils::safeStrlen($expectedAuthorization), Utils::safeStrlen($headers['Authorization']));
$this->assertEquals($this->explodeAuthorization($expectedAuthorization), $this->explodeAuthorization($headers['Authorization']));
$this->assertArrayHasKey('Crypto-Key', $headers);
$this->assertEquals($expectedCryptoKey, $headers['Crypto-Key']);
}