@@ -73,6 +73,12 @@ def cname_packet(domain)
73
73
expect ( domain_check . a_record? ) . to be ( false )
74
74
end
75
75
76
+ it "returns the cname" do
77
+ domain_check = make_domain_check
78
+ allow ( domain_check ) . to receive ( :dns ) { [ cname_packet ( "pages.github.com" ) ] }
79
+ expect ( domain_check . cname . host ) . to eql ( "pages.github.com" )
80
+ end
81
+
76
82
it "knows a subdomain is not an apex domain" do
77
83
domain_check = make_domain_check "blog.parkermoore.de"
78
84
expect ( domain_check . apex_domain? ) . to be ( false )
@@ -105,12 +111,12 @@ def cname_packet(domain)
105
111
[ "parkr.github.io" , "mattr-.github.com" ] . each do |domain |
106
112
domain_check = make_domain_check
107
113
allow ( domain_check ) . to receive ( :dns ) { [ cname_packet ( domain ) ] }
108
- expect ( domain_check . pointed_to_github_user_domain ?) . to be ( true )
114
+ expect ( domain_check . cname_to_github_user_domain ?) . to be ( true )
109
115
end
110
116
[ "github.com" , "ben.balter.com" ] . each do |domain |
111
117
domain_check = make_domain_check
112
118
allow ( domain_check ) . to receive ( :dns ) { [ cname_packet ( domain ) ] }
113
- expect ( domain_check . pointed_to_github_user_domain ?) . to be ( false )
119
+ expect ( domain_check . cname_to_github_user_domain ?) . to be ( false )
114
120
end
115
121
end
116
122
@@ -120,9 +126,61 @@ def cname_packet(domain)
120
126
expect ( domain_check . valid_domain? ) . to be ( true )
121
127
expect ( domain_check . github_domain? ) . to be ( false )
122
128
expect ( domain_check . apex_domain? ) . to be ( false )
123
- expect ( domain_check . pointed_to_github_user_domain? ) . to eql ( false )
129
+ expect ( domain_check . cname_to_github_user_domain? ) . to eql ( false )
130
+ expect ( domain_check . invalid_cname? ) . to eql ( true )
131
+ end
132
+
133
+ it "flags CNAMEs to pages.github.com as invalid" do
134
+ domain_check = make_domain_check ( "foo.github.biz" )
135
+ allow ( domain_check ) . to receive ( :dns ) { [ cname_packet ( "pages.github.com" ) ] }
136
+ expect ( domain_check . invalid_cname? ) . to eql ( true )
137
+ end
138
+
139
+ it "flags CNAMEs directly to fastly as invalid" do
140
+ domain_check = make_domain_check ( "foo.github.biz" )
141
+ allow ( domain_check ) . to receive ( :dns ) { [ cname_packet ( "github.map.fastly.net" ) ] }
124
142
expect ( domain_check . invalid_cname? ) . to eql ( true )
125
143
end
144
+
145
+ it "knows CNAMEs to user subdomains are valid" do
146
+ domain_check = make_domain_check ( "foo.github.biz" )
147
+ allow ( domain_check ) . to receive ( :dns ) { [ cname_packet ( "foo.github.io" ) ] }
148
+ expect ( domain_check . invalid_cname? ) . to eql ( false )
149
+ end
150
+
151
+ it "knows when the domain is CNAME'd to a user domain" do
152
+ domain_check = make_domain_check ( "foo.github.biz" )
153
+ allow ( domain_check ) . to receive ( :dns ) { [ cname_packet ( "foo.github.io" ) ] }
154
+ expect ( domain_check . cname_to_github_user_domain? ) . to eql ( true )
155
+ end
156
+
157
+ it "knows when the domain is CNAME'd to pages.github.com" do
158
+ domain_check = make_domain_check ( "foo.github.biz" )
159
+ allow ( domain_check ) . to receive ( :dns ) { [ cname_packet ( "pages.github.com" ) ] }
160
+ expect ( domain_check . cname_to_pages_dot_github_dot_com? ) . to eql ( true )
161
+ end
162
+
163
+ it "knows when the domain is CNAME'd to pages.github.io" do
164
+ domain_check = make_domain_check ( "foo.github.biz" )
165
+ allow ( domain_check ) . to receive ( :dns ) { [ cname_packet ( "pages.github.io" ) ] }
166
+ expect ( domain_check . cname_to_pages_dot_github_dot_com? ) . to eql ( true )
167
+ end
168
+
169
+ it "knows when the domain is CNAME'd to fastly" do
170
+ domain_check = make_domain_check ( "foo.github.biz" )
171
+ allow ( domain_check ) . to receive ( :dns ) { [ cname_packet ( "github.map.fastly.net" ) ] }
172
+ expect ( domain_check . cname_to_fastly? ) . to eql ( true )
173
+ end
174
+ end
175
+
176
+ it "knows if the domain is a github domain" do
177
+ domain_check = make_domain_check ( "government.github.com" )
178
+ expect ( domain_check . github_domain? ) . to eql ( true )
179
+ end
180
+
181
+ it "knows if the domain is a fastly domain" do
182
+ domain_check = make_domain_check ( "github.map.fastly.net" )
183
+ expect ( domain_check . fastly? ) . to eql ( true )
126
184
end
127
185
128
186
context "apex domains" do
@@ -288,11 +346,23 @@ def cname_packet(domain)
288
346
end
289
347
290
348
it "knows a site pointed to a Pages domain isn't proxied" do
349
+ domain_check = make_domain_check
350
+ allow ( domain_check ) . to receive ( :dns ) { [ cname_packet ( "foo.github.io" ) ] }
351
+ expect ( domain_check . proxied? ) . to be ( false )
352
+ end
353
+
354
+ it "knows a site CNAMEd to pages.github.com isn't proxied" do
291
355
domain_check = make_domain_check
292
356
allow ( domain_check ) . to receive ( :dns ) { [ cname_packet ( "pages.github.com" ) ] }
293
357
expect ( domain_check . proxied? ) . to be ( false )
294
358
end
295
359
360
+ it "knows a site CNAME'd directly to Fastly isn't proxied" do
361
+ domain_check = make_domain_check ( 'foo.github.biz' )
362
+ allow ( domain_check ) . to receive ( :dns ) { [ cname_packet ( "github.map.fastly.net" ) ] }
363
+ expect ( domain_check . proxied? ) . to be ( false )
364
+ end
365
+
296
366
it "detects proxied sites" do
297
367
stub_request ( :head , "http://management.cio.gov" ) .
298
368
to_return ( :status => 200 , :headers => { :server => "GitHub.com" } )
0 commit comments