public function testGenerateSignedLink()
{
if (!extension_loaded('openssl')) {
$this->markTestSkipped('OpenSSL is required for this test.');
}
$pemFile = sys_get_temp_dir() . '/aws-sdk-php-zf2-cloudfront-test.pem';
if (!file_exists($pemFile)) {
// Generate a new Certificate Signing Request and public/private keypair
$csr = openssl_csr_new([], $keypair);
// Create a self-signed certificate
$x509 = openssl_csr_sign($csr, null, $keypair, 1);
openssl_x509_export($x509, $certificate);
// Create and save a private key
$privateKey = openssl_get_privatekey($keypair);
openssl_pkey_export_to_file($privateKey, $pemFile);
}
$this->viewHelper->setHostname('example.com');
$link = $this->viewHelper->__invoke('my-object', '123abc', time() + 600, 'kpid', $pemFile);
$this->assertRegExp('#^https\\:\\/\\/123abc\\.example\\.com\\/my-object\\?Expires\\=(.*)\\&Signature\\=(.*)\\&Key-Pair-Id\\=kpid$#', $link);
}