diff options
Diffstat (limited to 'test/test_server.rb')
-rw-r--r-- | test/test_server.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/test_server.rb b/test/test_server.rb index 79e498d..934ae3e 100644 --- a/test/test_server.rb +++ b/test/test_server.rb @@ -559,4 +559,28 @@ class TestServer < Testcase ensure quit_wait(pid) end + + def test_working_directory + err, cfg, host, port = @err, Yahns::Config.new, @srv.addr[3], @srv.addr[1] + ru = lambda { |_| + [ 200, {'Content-Length'=>Dir.pwd.size.to_s }, [Dir.pwd] ] + } + Dir.mktmpdir do |tmpdir| + begin + pid = mkserver(cfg) do + cfg.instance_eval do + working_directory tmpdir + GTL.synchronize { app(:rack, ru) { listen "#{host}:#{port}" } } + stderr_path err.path + end + end + refute_equal Dir.pwd, tmpdir + Net::HTTP.start(host, port) do |http| + assert_equal tmpdir, http.request(Net::HTTP::Get.new("/")).body + end + ensure + quit_wait(pid) + end + end + end end |