aboutsummaryrefslogtreecommitdiff
path: root/test/js/deno/fetch/file.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'test/js/deno/fetch/file.test.ts')
-rw-r--r--test/js/deno/fetch/file.test.ts124
1 files changed, 124 insertions, 0 deletions
diff --git a/test/js/deno/fetch/file.test.ts b/test/js/deno/fetch/file.test.ts
new file mode 100644
index 000000000..a74cabc64
--- /dev/null
+++ b/test/js/deno/fetch/file.test.ts
@@ -0,0 +1,124 @@
+// Copyright 2018+ the Deno authors. All rights reserved. MIT license.
+// https://raw.githubusercontent.com/denoland/deno/main/cli/tests/unit/file_test.ts
+import { assert, assertEquals } from "deno:harness";
+function testFirstArgument(arg1: any[], expectedSize: number) {
+ const file = new File(arg1, "name");
+ assert(file instanceof File);
+ assertEquals(file.name, "name");
+ assertEquals(file.size, expectedSize);
+ assertEquals(file.type, "");
+}
+Deno.test(function fileEmptyFileBits() {
+ testFirstArgument([], 0);
+});
+Deno.test(function fileStringFileBits() {
+ testFirstArgument([
+ "bits"
+ ], 4);
+});
+Deno.test(function fileUnicodeStringFileBits() {
+ testFirstArgument([
+ "𝓽𝓮𝔁𝓽"
+ ], 16);
+});
+Deno.test(function fileStringObjectFileBits() {
+ testFirstArgument([
+ new String("string object")
+ ], 13);
+});
+Deno.test(function fileEmptyBlobFileBits() {
+ testFirstArgument([
+ new Blob()
+ ], 0);
+});
+Deno.test(function fileBlobFileBits() {
+ testFirstArgument([
+ new Blob([
+ "bits"
+ ])
+ ], 4);
+});
+Deno.test(function fileEmptyFileFileBits() {
+ testFirstArgument([
+ new File([], "world.txt")
+ ], 0);
+});
+Deno.test(function fileFileFileBits() {
+ testFirstArgument([
+ new File([
+ "bits"
+ ], "world.txt")
+ ], 4);
+});
+Deno.test(function fileArrayBufferFileBits() {
+ testFirstArgument([
+ new ArrayBuffer(8)
+ ], 8);
+});
+Deno.test(function fileTypedArrayFileBits() {
+ testFirstArgument([
+ new Uint8Array([
+ 0x50,
+ 0x41,
+ 0x53,
+ 0x53
+ ])
+ ], 4);
+});
+Deno.test(function fileVariousFileBits() {
+ testFirstArgument([
+ "bits",
+ new Blob([
+ "bits"
+ ]),
+ new Blob(),
+ new Uint8Array([
+ 0x50,
+ 0x41
+ ]),
+ new Uint16Array([
+ 0x5353
+ ]),
+ new Uint32Array([
+ 0x53534150
+ ])
+ ], 16);
+});
+Deno.test(function fileNumberInFileBits() {
+ testFirstArgument([
+ 12
+ ], 2);
+});
+Deno.test(function fileArrayInFileBits() {
+ testFirstArgument([
+ [
+ 1,
+ 2,
+ 3
+ ]
+ ], 5);
+});
+Deno.test(function fileObjectInFileBits() {
+ testFirstArgument([
+ {}
+ ], 15);
+});
+function testSecondArgument(arg2: any, expectedFileName: string) {
+ const file = new File([
+ "bits"
+ ], arg2);
+ assert(file instanceof File);
+ assertEquals(file.name, expectedFileName);
+}
+Deno.test(function fileUsingFileName() {
+ testSecondArgument("dummy", "dummy");
+});
+Deno.test(function fileUsingNullFileName() {
+ testSecondArgument(null, "null");
+});
+Deno.test(function fileUsingNumberFileName() {
+ testSecondArgument(1, "1");
+});
+Deno.test(function fileUsingEmptyStringFileName() {
+ testSecondArgument("", "");
+});