public function testSignatureWithFileParameters()
 {
     $this->request->setBaseUrl('https://api.twitter.com/oauth');
     $this->request->setPath('/statuses/show.json');
     $this->request->setMethod('POST');
     $this->request->setOAuthParameters(array('oauth_nonce' => 'abcde', 'oauth_timestamp' => '1380373886', 'oauth_version' => '1.0', 'oauth_token' => 'oauth_token'));
     $this->request->setFileParameter('file', __FILE__);
     $this->assertSame('POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Fstatuses%2Fshow.json&oauth_nonce%3Dabcde%26oauth_timestamp%3D1380373886%26oauth_token%3Doauth_token%26oauth_version%3D1.0', $this->request->getSignature());
 }
 /**
  * {@inheritdoc}
  */
 public function generate(OAuthRequest $request, $consumerSecret, $tokenSecret = null)
 {
     if (($privateKey = openssl_pkey_get_private($this->getPrivateCertificate())) === false) {
         throw new \RuntimeException('The certificate private key cannot be fetched.');
     }
     if (openssl_sign($request->getSignature(), $signature, $privateKey) === false) {
         // @codeCoverageIgnoreStart
         throw new \RuntimeException('The signature cannot be generated.');
         // @codeCoverageIgnoreEnd
     }
     openssl_free_key($privateKey);
     return base64_encode($signature);
 }
 /**
  * {@inheritdoc}
  */
 public function generate(OAuthRequest $request, $consumerSecret, $tokenSecret = null)
 {
     return base64_encode(hash_hmac('sha1', $request->getSignature(), rawurlencode($consumerSecret) . '&' . rawurlencode($tokenSecret), true));
 }