diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-08-13 14:51:15 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-13 14:51:15 -0400 |
commit | 1f8b1a587c397dd01e058820769580323a0f7330 (patch) | |
tree | a600f22f4639d8ac319276b3d58580c3431f2d4f /tests | |
parent | 1947f572d735096c1ccd7de2c386b8289c287701 (diff) |
Dynamic import should respect permissions (#2764)
Diffstat (limited to 'tests')
-rw-r--r-- | tests/013_dynamic_import.test | 2 | ||||
-rw-r--r-- | tests/014_duplicate_import.test | 2 | ||||
-rw-r--r-- | tests/015_duplicate_parallel_import.test | 2 | ||||
-rw-r--r-- | tests/042_dyn_import_evalcontext.test | 2 | ||||
-rw-r--r-- | tests/error_014_catch_dynamic_import_error.test | 2 | ||||
-rw-r--r-- | tests/error_015_dynamic_import_permissions.js | 3 | ||||
-rw-r--r-- | tests/error_015_dynamic_import_permissions.out | 1 | ||||
-rw-r--r-- | tests/error_015_dynamic_import_permissions.test | 4 | ||||
-rw-r--r-- | tests/error_016_dynamic_import_permissions2.js | 5 | ||||
-rw-r--r-- | tests/error_016_dynamic_import_permissions2.out | 2 | ||||
-rw-r--r-- | tests/error_016_dynamic_import_permissions2.test | 5 | ||||
-rw-r--r-- | tests/subdir/evil_remote_import.js | 4 |
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"); |