sharable() public method

Sets whether a response is eligible to be cached by intermediate proxies This method controls the public or private directive in the Cache-Control header
public sharable ( boolean | null $public = null, integer | null $time = null ) : boolean | null
$public boolean | null If set to true, the Cache-Control header will be set as public if set to false, the response will be set to private if no value is provided, it will return whether the response is sharable or not
$time integer | null time in seconds after which the response should no longer be considered fresh
return boolean | null
Example #1
0
 /**
  * Tests setting of public/private Cache-Control directives
  *
  * @return void
  */
 public function testSharable()
 {
     $response = $this->getMock('Cake\\Network\\Response', array('_sendHeader', '_sendContent'));
     $this->assertNull($response->sharable());
     $response->sharable(true);
     $headers = $response->header();
     $this->assertEquals('public', $headers['Cache-Control']);
     $response->expects($this->at(1))->method('_sendHeader')->with('Cache-Control', 'public');
     $response->send();
     $response = $this->getMock('Cake\\Network\\Response', array('_sendHeader', '_sendContent'));
     $response->sharable(false);
     $headers = $response->header();
     $this->assertEquals('private', $headers['Cache-Control']);
     $response->expects($this->at(1))->method('_sendHeader')->with('Cache-Control', 'private');
     $response->send();
     $response = $this->getMock('Cake\\Network\\Response', array('_sendHeader', '_sendContent'));
     $response->sharable(true);
     $headers = $response->header();
     $this->assertEquals('public', $headers['Cache-Control']);
     $response->sharable(false);
     $headers = $response->header();
     $this->assertEquals('private', $headers['Cache-Control']);
     $response->expects($this->at(1))->method('_sendHeader')->with('Cache-Control', 'private');
     $response->send();
     $this->assertFalse($response->sharable());
     $response->sharable(true);
     $this->assertTrue($response->sharable());
     $response = new Response();
     $response->sharable(true, 3600);
     $headers = $response->header();
     $this->assertEquals('public, s-maxage=3600', $headers['Cache-Control']);
     $response = new Response();
     $response->sharable(false, 3600);
     $headers = $response->header();
     $this->assertEquals('private, max-age=3600', $headers['Cache-Control']);
     $response->send();
 }