lightsaber/test.rb

47 lines
1.1 KiB
Ruby

require 'minitest/autorun'
require 'resolv'
require 'yaml'
require 'pp'
class TestConfig < Minitest::Test
REDIRECTS = [301, 302]
def setup
@config = YAML::load_file 'redirects.yml'
end
def test_redirect_sections
@config.each do |code, zone|
assert REDIRECTS.include? code
end
end
def test_each_domain
@config.each do |section, zone|
zone.each do |domain, redirect|
url = get_url(redirect, "")
refute_nil url, "Invalid YAML config for #{domain}"
assert resolves_to_lightsaber(domain),
"DNS for #{domain} isn't setup yet. See README"
end
end
end
def resolves_to_lightsaber(domain)
flag = domain === "lightsaber.captnemo.in"
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
def get_url(domain_object, rel_route)
if domain_object.is_a? Hash
return domain_object['root'] + "/" + rel_route
elsif domain_object.is_a? String
return domain_object
end
end
end