public function pharAction() { $client = $this->serviceLocator->get('zendServerClient'); $client = new Client(); if (defined('PHAR')) { // the file from which the application was started is the phar file to replace $file = $_SERVER['SCRIPT_FILENAME']; } else { $file = dirname($_SERVER['SCRIPT_FILENAME']) . '/zs-client.phar'; } $request = new Request(); $request->setMethod(Request::METHOD_GET); $request->setHeaders(Headers::fromString('If-Modified-Since: ' . gmdate('D, d M Y H:i:s T', filemtime($file)))); $request->setUri('https://github.com/zendtech/ZendServerSDK/raw/master/bin/zs-client.phar'); //$client->getAdapter()->setOptions(array('sslcapath' => __DIR__.'/../../../certs/')); $client->setAdapter(new Curl()); $response = $client->send($request); if ($response->getStatusCode() == 304) { return 'Already up-to-date.'; } else { ErrorHandler::start(); rename($file, $file . '.' . date('YmdHi') . '.backup'); $handler = fopen($file, 'w'); fwrite($handler, $response->getBody()); fclose($handler); ErrorHandler::stop(true); return 'The phar file was updated successfully.'; } }
/** * Return the header container responsible for headers * * @return Headers */ public function getHeaders() { if ($this->headers === null || is_string($this->headers)) { // this is only here for fromString lazy loading $this->headers = is_string($this->headers) ? Headers::fromString($this->headers) : new Headers(); } return $this->headers; }
public function testWrongContentTypeThrowsInvalidResponseException() { $this->setExpectedException('Magium\\Mail\\Api\\InvalidResponseException'); $builder = $this->getMockBuilder('Zend\\Http\\Client')->setMethods(['send']); $client = $builder->getMock(); /* @var $client \Zend\Http\Client */ $response = new Response(); $response->setContent(json_encode(['error' => 'error message'])); $response->setHeaders(Headers::fromString('Content-Type: wrong')); $client->expects($this->once())->method('send')->willReturn($response); $generator = new Generator(new Configuration(), $client, 'abcd'); $generator->generate(); }
public function testHeadersFromStringFactoryCreatesMultipleObjects() { $headers = Headers::fromString("Fake: foo-bar\r\nAnother-Fake: boo-baz"); $this->assertEquals(2, $headers->count()); $header = $headers->get('fake'); $this->assertInstanceOf('Zend\\Http\\Header\\GenericHeader', $header); $this->assertEquals('Fake', $header->getFieldName()); $this->assertEquals('foo-bar', $header->getFieldValue()); $header = $headers->get('anotherfake'); $this->assertInstanceOf('Zend\\Http\\Header\\GenericHeader', $header); $this->assertEquals('Another-Fake', $header->getFieldName()); $this->assertEquals('boo-baz', $header->getFieldValue()); }
public function testFromHeaderMethod() { $headers = "X-Test-Header-1: Header1Value\r\n" . "X-Test-Header-2: Header2Value\r\n"; $r = new Request(); $r->setHeaders(\Zend\Http\Headers::fromString($headers)); $e = new MvcEvent(); $e->setRequest($r); $helper = new Helper($e); $header = $helper->fromHeader('X-Test-Header-1'); $this->assertInstanceOf('\\Zend\\Http\\Header\\GenericHeader', $header); $this->assertEquals('Header1Value', $header->getFieldValue()); $expect = array('X-Test-Header-1' => 'Header1Value', 'X-Test-Header-2' => 'Header2Value'); $this->assertEquals($expect, $helper->fromHeader()); $this->assertEquals('default', $helper->fromHeader('X-Not-Here', 'default')); }
public function testUrlIsRight() { $builder = $this->getMockBuilder('Zend\\Http\\Client')->setMethods(['send']); $client = $builder->getMock(); /* @var $client \Zend\Http\Client */ $response = new Response(); $response->setContent(json_encode(['email' => '*****@*****.**'])); $response->setHeaders(Headers::fromString('Content-Type: application/json')); $client->expects($this->once())->method('send')->willReturn($response); $configuration = new Configuration(); $generator = new Generator($configuration, $client, 'abcd'); $email = $generator->generate(); self::assertEquals('*****@*****.**', $email); self::assertEquals($configuration->getApiEndpointUrl(), $client->getUri()->toString()); }
/** * @runInSeparateProcess */ public function testSendHeadersSendsStatusLast() { if (!function_exists('xdebug_get_headers')) { $this->markTestSkipped('Xdebug extension needed, skipped test'); } $mockResponse = $this->getMock('Zend\\Http\\Response'); $mockResponse->expects($this->once())->method('getHeaders')->will($this->returnValue(Headers::fromString('Location: example.com'))); $mockResponse->expects($this->once())->method('renderStatusLine')->will($this->returnValue('X-Test: HTTP/1.1 202 Accepted')); $mockSendResponseEvent = $this->getMock('Zend\\Mvc\\ResponseSender\\SendResponseEvent', array('getResponse')); $mockSendResponseEvent->expects($this->any())->method('getResponse')->will($this->returnValue($mockResponse)); $responseSender = $this->getMockForAbstractClass('Zend\\Mvc\\ResponseSender\\AbstractResponseSender'); $responseSender->sendHeaders($mockSendResponseEvent); $sentHeaders = xdebug_get_headers(); $this->assertCount(2, $sentHeaders); $this->assertEquals('Location: example.com', $sentHeaders[0]); $this->assertEquals('X-Test: HTTP/1.1 202 Accepted', $sentHeaders[1], 'Status header is sent last to prevent header() from overwriting the ZF status code when a Location header is used'); }
/** * Return the header container responsible for headers or all headers of a certain name/type * * @see \Zend\Http\Headers::get() * @param string|null $name Header name to retrieve, or null to get the whole container. * @param mixed|null $default Default value to use when the requested header is missing. * @return \Zend\Http\Headers|bool|\Zend\Http\Header\HeaderInterface|\ArrayIterator */ public function getHeaders($name = null, $default = false) { if ($this->headers === null || is_string($this->headers)) { // this is only here for fromString lazy loading $this->headers = is_string($this->headers) ? Headers::fromString($this->headers) : new Headers(); } if ($name === null) { return $this->headers; } if ($this->headers->has($name)) { return $this->headers->get($name); } return $default; }
/** * Get response headers * * @return Headers */ public function getHeaders() { if ($this->headers === null || is_string($this->headers)) { $this->headers = is_string($this->headers) ? Headers::fromString($this->headers) : new Headers(); } return $this->headers; }
/** * Download a processed document */ public function downloadAction() { $documentId = (int) $this->params()->fromRoute('id'); $user = $this->identity(); if (!($document = $this->documentDAO->find($documentId)) or $document->job->user->id != $user->id and !$user->isAdministrator()) { $this->getResponse()->setStatusCode(404); return; } $response = $this->getEvent()->getResponse(); $response->setHeaders(Headers::fromString("Content-Type: {$document->mimeType}\r\n" . "Content-Length: {$document->size}\r\n" . "Content-Disposition: attachment; filename=\"{$document->getFileName()}\"")); $response->setContent(file_get_contents($document->path)); return $response; }
public function testZeroIsAValidHeaderValue() { $headers = Headers::fromString('Fake: 0'); $this->assertSame('0', $headers->get('Fake')->getFieldValue()); }
/** * Get headers for caching file and type * * @param string $mime File mimetype * @return \Zend\Http\Headers */ protected function getHeaders($file, $mime) { $cache_days = 20; $info = new \SplFileInfo($file); $filetime = $info->getMTime(); unset($info); $last_modified = date('D, d M Y H:i:s', $filetime) . ' GMT'; $expires = date('D, d M Y H:i:s', strtotime('+30 days', $filetime)) . ' GMT'; $hasid = md5($last_modified); $headers = "Cache-Control: max-age=" . $cache_days * 24 * 60 * 60 . "\r\n" . "Pragma: private\r\n" . "Last-Modified: " . $last_modified . "\r\n" . "Expires: " . $expires . "\r\n" . "Vary: Accept-Encoding\r\n" . "Etag: " . $hasid . "\r\n" . "Content-Type: " . $mime . "\r\n"; return Headers::fromString($headers); }