public function testGetDate() {
$response = new Response('', 200, array(
'Date' => $this
->createDateTimeOneHourAgo()
->format(DATE_RFC2822),
));
$this
->assertEquals(0, $this
->createDateTimeOneHourAgo()
->diff($response
->getDate())
->format('%s'), '->getDate() returns the Date header if present');
$response = new Response();
$date = $response
->getDate();
$this
->assertLessThan(1, $date
->diff(new \DateTime(), true)
->format('%s'), '->getDate() returns the current Date if no Date header present');
$response = new Response('', 200, array(
'Date' => $this
->createDateTimeOneHourAgo()
->format(DATE_RFC2822),
));
$now = $this
->createDateTimeNow();
$response->headers
->set('Date', $now
->format(DATE_RFC2822));
$this
->assertEquals(0, $now
->diff($response
->getDate())
->format('%s'), '->getDate() returns the date when the header has been modified');
$response = new Response('', 200);
$response->headers
->remove('Date');
$this
->assertInstanceOf('\\DateTime', $response
->getDate());
}