tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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");