public function testCustomEncodeHandler()
{
$response = new Response();
Media::type('csv', 'application/csv', array('encode' => function ($data) {
ob_start();
$out = fopen('php://output', 'w');
foreach ($data as $record) {
fputcsv($out, $record);
}
fclose($out);
return ob_get_clean();
}));
$data = array(array('John', 'Doe', '123 Main St.', 'Anytown, CA', '91724'), array('Jane', 'Doe', '124 Main St.', 'Anytown, CA', '91724'));
$response->type('csv');
Media::render($response, $data);
$result = $response->body;
$expected = 'John,Doe,"123 Main St.","Anytown, CA",91724' . "\n";
$expected .= 'Jane,Doe,"124 Main St.","Anytown, CA",91724' . "\n";
$this->assertEqual(array($expected), $result);
$result = $response->headers['Content-Type'];
$this->assertEqual('application/csv; charset=UTF-8', $result);
}