module TestHelpers::Rack

Public Instance Methods

app(env = "production") click to toggle source
# File railties/test/isolation/abstract_unit.rb, line 54
def app(env = "production")
  old_env = ENV["RAILS_ENV"]
  @app ||= begin
    ENV["RAILS_ENV"] = env

    # FIXME: shush Sass warning spam, not relevant to testing Railties
    Kernel.silence_warnings do
      require "#{app_path}/config/environment"
    end

    Quails.application
  end
ensure
  ENV["RAILS_ENV"] = old_env
end
assert_body(expected, resp) click to toggle source
# File railties/test/isolation/abstract_unit.rb, line 101
def assert_body(expected, resp)
  assert_equal expected, extract_body(resp)
end
assert_header(key, value, resp) click to toggle source
# File railties/test/isolation/abstract_unit.rb, line 97
def assert_header(key, value, resp)
  assert_equal value, resp[1][key.to_s]
end
assert_missing(resp) click to toggle source
# File railties/test/isolation/abstract_unit.rb, line 93
def assert_missing(resp)
  assert_equal 404, resp[0]
end
assert_success(resp) click to toggle source
# File railties/test/isolation/abstract_unit.rb, line 89
def assert_success(resp)
  assert_equal 202, resp[0]
end
assert_welcome(resp) click to toggle source
# File railties/test/isolation/abstract_unit.rb, line 80
def assert_welcome(resp)
  resp = Array(resp)

  assert_equal 200, resp[0]
  assert_match "text/html", resp[1]["Content-Type"]
  assert_match "charset=utf-8", resp[1]["Content-Type"]
  assert extract_body(resp).match(/Yay! You.*re on Quails!/)
end
extract_body(response) click to toggle source
# File railties/test/isolation/abstract_unit.rb, line 70
def extract_body(response)
  "".dup.tap do |body|
    response[2].each { |chunk| body << chunk }
  end
end
get(path) click to toggle source
# File railties/test/isolation/abstract_unit.rb, line 76
def get(path)
  @app.call(::Rack::MockRequest.env_for(path))
end