about summary refs log tree commit homepage
path: root/test
diff options
context:
space:
mode:
authorzedshaw <zedshaw@19e92222-5c0b-0410-8929-a290d50e31e9>2006-06-18 04:57:26 +0000
committerzedshaw <zedshaw@19e92222-5c0b-0410-8929-a290d50e31e9>2006-06-18 04:57:26 +0000
commit364270615b8e6f1bd5cc8611267137f1a83b8124 (patch)
treeaff4bf91f421237f8fb39e666c9e7f4666fbe356 /test
parente5c6b9ad70d844f4d656efa2306c2f7973cb2fee (diff)
downloadunicorn-364270615b8e6f1bd5cc8611267137f1a83b8124.tar.gz
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@245 19e92222-5c0b-0410-8929-a290d50e31e9
Diffstat (limited to 'test')
-rw-r--r--test/test_redirect_handler.rb41
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
+
+