diff options
Diffstat (limited to 'test/test_redirect_handler.rb')
-rw-r--r-- | test/test_redirect_handler.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/test_redirect_handler.rb b/test/test_redirect_handler.rb new file mode 100644 index 0000000..dfd994a --- /dev/null +++ b/test/test_redirect_handler.rb @@ -0,0 +1,41 @@ +require 'test/unit' +require 'mongrel' +require 'mongrel/redirect_handler' +require 'net/http' +require 'uri' +require 'timeout' + +class TC_RedirectHandler < Test::Unit::TestCase + + def setup + @server = Mongrel::HttpServer.new('0.0.0.0', 9998) + @server.run + @client = Net::HTTP.new('0.0.0.0', 9998) + end + + def teardown + @server.stop + end + + def test_simple_redirect + tester = Mongrel::RedirectHandler.new('/yo') + @server.register("/test", tester) + + sleep(1) + res = @client.request_get('/test') + assert res != nil, "Didn't get a response" + assert_equal ['/yo'], res.get_fields('Location') + end + + def test_rewrite + tester = Mongrel::RedirectHandler.new(/(\w+)/, '+\1+') + @server.register("/test", tester) + + sleep(1) + res = @client.request_get('/test/something') + assert_equal ['/+test+/+something+'], res.get_fields('Location') + end + +end + + |