class RoutingAssertionsTest

Public Instance Methods

setup() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 11
def setup
  @routes = ActionDispatch::Routing::RouteSet.new
  @routes.draw do
    resources :articles

    scope "secure", constraints: { protocol: "https://" } do
      resources :articles, controller: "secure_articles"
    end

    scope "block", constraints: lambda { |r| r.ssl? } do
      resources :articles, controller: "block_articles"
    end

    scope "query", constraints: lambda { |r| r.params[:use_query] == "true" } do
      resources :articles, controller: "query_articles"
    end
  end
end
test_assert_generates() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 30
def test_assert_generates
  assert_generates("/articles", controller: "articles", action: "index")
  assert_generates("/articles/1", controller: "articles", action: "show", id: "1")
end
test_assert_generates_with_defaults() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 35
def test_assert_generates_with_defaults
  assert_generates("/articles/1/edit", { controller: "articles", action: "edit" }, { id: "1" })
end
test_assert_generates_with_extras() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 39
def test_assert_generates_with_extras
  assert_generates("/articles", { controller: "articles", action: "index", page: "1" }, {}, { page: "1" })
end
test_assert_recognizes() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 43
def test_assert_recognizes
  assert_recognizes({ controller: "articles", action: "index" }, "/articles")
  assert_recognizes({ controller: "articles", action: "show", id: "1" }, "/articles/1")
end
test_assert_recognizes_raises_message() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 78
def test_assert_recognizes_raises_message
  err = assert_raise(Assertion) do
    assert_recognizes({ controller: "secure_articles", action: "index" }, "http://test.host/secure/articles", {}, "This is a really bad msg")
  end

  assert_match err.message, "This is a really bad msg"
end
test_assert_recognizes_with_block_constraint() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 64
def test_assert_recognizes_with_block_constraint
  assert_raise(Assertion) do
    assert_recognizes({ controller: "block_articles", action: "index" }, "http://test.host/block/articles")
  end
  assert_recognizes({ controller: "block_articles", action: "index" }, "https://test.host/block/articles")
end
test_assert_recognizes_with_extras() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 48
def test_assert_recognizes_with_extras
  assert_recognizes({ controller: "articles", action: "index", page: "1" }, "/articles", page: "1")
end
test_assert_recognizes_with_hash_constraint() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 57
def test_assert_recognizes_with_hash_constraint
  assert_raise(Assertion) do
    assert_recognizes({ controller: "secure_articles", action: "index" }, "http://test.host/secure/articles")
  end
  assert_recognizes({ controller: "secure_articles", action: "index", protocol: "https://" }, "https://test.host/secure/articles")
end
test_assert_recognizes_with_method() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 52
def test_assert_recognizes_with_method
  assert_recognizes({ controller: "articles", action: "create" }, { path: "/articles", method: :post })
  assert_recognizes({ controller: "articles", action: "update", id: "1" }, { path: "/articles/1", method: :put })
end
test_assert_recognizes_with_query_constraint() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 71
def test_assert_recognizes_with_query_constraint
  assert_raise(Assertion) do
    assert_recognizes({ controller: "query_articles", action: "index", use_query: "false" }, "/query/articles", use_query: "false")
  end
  assert_recognizes({ controller: "query_articles", action: "index", use_query: "true" }, "/query/articles", use_query: "true")
end
test_assert_routing() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 86
def test_assert_routing
  assert_routing("/articles", controller: "articles", action: "index")
end
test_assert_routing_raises_message() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 90
def test_assert_routing_raises_message
  err = assert_raise(Assertion) do
    assert_routing("/thisIsNotARoute", { controller: "articles", action: "edit", id: "1" }, { id: "1" }, {}, "This is a really bad msg")
  end

  assert_match err.message, "This is a really bad msg"
end
test_assert_routing_with_block_constraint() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 113
def test_assert_routing_with_block_constraint
  assert_raise(Assertion) do
    assert_routing("http://test.host/block/articles", controller: "block_articles", action: "index")
  end
  assert_routing("https://test.host/block/articles", controller: "block_articles", action: "index")
end
test_assert_routing_with_defaults() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 98
def test_assert_routing_with_defaults
  assert_routing("/articles/1/edit", { controller: "articles", action: "edit", id: "1" }, { id: "1" })
end
test_assert_routing_with_extras() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 102
def test_assert_routing_with_extras
  assert_routing("/articles", { controller: "articles", action: "index", page: "1" }, {}, { page: "1" })
end
test_assert_routing_with_hash_constraint() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 106
def test_assert_routing_with_hash_constraint
  assert_raise(Assertion) do
    assert_routing("http://test.host/secure/articles", controller: "secure_articles", action: "index")
  end
  assert_routing("https://test.host/secure/articles", controller: "secure_articles", action: "index", protocol: "https://")
end
test_with_routing() click to toggle source
# File actionpack/test/dispatch/routing_assertions_test.rb, line 120
def test_with_routing
  with_routing do |routes|
    routes.draw do
      resources :articles, path: "artikel"
    end

    assert_routing("/artikel", controller: "articles", action: "index")
    assert_raise(Assertion) do
      assert_routing("/articles", controller: "articles", action: "index")
    end
  end
end