class ActionDispatch::Journey::TestRoute

Public Instance Methods

test_connects_all_match() click to toggle source
# File actionpack/test/journey/route_test.rb, line 60
def test_connects_all_match
  path  = Path::Pattern.from_string "/:controller(/:action(/:id(.:format)))"
  route = Route.build("name", nil, path, { action: "bar" }, [], controller: "foo")

  assert_equal "/foo/bar/10", route.format(
    controller: "foo",
    action: "bar",
    id: 10)
end
test_default_ip() click to toggle source
# File actionpack/test/journey/route_test.rb, line 44
def test_default_ip
  path  = Path::Pattern.from_string "/messages/:id(.:format)"
  route = Route.build("name", nil, path, {}, [],
                    controller: "foo", action: "bar")
  assert_equal(//, route.ip)
end
test_extras_are_not_included_if_optional() click to toggle source
# File actionpack/test/journey/route_test.rb, line 70
def test_extras_are_not_included_if_optional
  path  = Path::Pattern.from_string "/page/:id(/:action)"
  route = Route.build("name", nil, path, {}, [], action: "show")

  assert_equal "/page/10", route.format(id: 10)
end
test_extras_are_not_included_if_optional_parameter_is_nil() click to toggle source
# File actionpack/test/journey/route_test.rb, line 84
def test_extras_are_not_included_if_optional_parameter_is_nil
  path  = Path::Pattern.from_string "(/sections/:section)/pages/:id"
  route = Route.build("name", nil, path, {}, [], action: "show")

  assert_equal "/pages/10", route.format(id: 10, section: nil)
end
test_extras_are_not_included_if_optional_with_parameter() click to toggle source
# File actionpack/test/journey/route_test.rb, line 77
def test_extras_are_not_included_if_optional_with_parameter
  path  = Path::Pattern.from_string "(/sections/:section)/pages/:id"
  route = Route.build("name", nil, path, {}, [], action: "show")

  assert_equal "/pages/10", route.format(id: 10)
end
test_format_with_star() click to toggle source
# File actionpack/test/journey/route_test.rb, line 51
def test_format_with_star
  path  = Path::Pattern.from_string "/:controller/*extra"
  route = Route.build("name", nil, path, {}, [],
                    controller: "foo", action: "bar")
  assert_equal "/foo/himom", route.format(
    controller: "foo",
    extra: "himom")
end
test_initialize() click to toggle source
# File actionpack/test/journey/route_test.rb, line 8
def test_initialize
  app      = Object.new
  path     = Path::Pattern.from_string "/:controller(/:action(/:id(.:format)))"
  defaults = {}
  route    = Route.build("name", app, path, {}, [], defaults)

  assert_equal app, route.app
  assert_equal path, route.path
  assert_same  defaults, route.defaults
end
test_ip_address() click to toggle source
# File actionpack/test/journey/route_test.rb, line 37
def test_ip_address
  path  = Path::Pattern.from_string "/messages/:id(.:format)"
  route = Route.build("name", nil, path, { ip: "192.168.1.1" }, [],
                    controller: "foo", action: "bar")
  assert_equal "192.168.1.1", route.ip
end
test_path_requirements_override_defaults() click to toggle source
# File actionpack/test/journey/route_test.rb, line 30
def test_path_requirements_override_defaults
  path = Path::Pattern.build(":name", { name: /love/ }, "/", true)
  defaults  = { name: "tender" }
  route     = Route.build("name", nil, path, {}, [], defaults)
  assert_equal(/love/, route.requirements[:name])
end
test_route_adds_itself_as_memo() click to toggle source
# File actionpack/test/journey/route_test.rb, line 19
def test_route_adds_itself_as_memo
  app      = Object.new
  path     = Path::Pattern.from_string "/:controller(/:action(/:id(.:format)))"
  defaults = {}
  route    = Route.build("name", app, path, {}, [], defaults)

  route.ast.grep(Nodes::Terminal).each do |node|
    assert_equal route, node.memo
  end
end
test_score() click to toggle source
# File actionpack/test/journey/route_test.rb, line 91
def test_score
  constraints = {}
  defaults = { controller: "pages", action: "show" }

  path = Path::Pattern.from_string "/page/:id(/:action)(.:format)"
  specific = Route.build "name", nil, path, constraints, [:controller, :action], defaults

  path = Path::Pattern.from_string "/:controller(/:action(/:id))(.:format)"
  generic = Route.build "name", nil, path, constraints, [], {}

  knowledge = { "id" => true, "controller" => true, "action" => true }

  routes = [specific, generic]

  assert_not_equal specific.score(knowledge), generic.score(knowledge)

  found = routes.sort_by { |r| r.score(knowledge) }.last

  assert_equal specific, found
end