Sha256: bf8cfe9f54e390083d9a5fb231dc69b62cfa40b6b6b8524a2901dacfb2146e2e

Contents?: true

Size: 1.43 KB

Versions: 2

Compression:

Stored size: 1.43 KB

Contents

require 'test/test_helper'
require 'ostruct'

class FailureTest < ActiveSupport::TestCase

  def call_failure(env_params={})
    env = {
      'warden.options' => { :scope => :user },
      'REQUEST_URI' => 'http://test.host/',
      'HTTP_HOST' => 'test.host',
      'REQUEST_METHOD' => 'GET',
      'rack.session' => {}
    }.merge!(env_params)
    Devise::FailureApp.call(env)
  end

  test 'return 302 status' do
    assert_equal 302, call_failure.first
  end

  test 'return to the default redirect location' do
    assert_equal 'http://test.host/users/sign_in?unauthenticated=true', call_failure.second['Location']
  end

  test 'uses the proxy failure message' do
    warden = OpenStruct.new(:message => :test)
    location = call_failure('warden' => warden).second['Location']
    assert_equal 'http://test.host/users/sign_in?test=true', location
  end

  test 'uses the given message' do
    warden = OpenStruct.new(:message => 'Hello world')
    location = call_failure('warden' => warden).second['Location']
    assert_equal 'http://test.host/users/sign_in?message=Hello+world', location
  end

  test 'set content type to default text/html' do
    assert_equal 'text/html; charset=utf-8', call_failure.second['Content-Type']
  end

  test 'setup a default message' do
    assert_match /You are being/, call_failure.last.body
    assert_match /redirected/, call_failure.last.body
    assert_match /\?unauthenticated=true/, call_failure.last.body
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
devise-1.1.pre4 test/failure_app_test.rb
devise-1.1.pre3 test/failure_app_test.rb