1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
# frozen_string_literal: true
require "test_helper"
module WebConsole
class PermissionsTest < ActiveSupport::TestCase
test "localhost is always allowed" do
permissions = permit("8.8.8.8")
assert_includes permissions, "127.0.0.1"
assert_includes permissions, "::1"
end
test "permits single IPs" do
permissions = permit("8.8.8.8")
assert_includes permissions, "8.8.8.8"
end
test "permits whole networks" do
permissions = permit("172.16.0.0/12")
1.upto(255).each do |n|
assert_includes permissions, "172.16.0.#{n}"
end
end
test "permits multiple networks" do
permissions = permit %w(172.16.0.0/12 192.168.0.0/16)
1.upto(255).each do |n|
assert_includes permissions, "172.16.0.#{n}"
assert_includes permissions, "192.168.0.#{n}"
end
end
test "ignores UNIX socket" do
permissions = permit("8.8.8.8")
assert_not_includes permissions, "unix:"
end
test "human readable presentation" do
assert_includes permit.to_s, "127.0.0.0/127.255.255.255, ::1"
end
private
def permit(*args)
Permissions.new(*args)
end
end
end
|