class ActionDispatch::IntegrationTest

Public Instance Methods

assert_current_url(expected) click to toggle source
# File test/support/integration.rb, line 67
def assert_current_url(expected)
  assert_url expected, current_url
end
assert_redirected_to(url) click to toggle source

Fix assert_redirect_to in integration sessions because they don't take into account Middleware redirects.

# File test/support/integration.rb, line 60
def assert_redirected_to(url)
  assert [301, 302].include?(@integration_session.status),
         "Expected status to be 301 or 302, got #{@integration_session.status}"

  assert_url url, @integration_session.headers["Location"]
end
assert_url(expected, actual) click to toggle source
# File test/support/integration.rb, line 71
def assert_url(expected, actual)
  assert_equal prepend_host(expected), prepend_host(actual)
end
create_admin(options={}) click to toggle source
# File test/support/integration.rb, line 24
def create_admin(options={})
  @admin ||= begin
    admin = Admin.create!(
      email: options[:email] || 'admin@test.com',
      password: '123456', password_confirmation: '123456',
      active: options[:active]
    )
    admin.confirm unless options[:confirm] == false
    admin
  end
end
create_user(options={}) click to toggle source
# File test/support/integration.rb, line 8
def create_user(options={})
  @user ||= begin
    user = User.create!(
      username: 'usertest',
      email: options[:email] || 'user@test.com',
      password: options[:password] || '12345678',
      password_confirmation: options[:password] || '12345678',
      created_at: Time.now.utc
    )
    user.update_attribute(:confirmation_sent_at, options[:confirmation_sent_at]) if options[:confirmation_sent_at]
    user.confirm unless options[:confirm] == false
    user.lock_access! if options[:locked] == true
    user
  end
end
sign_in_as_admin(options={}) { || ... } click to toggle source
# File test/support/integration.rb, line 47
def sign_in_as_admin(options={}, &block)
  admin = create_admin(options)
  visit_with_option options[:visit], new_admin_session_path
  fill_in 'email', with: 'admin@test.com'
  fill_in 'password', with: '123456'
  yield if block_given?
  click_button 'Log In'
  admin
end
sign_in_as_user(options={}) { || ... } click to toggle source
# File test/support/integration.rb, line 36
def sign_in_as_user(options={}, &block)
  user = create_user(options)
  visit_with_option options[:visit], new_user_session_path
  fill_in 'email', with: options[:email] || 'user@test.com'
  fill_in 'password', with: options[:password] || '12345678'
  check 'remember me' if options[:remember_me] == true
  yield if block_given?
  click_button 'Log In'
  user
end
warden() click to toggle source
# File test/support/integration.rb, line 4
def warden
  request.env['warden']
end

Protected Instance Methods

prepend_host(url) click to toggle source
# File test/support/integration.rb, line 88
def prepend_host(url)
  url = "http://#{request.host}#{url}" if url[0] == /
  url
end
visit_with_option(given, default) click to toggle source
# File test/support/integration.rb, line 77
def visit_with_option(given, default)
  case given
  when String
    visit given
  when FalseClass
    # Do nothing
  else
    visit default
  end
end