| 195 | } |
| 196 | |
| 197 | func TestWriter(t *testing.T) { |
| 198 | m := New() |
| 199 | m.AddFunc("dummy/dummy", func(m *M, w io.Writer, r io.Reader, _ map[string]string) error { |
| 200 | _, err := io.Copy(w, r) |
| 201 | return err |
| 202 | }) |
| 203 | m.AddFunc("dummy/err", func(m *M, w io.Writer, r io.Reader, _ map[string]string) error { |
| 204 | return errDummy |
| 205 | }) |
| 206 | m.AddFunc("dummy/late-err", func(m *M, w io.Writer, r io.Reader, _ map[string]string) error { |
| 207 | _, _ = io.ReadAll(r) |
| 208 | return errDummy |
| 209 | }) |
| 210 | |
| 211 | w := &bytes.Buffer{} |
| 212 | mw := m.Writer("dummy/dummy", w) |
| 213 | _, _ = mw.Write([]byte("test")) |
| 214 | test.Error(t, mw.Close()) |
| 215 | test.String(t, w.String(), "test", "equal input after dummy minify writer") |
| 216 | |
| 217 | w = &bytes.Buffer{} |
| 218 | mw = m.Writer("dummy/err", w) |
| 219 | _, _ = mw.Write([]byte("test")) |
| 220 | test.T(t, mw.Close(), errDummy) |
| 221 | test.String(t, w.String(), "") |
| 222 | |
| 223 | w = &bytes.Buffer{} |
| 224 | mw = m.Writer("dummy/late-err", w) |
| 225 | _, _ = mw.Write([]byte("test")) |
| 226 | test.T(t, mw.Close(), errDummy) |
| 227 | test.String(t, w.String(), "") |
| 228 | } |
| 229 | |
| 230 | type testResponseWriter struct { |
| 231 | writer io.Writer |