about summary refs log tree commit homepage
path: root/test/unit/test_redirect_handler.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/test_redirect_handler.rb')
-rw-r--r--test/unit/test_redirect_handler.rb44
1 files changed, 44 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..3207b46
--- /dev/null
+++ b/test/unit/test_redirect_handler.rb
@@ -0,0 +1,44 @@
+# 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
+    redirect_test_io do
+      @server = Mongrel::HttpServer.new('127.0.0.1', 9998)
+    end
+    @server.run
+    @client = Net::HTTP.new('127.0.0.1', 9998)
+  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
+
+