summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/tests/unit/fetch_test.ts17
-rw-r--r--ext/fetch/26_fetch.js5
2 files changed, 21 insertions, 1 deletions
diff --git a/cli/tests/unit/fetch_test.ts b/cli/tests/unit/fetch_test.ts
index 5375457bc..7a531392d 100644
--- a/cli/tests/unit/fetch_test.ts
+++ b/cli/tests/unit/fetch_test.ts
@@ -1773,3 +1773,20 @@ Deno.test(
listener.close();
},
);
+
+Deno.test(
+ { permissions: { net: true } },
+ async function fetchBlobUrl(): Promise<
+ void
+ > {
+ const blob = new Blob(["ok"], { type: "text/plain" });
+ const url = URL.createObjectURL(blob);
+ const res = await fetch(url);
+ console.log(res);
+ assert(res.url.startsWith("blob:http://js-unit-tests/"));
+ assertEquals(res.status, 200);
+ assertEquals(res.headers.get("content-length"), "2");
+ assertEquals(res.headers.get("content-type"), "text/plain");
+ assertEquals(await res.text(), "ok");
+ },
+);
diff --git a/ext/fetch/26_fetch.js b/ext/fetch/26_fetch.js
index 13c34f534..3e90429ce 100644
--- a/ext/fetch/26_fetch.js
+++ b/ext/fetch/26_fetch.js
@@ -165,6 +165,7 @@
const body = new InnerBody(req.blobUrlEntry.stream());
terminator[abortSignal.add](() => body.error(terminator.reason));
+ processUrlList(req.urlList, req.urlListProcessed);
return {
headerList: [
@@ -179,7 +180,9 @@
if (this.urlList.length == 0) return null;
return this.urlList[this.urlList.length - 1];
},
- urlList: recursive ? [] : [...new SafeArrayIterator(req.urlList)],
+ urlList: recursive
+ ? []
+ : [...new SafeArrayIterator(req.urlListProcessed)],
};
}