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
| | # Copyright (C) 2013, Eric Wong <normalperson@yhbt.net> and all contributors
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
require_relative 'server_helper'
require 'rack/file'
class TestServeStatic < Testcase
parallelize_me!
include ServerHelper
alias setup server_helper_setup
alias teardown server_helper_teardown
def test_serve_static
err = @err
cfg = Yahns::Config.new
host, port = @srv.addr[3], @srv.addr[1]
cfg.instance_eval do
GTL.synchronize do
app(:rack, Rack::File.new(Dir.pwd)) { listen "#{host}:#{port}" }
end
logger(Logger.new(err.path))
end
srv = Yahns::Server.new(cfg)
pid = fork do
ENV["YAHNS_FD"] = @srv.fileno.to_s
srv.start.join
end
gplv3 = File.read("COPYING")
Net::HTTP.start(host, port) do |http|
res = http.request(Net::HTTP::Get.new("/COPYING"))
assert_equal gplv3, res.body
req = Net::HTTP::Get.new("/COPYING", "Range" => "bytes=5-46")
res = http.request(req)
assert_equal gplv3[5..46], res.body
end
rescue => e
Yahns::Log.exception(Logger.new($stderr), "test", e)
raise
ensure
quit_wait(pid)
end
end
|