}); describe("::set()", function () { it("supports custom handlers", function () { Media::set('csv', ['application/csv'], ['encode' => function ($data) { ob_start(); $out = fopen('php://output', 'w'); foreach ($data as $record) { fputcsv($out, $record); } fclose($out); return ob_get_clean(); }]); $response = new Response(); $response->format('csv'); $data = [['John', 'Doe', '123 Main St.', 'Anytown, CA', '91724'], ['Jane', 'Doe', '124 Main St.', 'Anytown, CA', '91724']]; $response->set($data); $expected = 'John,Doe,"123 Main St.","Anytown, CA",91724' . "\n"; $expected .= 'Jane,Doe,"124 Main St.","Anytown, CA",91724' . "\n"; expect($response->body())->toBe($expected); expect((string) $response->headers['Content-Type'])->toBe('Content-Type: application/csv'); }); }); describe("::remove()", function () { it("remove a format", function () { Media::set('csv', []); Media::set('pdf', []); expect(Media::get('csv'))->not->toBe(null); expect(Media::get('pdf'))->not->toBe(null); Media::remove(['csv', 'pdf']); expect(Media::get('csv'))->toBe(null); expect(Media::get('pdf'))->toBe(null);