(t *testing.T)
| 219 | } |
| 220 | |
| 221 | func TestFileSystemUploadMultipart(t *testing.T) { |
| 222 | dir := createTestDir(t) |
| 223 | defer os.RemoveAll(dir) |
| 224 | |
| 225 | // create multipart form file |
| 226 | body := new(bytes.Buffer) |
| 227 | mp := multipart.NewWriter(body) |
| 228 | w, err := mp.CreateFormFile("test", "test") |
| 229 | if err != nil { |
| 230 | t.Fatalf("Failed creating form file: %v", err) |
| 231 | } |
| 232 | w.Write([]byte("demo")) |
| 233 | mp.Close() |
| 234 | |
| 235 | req := httptest.NewRequest(http.MethodPost, "/", body) |
| 236 | req.Header.Add("Content-Type", mp.FormDataContentType()) |
| 237 | |
| 238 | file, fh, err := req.FormFile("test") |
| 239 | if err != nil { |
| 240 | t.Fatalf("Failed to fetch form file: %v", err) |
| 241 | } |
| 242 | defer file.Close() |
| 243 | // --- |
| 244 | |
| 245 | fsys, err := filesystem.NewLocal(dir) |
| 246 | if err != nil { |
| 247 | t.Fatal(err) |
| 248 | } |
| 249 | defer fsys.Close() |
| 250 | |
| 251 | fileKey := "newdir/newkey.txt" |
| 252 | |
| 253 | uploadErr := fsys.UploadMultipart(fh, fileKey) |
| 254 | if uploadErr != nil { |
| 255 | t.Fatal(uploadErr) |
| 256 | } |
| 257 | |
| 258 | if exists, _ := fsys.Exists(fileKey); !exists { |
| 259 | t.Fatalf("Expected %q to exist", fileKey) |
| 260 | } |
| 261 | |
| 262 | attrs, err := fsys.Attributes(fileKey) |
| 263 | if err != nil { |
| 264 | t.Fatalf("Failed to fetch file attributes: %v", err) |
| 265 | } |
| 266 | if name, ok := attrs.Metadata["original-filename"]; !ok || name != "test" { |
| 267 | t.Fatalf("Expected original-filename to be %q, got %q", "test", name) |
| 268 | } |
| 269 | } |
| 270 | |
| 271 | func TestFileSystemUploadFile(t *testing.T) { |
| 272 | dir := createTestDir(t) |
nothing calls this directly
no test coverage detected
searching dependent graphs…