public function testStringContent()
 {
     $upload = new FormUpload();
     $upload->setName('company[logo]');
     $upload->setFilename('google.png');
     $upload->setContent(file_get_contents(__DIR__ . '/Fixtures/google.png'));
     $this->assertEquals(array('Content-Disposition: form-data; name="company[logo]"; filename="google.png"', 'Content-Type: image/png'), $upload->getHeaders());
 }
 /**
  * @param  string $binaryImage
  * @param  string $filename
  * @param  int    $expire
  *
  * @return Response
  */
 public function call($binaryImage, $filename, $expire)
 {
     $response = new Response();
     $image = new FormUpload();
     $image->setFilename($filename);
     $image->setContent($binaryImage);
     $request = $this->buildRequest($image, $expire);
     $this->client->setOption(CURLOPT_TIMEOUT, 10000);
     $this->client->send($request, $response);
     return $this->processResponse($response);
 }
 public function testMultipartContent()
 {
     $upload = new FormUpload();
     $upload->setFilename('image.jpg');
     $upload->setContent('foobar');
     $request = new FormRequest();
     $request->setField('user[name]', 'Kris');
     $request->setField('user[image]', $upload);
     $content = $request->getContent();
     $this->assertContains("Content-Disposition: form-data; name=\"user[name]\"\r\n\r\nKris\r\n", $content);
     $this->assertContains("Content-Disposition: form-data; name=\"user[image]\"; filename=\"image.jpg\"\r\nContent-Type: text/plain\r\n\r\nfoobar\r\n", $content);
 }
 /**
  * @param UploadedFile $file
  * @param string $clientName
  * @param string $context
  *
  * @return Response
  *
  * @throws MediaStorageClientApiException
  *
  * @todo config to $context
  */
 public function sendFile(UploadedFile $file, $clientName, $context)
 {
     try {
         $request = new FormRequest();
         $request->setHeaders(['headers' => 'enctype:multipart/form-data']);
         $request->setMethod($this->getClientsConfig($clientName, 'method') ? $this->getClientsConfig($clientName, 'method') : FormRequest::METHOD_POST);
         $request->setHost($this->getClientsConfig($clientName, 'base_url'));
         $formUpload = new FormUpload($file->getRealPath());
         $formUpload->setFilename($file->getClientOriginalName());
         $request->addFields(['binaryContent' => $formUpload, 'context' => $context]);
         $request->setResource($this->getClientsConfig($clientName, 'add_media_url'));
         $this->logger->debug('Send ' . $this->getClientsConfig($clientName, 'base_url') . $this->getClientsConfig($clientName, 'add_media_url'));
         //.' '.$request->getContent()
         /** @var Response $response */
         $response = $this->client->send($request, null);
         $this->logger->debug('Response: ' . $response->getStatusCode() . ' ' . substr($response->getContent(), 0, 300));
     } catch (\Exception $e) {
         throw new MediaStorageClientApiException($e->getMessage());
     }
     return $response;
 }
 public function provideClientAndUpload()
 {
     $stringUpload = new FormUpload();
     $stringUpload->setFilename('google.png');
     $stringUpload->setContent(file_get_contents(__DIR__ . '/../Message/Fixtures/google.png'));
     $uploads = array($stringUpload, new FormUpload(__DIR__ . '/../Message/Fixtures/google.png'));
     $clients = $this->provideClient();
     $data = array();
     foreach ($clients as $client) {
         foreach ($uploads as $upload) {
             $data[] = array($client[0], $upload);
         }
     }
     return $data;
 }