File tree Expand file tree Collapse file tree 2 files changed +19
-2
lines changed Expand file tree Collapse file tree 2 files changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -103,6 +103,9 @@ def validate(href)
103
103
begin
104
104
Timeout ::timeout ( 10 ) do
105
105
res = request_url_once ( url )
106
+ if res . code == '405'
107
+ res = request_url_once ( url , Net ::HTTP ::Get )
108
+ end
106
109
end
107
110
rescue => e
108
111
return Result . new ( href , e . message )
@@ -133,9 +136,9 @@ def validate(href)
133
136
raise 'should not have gotten here'
134
137
end
135
138
136
- def request_url_once ( url )
139
+ def request_url_once ( url , req_method = Net :: HTTP :: Head )
137
140
path = ( url . path . nil? || url . path . empty? ? '/' : url . path )
138
- req = Net :: HTTP :: Head . new ( path )
141
+ req = req_method . new ( path )
139
142
http = Net ::HTTP . new ( url . host , url . port )
140
143
if url . instance_of? URI ::HTTPS
141
144
http . use_ssl = true
Original file line number Diff line number Diff line change @@ -38,4 +38,18 @@ def check.request_url_once(url)
38
38
end
39
39
end
40
40
41
+ def test_fallback_to_get_when_head_is_not_allowed
42
+ with_site do |site |
43
+ #Create check
44
+ check = Nanoc ::Extra ::Checking ::Checks ::ExternalLinks . new ( site )
45
+ def check . request_url_once ( url , req_method = Net ::HTTP ::Head )
46
+ Net ::HTTPResponse . new ( '1.1' , ( req_method == Net ::HTTP ::Head || url . path == '/405' ) ? '405' : '200' , 'okay' )
47
+ end
48
+
49
+ #Test
50
+ assert_nil check . validate ( 'http://127.0.0.1:9204' )
51
+ refute_nil check . validate ( 'http://127.0.0.1:9204/405' )
52
+ end
53
+ end
54
+
41
55
end
You can’t perform that action at this time.
0 commit comments