summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2019-08-13 14:51:15 -0400
committerGitHub <noreply@github.com>2019-08-13 14:51:15 -0400
commit1f8b1a587c397dd01e058820769580323a0f7330 (patch)
treea600f22f4639d8ac319276b3d58580c3431f2d4f /tests
parent1947f572d735096c1ccd7de2c386b8289c287701 (diff)
Dynamic import should respect permissions (#2764)
Diffstat (limited to 'tests')
-rw-r--r--tests/013_dynamic_import.test2
-rw-r--r--tests/014_duplicate_import.test2
-rw-r--r--tests/015_duplicate_parallel_import.test2
-rw-r--r--tests/042_dyn_import_evalcontext.test2
-rw-r--r--tests/error_014_catch_dynamic_import_error.test2
-rw-r--r--tests/error_015_dynamic_import_permissions.js3
-rw-r--r--tests/error_015_dynamic_import_permissions.out1
-rw-r--r--tests/error_015_dynamic_import_permissions.test4
-rw-r--r--tests/error_016_dynamic_import_permissions2.js5
-rw-r--r--tests/error_016_dynamic_import_permissions2.out2
-rw-r--r--tests/error_016_dynamic_import_permissions2.test5
-rw-r--r--tests/subdir/evil_remote_import.js4
12 files changed, 29 insertions, 5 deletions
diff --git a/tests/013_dynamic_import.test b/tests/013_dynamic_import.test
index 8fe463b20..d65139dfa 100644
--- a/tests/013_dynamic_import.test
+++ b/tests/013_dynamic_import.test
@@ -1,2 +1,2 @@
-args: tests/013_dynamic_import.ts --reload
+args: tests/013_dynamic_import.ts --reload --allow-read
output: tests/013_dynamic_import.ts.out
diff --git a/tests/014_duplicate_import.test b/tests/014_duplicate_import.test
index 57d5b6e8b..c4811a32c 100644
--- a/tests/014_duplicate_import.test
+++ b/tests/014_duplicate_import.test
@@ -1,2 +1,2 @@
-args: tests/014_duplicate_import.ts --reload
+args: tests/014_duplicate_import.ts --reload --allow-read
output: tests/014_duplicate_import.ts.out
diff --git a/tests/015_duplicate_parallel_import.test b/tests/015_duplicate_parallel_import.test
index ec8c79b21..837827795 100644
--- a/tests/015_duplicate_parallel_import.test
+++ b/tests/015_duplicate_parallel_import.test
@@ -1,2 +1,2 @@
-args: tests/015_duplicate_parallel_import.js --reload
+args: tests/015_duplicate_parallel_import.js --reload --allow-read
output: tests/015_duplicate_parallel_import.js.out
diff --git a/tests/042_dyn_import_evalcontext.test b/tests/042_dyn_import_evalcontext.test
index cfe0df3f2..ab1efc084 100644
--- a/tests/042_dyn_import_evalcontext.test
+++ b/tests/042_dyn_import_evalcontext.test
@@ -1,2 +1,2 @@
-args: run --reload tests/042_dyn_import_evalcontext.ts
+args: run --allow-read --reload tests/042_dyn_import_evalcontext.ts
output: tests/042_dyn_import_evalcontext.ts.out
diff --git a/tests/error_014_catch_dynamic_import_error.test b/tests/error_014_catch_dynamic_import_error.test
index 8345ad1c8..13ece4843 100644
--- a/tests/error_014_catch_dynamic_import_error.test
+++ b/tests/error_014_catch_dynamic_import_error.test
@@ -1,2 +1,2 @@
-args: tests/error_014_catch_dynamic_import_error.js --reload
+args: tests/error_014_catch_dynamic_import_error.js --reload --allow-read
output: tests/error_014_catch_dynamic_import_error.js.out
diff --git a/tests/error_015_dynamic_import_permissions.js b/tests/error_015_dynamic_import_permissions.js
new file mode 100644
index 000000000..3460ca787
--- /dev/null
+++ b/tests/error_015_dynamic_import_permissions.js
@@ -0,0 +1,3 @@
+(async () => {
+ await import("http://localhost:4545/tests/subdir/mod4.js");
+})();
diff --git a/tests/error_015_dynamic_import_permissions.out b/tests/error_015_dynamic_import_permissions.out
new file mode 100644
index 000000000..90ccd0d1a
--- /dev/null
+++ b/tests/error_015_dynamic_import_permissions.out
@@ -0,0 +1 @@
+error: Uncaught TypeError: permission denied
diff --git a/tests/error_015_dynamic_import_permissions.test b/tests/error_015_dynamic_import_permissions.test
new file mode 100644
index 000000000..62f31e6b3
--- /dev/null
+++ b/tests/error_015_dynamic_import_permissions.test
@@ -0,0 +1,4 @@
+args: --reload --no-prompt tests/error_015_dynamic_import_permissions.js
+output: tests/error_015_dynamic_import_permissions.out
+check_stderr: true
+exit_code: 1
diff --git a/tests/error_016_dynamic_import_permissions2.js b/tests/error_016_dynamic_import_permissions2.js
new file mode 100644
index 000000000..71c70815c
--- /dev/null
+++ b/tests/error_016_dynamic_import_permissions2.js
@@ -0,0 +1,5 @@
+// If this is executed with --allow-net but not --allow-read the following
+// import should cause a permission denied error.
+(async () => {
+ await import("http://localhost:4545/tests/subdir/evil_remote_import.js");
+})();
diff --git a/tests/error_016_dynamic_import_permissions2.out b/tests/error_016_dynamic_import_permissions2.out
new file mode 100644
index 000000000..f52186481
--- /dev/null
+++ b/tests/error_016_dynamic_import_permissions2.out
@@ -0,0 +1,2 @@
+[WILDCARD]
+error: Uncaught TypeError: permission denied
diff --git a/tests/error_016_dynamic_import_permissions2.test b/tests/error_016_dynamic_import_permissions2.test
new file mode 100644
index 000000000..0fc514f0f
--- /dev/null
+++ b/tests/error_016_dynamic_import_permissions2.test
@@ -0,0 +1,5 @@
+# We have an allow-net flag but not allow-read, it should still result in error.
+args: --no-prompt --reload --allow-net tests/error_016_dynamic_import_permissions2.js
+output: tests/error_016_dynamic_import_permissions2.out
+check_stderr: true
+exit_code: 1
diff --git a/tests/subdir/evil_remote_import.js b/tests/subdir/evil_remote_import.js
new file mode 100644
index 000000000..4ff7d1b97
--- /dev/null
+++ b/tests/subdir/evil_remote_import.js
@@ -0,0 +1,4 @@
+// We expect to get a permission denied error if we dynamically
+// import this module without --allow-read.
+export * from "file:///c:/etc/passwd";
+console.log("Hello from evil_remote_import.js");