mirror of
https://github.com/denoland/deno.git
synced 2025-09-27 04:39:10 +00:00
parent
f92af3576a
commit
1105982586
3 changed files with 150 additions and 55 deletions
|
@ -8,6 +8,7 @@ import subprocess
|
|||
import sys
|
||||
import time
|
||||
|
||||
import http_server
|
||||
from util import build_path, root_path, executable_suffix, green_ok, red_failed
|
||||
|
||||
PERMISSIONS_PROMPT_TEST_TS = "tools/complex_permissions_test.ts"
|
||||
|
@ -96,15 +97,53 @@ class Prompt(object):
|
|||
test_type)
|
||||
wrap_test(test_name_base + "_no_prefix", self.test_no_prefix,
|
||||
test_type)
|
||||
wrap_test(test_name_base + "_allow_localhost_4545",
|
||||
self.test_allow_localhost_4545)
|
||||
wrap_test(test_name_base + "_allow_deno_land",
|
||||
self.test_allow_deno_land)
|
||||
wrap_test(test_name_base + "_allow_localhost_4545_fail",
|
||||
self.test_allow_localhost_4545_fail)
|
||||
wrap_test(test_name_base + "_allow_localhost",
|
||||
self.test_allow_localhost)
|
||||
|
||||
test_name = "net_fetch"
|
||||
test_name_base = "test_" + test_name
|
||||
wrap_test(test_name_base + "_allow_localhost_4545",
|
||||
self.test_allow_localhost_4545, test_name,
|
||||
["http://localhost:4545"])
|
||||
wrap_test(test_name_base + "_allow_deno_land",
|
||||
self.test_allow_deno_land, test_name,
|
||||
["http://localhost:4545"])
|
||||
wrap_test(test_name_base + "_allow_localhost_4545_fail",
|
||||
self.test_allow_localhost_4545_fail, test_name,
|
||||
["http://localhost:4546"])
|
||||
wrap_test(test_name_base + "_allow_localhost",
|
||||
self.test_allow_localhost, test_name, [
|
||||
"http://localhost:4545", "http://localhost:4546",
|
||||
"http://localhost:4547"
|
||||
])
|
||||
|
||||
test_name = "net_dial"
|
||||
test_name_base = "test_" + test_name
|
||||
wrap_test(test_name_base + "_allow_127.0.0.1:4545",
|
||||
self.test_allow_localhost_ip_4555, test_name,
|
||||
["127.0.0.1:4545"])
|
||||
wrap_test(test_name_base + "_allow_deno_land",
|
||||
self.test_allow_deno_land, test_name, ["127.0.0.1:4545"])
|
||||
wrap_test(test_name_base + "_allow_127.0.0.1:4545_fail",
|
||||
self.test_allow_localhost_ip_4545_fail, test_name,
|
||||
["127.0.0.1:4546"])
|
||||
wrap_test(test_name_base + "_allow_127.0.0.1",
|
||||
self.test_allow_localhost_ip, test_name,
|
||||
["127.0.0.1:4545", "127.0.0.1:4546", "127.0.0.1:4547"])
|
||||
|
||||
test_name = "net_listen"
|
||||
test_name_base = "test_" + test_name
|
||||
wrap_test(test_name_base + "_allow_localhost_4555",
|
||||
self.test_allow_localhost_4555, test_name,
|
||||
["localhost:4555"])
|
||||
wrap_test(test_name_base + "_allow_deno_land",
|
||||
self.test_allow_deno_land, test_name, ["localhost:4545"])
|
||||
wrap_test(test_name_base + "_allow_localhost_4555_fail",
|
||||
self.test_allow_localhost_4555_fail, test_name,
|
||||
["localhost:4556"])
|
||||
wrap_test(test_name_base + "_allow_localhost",
|
||||
self.test_allow_localhost, test_name,
|
||||
["localhost:4555", "localhost:4556", "localhost:4557"])
|
||||
|
||||
# read/write tests
|
||||
def test_inside_project_dir(self, test_type):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-" + test_type + "=" + root_path],
|
||||
|
@ -149,40 +188,6 @@ class Prompt(object):
|
|||
assert not PROMPT_PATTERN in stderr
|
||||
assert not PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_allow_localhost_4545(self):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=localhost:4545"],
|
||||
["net", "http://localhost:4545"], b'')
|
||||
assert code == 0
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert not PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_allow_deno_land(self):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=deno.land"],
|
||||
["net", "http://localhost:4545"], b'')
|
||||
assert code == 1
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_allow_localhost_4545_fail(self):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=localhost:4545"],
|
||||
["net", "http://localhost:4546"], b'')
|
||||
assert code == 1
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_allow_localhost(self):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=localhost"], [
|
||||
"net", "http://localhost:4545", "http://localhost:4546",
|
||||
"http://localhost:4547"
|
||||
], b'')
|
||||
assert code == 0
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert not PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_relative(self, test_type):
|
||||
# Save and restore curdir
|
||||
saved_curdir = os.getcwd()
|
||||
|
@ -207,6 +212,84 @@ class Prompt(object):
|
|||
assert not PERMISSION_DENIED_PATTERN in stderr
|
||||
os.chdir(saved_curdir)
|
||||
|
||||
# net tests
|
||||
def test_allow_net(self, test_type, allowed_host, hosts):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=" + allowed_host],
|
||||
[test_type] + hosts, b'')
|
||||
assert code == 0
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert not PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_allow_localhost_4545(self, test_type, hosts):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=localhost:4545"], [test_type] + hosts,
|
||||
b'')
|
||||
assert code == 0
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert not PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_allow_localhost_ip_4555(self, test_type, hosts):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=127.0.0.1:4545"], [test_type] + hosts,
|
||||
b'')
|
||||
assert code == 0
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert not PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_allow_localhost_4555(self, test_type, hosts):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=localhost:4555"], [test_type] + hosts,
|
||||
b'')
|
||||
assert code == 0
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert not PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_allow_deno_land(self, test_type, hosts):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=deno.land"], [test_type] + hosts, b'')
|
||||
assert code == 1
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_allow_localhost_4545_fail(self, test_type, hosts):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=localhost:4545"], [test_type] + hosts,
|
||||
b'')
|
||||
assert code == 1
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_allow_localhost_ip_4545_fail(self, test_type, hosts):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=127.0.0.1:4545"], [test_type] + hosts,
|
||||
b'')
|
||||
assert code == 1
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_allow_localhost_4555_fail(self, test_type, hosts):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=localhost:4555"], [test_type] + hosts,
|
||||
b'')
|
||||
assert code == 1
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_allow_localhost(self, test_type, hosts):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=localhost"], [test_type] + hosts, b'')
|
||||
assert code == 0
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert not PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
def test_allow_localhost_ip(self, test_type, hosts):
|
||||
code, _stdout, stderr = self.run(
|
||||
["--no-prompt", "--allow-net=127.0.0.1"], [test_type] + hosts, b'')
|
||||
assert code == 0
|
||||
assert not PROMPT_PATTERN in stderr
|
||||
assert not PERMISSION_DENIED_PATTERN in stderr
|
||||
|
||||
|
||||
def complex_permissions_test(deno_exe):
|
||||
p = Prompt(deno_exe, ["read", "write", "net"])
|
||||
|
@ -216,6 +299,7 @@ def complex_permissions_test(deno_exe):
|
|||
def main():
|
||||
print "Permissions prompt tests"
|
||||
deno_exe = os.path.join(build_path(), "deno" + executable_suffix)
|
||||
http_server.spawn()
|
||||
complex_permissions_test(deno_exe)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue