-
Notifications
You must be signed in to change notification settings - Fork 80
/
dns_spec.rb
94 lines (75 loc) · 2.38 KB
/
dns_spec.rb
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# encoding: UTF-8
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
require 'domain-profiler/dns'
describe DNS do
before(:all) do
filename = File.expand_path(File.dirname(__FILE__) + '/fixtures/dns.raw.dump')
data = `cat #{filename}`
@dns = DNS.new
@dns.parse(data)
end
it "can return an SPF record" do
@dns.spf[0].should == 'v=spf1 include:_netblocks.google.com ~all'
end
it "knows what the 'answer' is for the NS record" do
@dns.ns[0].answer.should == 'ns1.google.com.'
end
it "knows what the 'answer' is for the MX record" do
@dns.mx[0].answer.should == '10 smtp1.google.com.'
end
it "knows what the host part of the MX record is" do
@dns.mx[0].host.should == 'smtp1.google.com.'
end
it "knows what the priority is for the MX record" do
@dns.mx[0].priority.should == '10'
end
it "knows what the 'answer' is for the A record" do
@dns.a[0].answer.should == '74.125.127.100'
end
it "knows what the TTL is for the A record" do
@dns.a[0].ttl.should == '132'
end
it "knows what the query was for the A record" do
@dns.a[0].query.should == 'google.com.'
end
it "DNSType is able to deal with empty input" do
empty = DNSType.new('')
empty.ttl.should == :none
end
it "DNSType is able to deal with nil input" do
empty = DNSType.new(nil)
empty.ttl.should == :none
end
it "DNSQuery is able to deal with empty input" do
empty = DNSQuery.new('')
empty.a.should.is_a?(DNSType) == true
end
it "DNSQuery is able to deal with nil input" do
empty = DNSQuery.new(nil)
empty.a.should.is_a?(DNSType) == true
end
it " is able to deal with empty input" do
empty = DNS.new
empty.parse('')
empty.a[0].ttl.should == :none
end
it "is able to deal with nil input" do
empty = DNS.new
empty.parse(nil)
empty.a[0].ttl.should == :none
end
it "is able to deal with missing MX records" do
filename = File.expand_path(File.dirname(__FILE__) + '/fixtures/furbo.org.raw.dump')
data = `cat #{filename}`
@dns = DNS.new
@dns.parse(data)
@dns.mx[0].host.should == :none
end
it "is able to deal with data from go.com" do
filename = File.expand_path(File.dirname(__FILE__) + '/fixtures/go.com.raw.dump')
data = `cat #{filename}`
@dns = DNS.new
@dns.parse(data)
@dns.a[0].answer.should == '198.105.193.70'
end
end