set-blob.any.js (2353B)
1 // META: title=formData.set(blob) and formData.set(file) 2 3 "use strict"; 4 5 const formData = new FormData(); 6 7 test(() => { 8 const value = new Blob(); 9 formData.set("blob-1", value); 10 const blob1 = formData.get("blob-1"); 11 assert_not_equals(blob1, value); 12 assert_equals(blob1.constructor.name, "File"); 13 assert_equals(blob1.name, "blob"); 14 assert_equals(blob1.type, ""); 15 assert_equals(formData.get("blob-1") === formData.get("blob-1"), true, "should return the same value when get the same blob entry from FormData"); 16 assert_less_than(Math.abs(blob1.lastModified - Date.now()), 200, "lastModified should be now"); 17 }, "blob without type"); 18 19 test(() => { 20 const value = new Blob([], { type: "text/plain" }); 21 formData.set("blob-2", value); 22 const blob2 = formData.get("blob-2"); 23 assert_not_equals(blob2, value); 24 assert_equals(blob2.constructor.name, "File"); 25 assert_equals(blob2.name, "blob"); 26 assert_equals(blob2.type, "text/plain"); 27 assert_less_than(Math.abs(blob2.lastModified - Date.now()), 200, "lastModified should be now"); 28 }, "blob with type"); 29 30 test(() => { 31 const value = new Blob(); 32 formData.set("blob-3", value, "custom name"); 33 const blob3 = formData.get("blob-3"); 34 assert_not_equals(blob3, value); 35 assert_equals(blob3.constructor.name, "File"); 36 assert_equals(blob3.name, "custom name"); 37 assert_equals(blob3.type, ""); 38 assert_less_than(Math.abs(blob3.lastModified - Date.now()), 200, "lastModified should be now"); 39 }, "blob with custom name"); 40 41 test(() => { 42 const value = new File([], "name"); 43 formData.set("file-1", value); 44 const file1 = formData.get("file-1"); 45 assert_equals(file1, value); 46 assert_equals(file1.constructor.name, "File"); 47 assert_equals(file1.name, "name"); 48 assert_equals(file1.type, ""); 49 assert_less_than(Math.abs(file1.lastModified - Date.now()), 200, "lastModified should be now"); 50 }, "file without lastModified or custom name"); 51 52 test(() => { 53 const value = new File([], "name", { lastModified: 123 }); 54 formData.set("file-2", value, "custom name"); 55 const file2 = formData.get("file-2"); 56 assert_not_equals(file2, value); 57 assert_equals(file2.constructor.name, "File"); 58 assert_equals(file2.name, "custom name"); 59 assert_equals(file2.type, ""); 60 assert_equals(file2.lastModified, 123, "lastModified should be 123"); 61 }, "file with lastModified and custom name");