diff --git a/test/routing_test.rb b/test/routing_test.rb index 918190d5..0407cce8 100644 --- a/test/routing_test.rb +++ b/test/routing_test.rb @@ -179,6 +179,36 @@ class RoutingTest < Test::Unit::TestCase assert_equal "foo=;bar=", body end + it "supports named captures like %r{/hello/(?[^/?#]+)}" do + mock_app { + get %r{/hello/(?[^/?#]+)} do + "Hello #{params['person']}" + end + } + get '/hello/Frank' + assert_equal 'Hello Frank', body + end + + it "supports optional named captures like %r{/page(?.[^/?#]+)?}" do + mock_app { + get %r{/page(?.[^/?#]+)?} do + "format=#{params[:format]}" + end + } + + get '/page.html' + assert ok? + assert_equal "format=.html", body + + get '/page.xml' + assert ok? + assert_equal "format=.xml", body + + get '/page' + assert ok? + assert_equal "format=", body + end + it "supports single splat params like /*" do mock_app { get '/*' do