Sha256: 2e6c3fbf08c2ef824b1a83827c8043ea7e3cacb2f407d6cb87da4b25d02385e1

Contents?: true

Size: 1.98 KB

Versions: 18

Compression:

Stored size: 1.98 KB

Contents

require 'test_helper'

module Devise
  def self.yield_and_restore
    @@warden_configured = nil
    c, b = @@warden_config, @@warden_config_block
    yield
  ensure
    @@warden_config, @@warden_config_block = c, b
  end
end

class DeviseTest < ActiveSupport::TestCase
  test 'model options can be configured through Devise' do
    swap Devise, :confirm_within => 113, :pepper => "foo" do
      assert_equal 113, Devise.confirm_within
      assert_equal "foo", Devise.pepper
    end
  end

  test 'setup block yields self' do
    Devise.setup do |config|
      assert_equal Devise, config
    end
  end

  test 'stores warden configuration' do
    assert_equal Devise::FailureApp, Devise.warden_config.failure_app
    assert_equal :user, Devise.warden_config.default_scope
  end

  test 'warden manager user configuration through a block' do
    Devise.yield_and_restore do
      @executed = false
      Devise.warden do |config|
        @executed = true
        assert_kind_of Warden::Config, config
      end

      Devise.configure_warden!
      assert @executed
    end
  end

  test 'add new module using the helper method' do
    assert_nothing_raised(Exception) { Devise.add_module(:coconut) }
    assert_equal 1, Devise::ALL.select { |v| v == :coconut }.size
    assert_not Devise::STRATEGIES.include?(:coconut)
    assert_not defined?(Devise::Models::Coconut)
    Devise::ALL.delete(:coconut)

    assert_nothing_raised(Exception) { Devise.add_module(:banana, :strategy => :fruits) }
    assert_equal :fruits, Devise::STRATEGIES[:banana]
    Devise::ALL.delete(:banana)
    Devise::STRATEGIES.delete(:banana)

    assert_nothing_raised(Exception) { Devise.add_module(:kivi, :controller => :fruits) }
    assert_equal :fruits, Devise::CONTROLLERS[:kivi]
    Devise::ALL.delete(:kivi)
    Devise::CONTROLLERS.delete(:kivi)

    assert_nothing_raised(Exception) { Devise.add_module(:authenticatable_again, :model => 'devise/model/authenticatable') }
    assert defined?(Devise::Models::AuthenticatableAgain)
  end
end

Version data entries

18 entries across 18 versions & 6 rubygems

Version Path
devise-1.1.9 test/devise_test.rb
devise-1.1.8 test/devise_test.rb
devise-jdguyot-1.2.rc2 test/devise_test.rb
devise-1.1.7 test/devise_test.rb
devise-1.1.6 test/devise_test.rb
devise-jdguyot-1.2.rc test/devise_test.rb
devise-1.1.5 test/devise_test.rb
devise-1.1.4 test/devise_test.rb
devise-1.2.rc test/devise_test.rb
aihs_devise-1.2.rc test/devise_test.rb
gonow-devise-1.2.rc test/devise_test.rb
devise-edge-1.2.rc test/devise_test.rb
devise-1.1.3 test/devise_test.rb
devise-1.1.2 test/devise_test.rb
devise-1.1.1 test/devise_test.rb
devise-1.1.0 test/devise_test.rb
namxam-devise-1.1.0.win test/devise_test.rb
devise-1.1.rc2 test/devise_test.rb