about summary refs log tree commit homepage
path: root/test/unit/test_redirect_handler.rb
diff options
context:
space:
mode:
authorevanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9>2008-05-24 23:06:53 +0000
committerevanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9>2008-05-24 23:06:53 +0000
commit45ff7b22b67123dd8345f3c50151e89cc91ce2b7 (patch)
treee85c8aa353e3e9f05e90ee8bf76a6593520e1b01 /test/unit/test_redirect_handler.rb
parentf69f3602b11dc839bb09f8c783b5ec27c54694fd (diff)
parentfa3f48f65222eb5591ef3dd9c05b6c958d564fa4 (diff)
downloadunicorn-45ff7b22b67123dd8345f3c50151e89cc91ce2b7.tar.gz
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@1020 19e92222-5c0b-0410-8929-a290d50e31e9
Diffstat (limited to 'test/unit/test_redirect_handler.rb')
-rw-r--r--test/unit/test_redirect_handler.rb45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/unit/test_redirect_handler.rb b/test/unit/test_redirect_handler.rb
new file mode 100644
index 0000000..e990427
--- /dev/null
+++ b/test/unit/test_redirect_handler.rb
@@ -0,0 +1,45 @@
+# Copyright (c) 2005 Zed A. Shaw
+# You can redistribute it and/or modify it under the same terms as Ruby.
+#
+# Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
+# for more information.
+
+require 'test/test_helper'
+
+class RedirectHandlerTest < Test::Unit::TestCase
+
+  def setup
+    @port = process_based_port
+    redirect_test_io do
+      @server = Mongrel::HttpServer.new('127.0.0.1', @port)
+    end
+    @server.run
+    @client = Net::HTTP.new('127.0.0.1', @port)
+  end
+
+  def teardown
+    @server.stop(true)
+  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
+
+