37 lines
854 B
Ruby
37 lines
854 B
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|
|
|
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
|
|
end |