aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/webrick_dispatcher_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/test/webrick_dispatcher_test.rb')
-rw-r--r--railties/test/webrick_dispatcher_test.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/railties/test/webrick_dispatcher_test.rb b/railties/test/webrick_dispatcher_test.rb
new file mode 100644
index 0000000000..2c6b51ae62
--- /dev/null
+++ b/railties/test/webrick_dispatcher_test.rb
@@ -0,0 +1,30 @@
+#!/bin/env ruby
+
+$:.unshift(File.dirname(__FILE__) + "/../lib")
+
+require 'test/unit'
+require 'webrick_server'
+
+class ParseUriTest < Test::Unit::TestCase
+
+ def test_parse_uri_old_behavior
+ assert_equal [true, 'forum', 'index', '1'], DispatchServlet.parse_uri('/forum/index/1')
+ assert_equal [true, 'forum', 'index', nil], DispatchServlet.parse_uri('/forum/index')
+ assert_equal [true, 'forum', 'index', nil], DispatchServlet.parse_uri('/forum/')
+ end
+
+ def test_parse_uri_new_behavior
+ assert_equal [true, 'forum', 'index', '1'], DispatchServlet.parse_uri('/forum/index/1/')
+ assert_equal [true, 'forum', 'index', nil], DispatchServlet.parse_uri('/forum/index/')
+ assert_equal [true, 'forum', 'index', nil], DispatchServlet.parse_uri('/forum')
+ end
+
+ def test_parse_uri_failures
+ assert_equal [false, nil, nil, nil], DispatchServlet.parse_uri('/')
+ assert_equal [false, nil, nil, nil], DispatchServlet.parse_uri('a')
+ assert_equal [false, nil, nil, nil], DispatchServlet.parse_uri('/forum//')
+ assert_equal [false, nil, nil, nil], DispatchServlet.parse_uri('/+forum/')
+ assert_equal [false, nil, nil, nil], DispatchServlet.parse_uri('forum/')
+ end
+
+end