class UriReservedCharactersRoutingTest
See RFC 3986, section 3.3 for allowed path characters.
Public Instance Methods
setup()
click to toggle source
# File actionpack/test/controller/routing_test.rb, line 17 def setup @set = ActionDispatch::Routing::RouteSet.new @set.draw do ActiveSupport::Deprecation.silence do get ":controller/:action/:variable/*additional" end end safe, unsafe = %w(: @ & = + $ , ;), %w(^ ? # [ ]) hex = unsafe.map { |char| "%" + char.unpack("H2").first.upcase } @segment = "#{safe.join}#{unsafe.join}".freeze @escaped = "#{safe.join}#{hex.join}".freeze end
test_route_generation_allows_passing_non_string_values_to_generated_helper()
click to toggle source
# File actionpack/test/controller/routing_test.rb, line 49 def test_route_generation_allows_passing_non_string_values_to_generated_helper assert_equal "/content/action/variable/1/2", url_for(@set, controller: "content", action: "action", variable: "variable", additional: [1, 2]) end
test_route_generation_escapes_unsafe_path_characters()
click to toggle source
# File actionpack/test/controller/routing_test.rb, line 32 def test_route_generation_escapes_unsafe_path_characters assert_equal "/content/act#{@escaped}ion/var#{@escaped}iable/add#{@escaped}itional-1/add#{@escaped}itional-2", url_for(@set, controller: "content", action: "act#{@segment}ion", variable: "var#{@segment}iable", additional: ["add#{@segment}itional-1", "add#{@segment}itional-2"]) end
test_route_recognition_unescapes_path_components()
click to toggle source
# File actionpack/test/controller/routing_test.rb, line 41 def test_route_recognition_unescapes_path_components options = { controller: "content", action: "act#{@segment}ion", variable: "var#{@segment}iable", additional: "add#{@segment}itional-1/add#{@segment}itional-2" } assert_equal options, @set.recognize_path("/content/act#{@escaped}ion/var#{@escaped}iable/add#{@escaped}itional-1/add#{@escaped}itional-2") end