Re-enable DNS integration tests
This commit is contained in:
@@ -43,10 +43,10 @@ class TC_DnsRest < Test::Unit::TestCase
|
||||
# Tests POST /api/dns/rule handler with valid input
|
||||
def test_1_add_rule_good
|
||||
pattern = 'foo.bar'
|
||||
type = 'A'
|
||||
resource = 'A'
|
||||
dns_response = ['1.2.3.4']
|
||||
|
||||
json = {:pattern => pattern, :type => type, :response => dns_response}.to_json
|
||||
json = {:pattern => pattern, :resource => resource, :response => dns_response}.to_json
|
||||
|
||||
rest_response = RestClient.post("#{RESTAPI_DNS}/rule?token=#{@@token}",
|
||||
json,
|
||||
@@ -73,10 +73,10 @@ class TC_DnsRest < Test::Unit::TestCase
|
||||
# Tests POST /api/dns/rule handler with invalid input
|
||||
def test_2_add_rule_bad
|
||||
pattern = ''
|
||||
type = 'A'
|
||||
resource = 'A'
|
||||
dns_response = ['1.1.1.1']
|
||||
|
||||
hash = {:pattern => pattern, :type => type, :response => dns_response}
|
||||
hash = {:pattern => pattern, :resource => resource, :response => dns_response}
|
||||
|
||||
# Test that an empty "pattern" key returns 400
|
||||
assert_raise RestClient::BadRequest do
|
||||
@@ -86,16 +86,16 @@ class TC_DnsRest < Test::Unit::TestCase
|
||||
end
|
||||
|
||||
hash['pattern'] = 'foo.bar.baz'
|
||||
hash['type'] = ''
|
||||
hash['resource'] = ''
|
||||
|
||||
# Test that an empty "type" key returns 400
|
||||
# Test that an empty "resource" key returns 400
|
||||
assert_raise RestClient::BadRequest do
|
||||
rest_response = RestClient.post("#{RESTAPI_DNS}/rule?token=#{@@token}",
|
||||
hash.to_json,
|
||||
@@headers)
|
||||
end
|
||||
|
||||
hash['type'] = 'A'
|
||||
hash['resource'] = 'A'
|
||||
hash['response'] = []
|
||||
|
||||
# Test that an empty "response" key returns 400
|
||||
@@ -114,122 +114,122 @@ class TC_DnsRest < Test::Unit::TestCase
|
||||
@@headers)
|
||||
end
|
||||
end
|
||||
|
||||
=begin
|
||||
# Tests POST /api/dns/rule handler with each supported RR type
|
||||
def test_3_add_rule_types
|
||||
pattern = 'be.ef'
|
||||
type = 'AAAA'
|
||||
resource = 'AAAA'
|
||||
response = ['2001:db8:ac10:fe01::']
|
||||
|
||||
# Test AAAA type
|
||||
rule = {'pattern' => pattern, 'type' => type, 'response' => response}
|
||||
rule = {'pattern' => pattern, 'resource' => resource, 'response' => response}
|
||||
|
||||
regex = %r{
|
||||
^#{rule['pattern']}\.\t+
|
||||
\d+\t+
|
||||
IN\t+
|
||||
#{rule['type']}\t+
|
||||
#{rule['resource']}\t+
|
||||
#{rule['response'][0]}$
|
||||
}x
|
||||
|
||||
add_rule(rule)
|
||||
check_dns_response(regex, rule['type'], rule['pattern'])
|
||||
check_dns_response(regex, rule['resource'], rule['pattern'])
|
||||
|
||||
# Test CNAME type
|
||||
rule['type'] = 'CNAME'
|
||||
rule['resource'] = 'CNAME'
|
||||
rule['response'] = ['fe.eb.']
|
||||
|
||||
regex = %r{
|
||||
^#{rule['pattern']}\.\t+
|
||||
\d+\t+
|
||||
IN\t+
|
||||
#{rule['type']}\t+
|
||||
#{rule['resource']}\t+
|
||||
#{rule['response'][0]}$
|
||||
}x
|
||||
|
||||
add_rule(rule)
|
||||
check_dns_response(regex, rule['type'], rule['pattern'])
|
||||
check_dns_response(regex, rule['resource'], rule['pattern'])
|
||||
|
||||
# Test HINFO type
|
||||
rule['type'] = 'HINFO'
|
||||
rule['resource'] = 'HINFO'
|
||||
rule['response'] = ['M6800', 'VMS']
|
||||
|
||||
regex = %r{
|
||||
^#{rule['pattern']}\.\t+
|
||||
\d+\t+
|
||||
IN\t+
|
||||
#{rule['type']}\t+
|
||||
#{rule['resource']}\t+
|
||||
"#{rule['response'][0]}"\s+
|
||||
"#{rule['response'][1]}"$
|
||||
}x
|
||||
|
||||
add_rule(rule)
|
||||
check_dns_response(regex, rule['type'], rule['pattern'])
|
||||
check_dns_response(regex, rule['resource'], rule['pattern'])
|
||||
|
||||
# Test MINFO type
|
||||
rule['type'] = 'MINFO'
|
||||
rule['resource'] = 'MINFO'
|
||||
rule['response'] = ['rmail.be.ef.', 'email.be.ef.']
|
||||
|
||||
regex = %r{
|
||||
^#{rule['pattern']}\.\t+
|
||||
\d+\t+
|
||||
IN\t+
|
||||
#{rule['type']}\t+
|
||||
#{rule['resource']}\t+
|
||||
#{rule['response'][0]}\s+
|
||||
#{rule['response'][1]}$
|
||||
}x
|
||||
|
||||
add_rule(rule)
|
||||
check_dns_response(regex, rule['type'], rule['pattern'])
|
||||
check_dns_response(regex, rule['resource'], rule['pattern'])
|
||||
|
||||
# Test MX type
|
||||
rule['type'] = 'MX'
|
||||
rule['resource'] = 'MX'
|
||||
rule['response'] = [10, 'mail.be.ef.']
|
||||
|
||||
regex = %r{
|
||||
^#{rule['pattern']}\.\t+
|
||||
\d+\t+
|
||||
IN\t+
|
||||
#{rule['type']}\t+
|
||||
#{rule['resource']}\t+
|
||||
#{rule['response'][0]}\s+
|
||||
#{rule['response'][1]}$
|
||||
}x
|
||||
|
||||
add_rule(rule)
|
||||
check_dns_response(regex, rule['type'], rule['pattern'])
|
||||
check_dns_response(regex, rule['resource'], rule['pattern'])
|
||||
|
||||
# Test NS type
|
||||
rule['type'] = 'NS'
|
||||
rule['resource'] = 'NS'
|
||||
rule['response'] = ['ns.be.ef.']
|
||||
|
||||
regex = %r{
|
||||
^#{rule['pattern']}\.\t+
|
||||
\d+\t+
|
||||
IN\t+
|
||||
#{rule['type']}\t+
|
||||
#{rule['resource']}\t+
|
||||
#{rule['response'][0]}$
|
||||
}x
|
||||
|
||||
add_rule(rule)
|
||||
check_dns_response(regex, rule['type'], rule['pattern'])
|
||||
check_dns_response(regex, rule['resource'], rule['pattern'])
|
||||
|
||||
# Test PTR type
|
||||
rule['type'] = 'PTR'
|
||||
rule['resource'] = 'PTR'
|
||||
rule['response'] = ['4.3.2.1.in-addr.arpa.']
|
||||
|
||||
regex = %r{
|
||||
^#{rule['pattern']}\.\t+
|
||||
\d+\t+
|
||||
IN\t+
|
||||
#{rule['type']}\t+
|
||||
#{rule['resource']}\t+
|
||||
#{rule['response'][0]}$
|
||||
}x
|
||||
|
||||
add_rule(rule)
|
||||
check_dns_response(regex, rule['type'], rule['pattern'])
|
||||
check_dns_response(regex, rule['resource'], rule['pattern'])
|
||||
|
||||
# Test SOA type
|
||||
rule['type'] = 'SOA'
|
||||
rule['resource'] = 'SOA'
|
||||
rule['response'] = [
|
||||
"ns.#{rule['pattern']}.",
|
||||
"mail.#{rule['pattern']}.",
|
||||
@@ -244,46 +244,46 @@ class TC_DnsRest < Test::Unit::TestCase
|
||||
^#{rule['pattern']}\.\t+
|
||||
\d+\t+
|
||||
IN\t+
|
||||
#{rule['type']}\t+
|
||||
#{rule['resource']}\t+
|
||||
.*
|
||||
}x
|
||||
|
||||
add_rule(rule)
|
||||
check_dns_response(regex, rule['type'], rule['pattern'])
|
||||
check_dns_response(regex, rule['resource'], rule['pattern'])
|
||||
|
||||
# Test TXT type
|
||||
rule['type'] = 'TXT'
|
||||
rule['resource'] = 'TXT'
|
||||
rule['response'] = ['b33f_is_s0_l33t']
|
||||
|
||||
regex = %r{
|
||||
^#{rule['pattern']}\.\t+
|
||||
\d+\t+
|
||||
IN\t+
|
||||
#{rule['type']}\t+
|
||||
#{rule['resource']}\t+
|
||||
"#{rule['response'][0]}"$
|
||||
}x
|
||||
|
||||
add_rule(rule)
|
||||
check_dns_response(regex, rule['type'], rule['pattern'])
|
||||
check_dns_response(regex, rule['resource'], rule['pattern'])
|
||||
|
||||
# Test WKS type
|
||||
rule['type'] = 'WKS'
|
||||
rule['resource'] = 'WKS'
|
||||
rule['response'] = ['9.9.9.9', 6, 0]
|
||||
|
||||
regex = %r{
|
||||
^#{rule['pattern']}\.\t+
|
||||
\d+\t+
|
||||
IN\t+
|
||||
#{rule['type']}\t+
|
||||
#{rule['resource']}\t+
|
||||
#{rule['response'][0]}\s
|
||||
0\s5\s6$
|
||||
}x
|
||||
|
||||
add_rule(rule)
|
||||
check_dns_response(regex, rule['type'], rule['pattern'])
|
||||
check_dns_response(regex, rule['resource'], rule['pattern'])
|
||||
|
||||
# Test that an invalid RR returns 400
|
||||
rule['type'] = 'BeEF'
|
||||
rule['resource'] = 'BeEF'
|
||||
|
||||
assert_raise RestClient::BadRequest do
|
||||
rest_response = RestClient.post("#{RESTAPI_DNS}/rule?token=#{@@token}",
|
||||
@@ -291,14 +291,14 @@ class TC_DnsRest < Test::Unit::TestCase
|
||||
@@headers)
|
||||
end
|
||||
end
|
||||
|
||||
=begin
|
||||
# Tests GET /api/dns/rule/:id handler with valid input
|
||||
def test_4_get_rule_good
|
||||
pattern = 'wheres.the.beef'
|
||||
type = 'A'
|
||||
resource = 'A'
|
||||
dns_response = ['4.2.4.2']
|
||||
|
||||
json = {:pattern => pattern, :type => type, :response => dns_response}.to_json
|
||||
json = {:pattern => pattern, :resource => resource, :response => dns_response}.to_json
|
||||
|
||||
rest_response = RestClient.post("#{RESTAPI_DNS}/rule?token=#{@@token}",
|
||||
json,
|
||||
@@ -317,12 +317,12 @@ class TC_DnsRest < Test::Unit::TestCase
|
||||
|
||||
assert_equal(id, result['id'])
|
||||
assert_equal(pattern, result['pattern'])
|
||||
assert_equal(type, result['type'])
|
||||
assert_equal(resource, result['resource'])
|
||||
assert_equal(dns_response, result['response'])
|
||||
end
|
||||
|
||||
# Tests GET /api/dns/rule/:id handler with invalid input
|
||||
def test_4_get_rule_bad
|
||||
def test_5_get_rule_bad
|
||||
id = 42
|
||||
|
||||
assert_raise RestClient::ResourceNotFound do
|
||||
@@ -337,7 +337,7 @@ class TC_DnsRest < Test::Unit::TestCase
|
||||
end
|
||||
|
||||
# Tests GET /api/dns/ruleset handler
|
||||
def test_4_get_ruleset
|
||||
def test_6_get_ruleset
|
||||
rest_response = RestClient.get("#{RESTAPI_DNS}/ruleset", :params => {:token => @@token})
|
||||
|
||||
assert_not_nil(rest_response.body)
|
||||
@@ -349,11 +349,11 @@ class TC_DnsRest < Test::Unit::TestCase
|
||||
result['ruleset'].each do |rule|
|
||||
assert(rule['id'])
|
||||
assert(rule['pattern'])
|
||||
assert(rule['type'])
|
||||
assert(rule['resource'])
|
||||
assert(rule['response'].length != 0)
|
||||
end
|
||||
end
|
||||
|
||||
=end
|
||||
private
|
||||
|
||||
# Adds a new DNS rule
|
||||
|
||||
@@ -18,7 +18,7 @@ require './tc_login' # Basic log in and log out tests
|
||||
require './tc_proxy' # Basic tests for Proxy extension
|
||||
#require './tc_jools' # Basic tests for jools
|
||||
require './tc_network_rest' # Basic tests for Network extension RESTful API interface
|
||||
#require './tc_dns_rest' # Basic tests for DNS RESTful API interface
|
||||
require './tc_dns_rest' # Basic tests for DNS RESTful API interface
|
||||
require './tc_social_engineering_rest' # Basic tests for social engineering RESTful API interface
|
||||
require './tc_webrtc_rest' # Basic tests for WebRTC extension
|
||||
|
||||
@@ -32,7 +32,7 @@ class TS_BeefIntegrationTests
|
||||
suite << TC_Proxy.suite
|
||||
#suite << TC_Jools.suite
|
||||
suite << TC_NetworkRest.suite
|
||||
#suite << TC_DnsRest.suite
|
||||
suite << TC_DnsRest.suite
|
||||
suite << TC_SocialEngineeringRest.suite
|
||||
suite << TC_WebRTCRest.suite
|
||||
|
||||
|
||||
Reference in New Issue
Block a user