lightsaber/test.rb

47 lines
1.1 KiB
Ruby
Raw Permalink Normal View History

2015-08-22 12:20:03 +00:00
require 'minitest/autorun'
require 'resolv'
require 'yaml'
require 'pp'
class TestConfig < Minitest::Test
2015-08-22 12:52:32 +00:00
REDIRECTS = [301, 302]
2015-08-22 12:20:03 +00:00
def setup
2015-08-22 12:52:32 +00:00
@config = YAML::load_file 'redirects.yml'
2015-08-22 12:20:03 +00:00
end
def test_redirect_sections
2015-08-22 12:52:32 +00:00
@config.each do |code, zone|
assert REDIRECTS.include? code
2015-08-22 12:20:03 +00:00
end
end
def test_each_domain
@config.each do |section, zone|
zone.each do |domain, redirect|
2015-08-22 19:47:36 +00:00
url = get_url(redirect, "")
refute_nil url, "Invalid YAML config for #{domain}"
2015-08-22 12:20:03 +00:00
assert resolves_to_lightsaber(domain),
"DNS for #{domain} isn't setup yet. See README"
end
end
end
def resolves_to_lightsaber(domain)
2015-08-22 12:52:32 +00:00
flag = domain === "lightsaber.captnemo.in"
2015-08-22 12:20:03 +00:00
Resolv::DNS.open do |dns|
records = dns.getresources domain, Resolv::DNS::Resource::IN::CNAME
records.each do |record|
flag||=record.name.to_s === "lightsaber.captnemo.in"
end
end
flag
end
2015-08-22 19:47:36 +00:00
def get_url(domain_object, rel_route)
if domain_object.is_a? Hash
return domain_object['root'] + "/" + rel_route
2015-08-22 19:47:36 +00:00
elsif domain_object.is_a? String
return domain_object
end
end
2015-08-22 12:20:03 +00:00
end