Module: Sorcery::TestHelpers::Rails

Defined in:
lib/sorcery/test_helpers/rails.rb

Constant Summary collapse

SUBMODUELS_AUTO_ADDED_CONTROLLER_FILTERS =
[:register_last_activity_time_to_db, :deny_banned_user, :validate_session]

Instance Method Summary collapse

Instance Method Details

#clear_user_without_logoutObject



52
53
54
# File 'lib/sorcery/test_helpers/rails.rb', line 52

def clear_user_without_logout
  subject.instance_variable_set(:@current_user,nil)
end

#login_user(user = nil) ⇒ Object



42
43
44
45
46
# File 'lib/sorcery/test_helpers/rails.rb', line 42

def (user = nil)
  user ||= @user
  subject.send(:login_user,user)
  subject.send(:after_login!,user,[user.username,'secret'])
end

#logout_userObject



48
49
50
# File 'lib/sorcery/test_helpers/rails.rb', line 48

def logout_user
  subject.send(:logout)
end

#sorcery_controller_oauth_property_set(provider, property, value) ⇒ Object



36
37
38
39
40
# File 'lib/sorcery/test_helpers/rails.rb', line 36

def sorcery_controller_oauth_property_set(provider, property, value)
  ApplicationController.activate_sorcery! do |config|
    config.send(provider).send(:"#{property}=", value)
  end
end

#sorcery_controller_property_set(property, value) ⇒ Object



30
31
32
33
34
# File 'lib/sorcery/test_helpers/rails.rb', line 30

def sorcery_controller_property_set(property, value)
  ApplicationController.activate_sorcery! do |config|
    config.send(:"#{property}=", value)
  end
end

#sorcery_reload!(submodules = [], options = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/sorcery/test_helpers/rails.rb', line 6

def sorcery_reload!(submodules = [], options = {})
  reload_user_class

  # return to no-module configuration
  ::Sorcery::Controller::Config.init!
  ::Sorcery::Controller::Config.reset!

  # remove all plugin before_filters so they won't fail other tests.
  # I don't like this way, but I didn't find another.
  # hopefully it won't break until Rails 4.
  ApplicationController._process_action_callbacks.delete_if {|c| SUBMODUELS_AUTO_ADDED_CONTROLLER_FILTERS.include?(c.filter) }

  # configure
  ::Sorcery::Controller::Config.submodules = submodules
  ::Sorcery::Controller::Config.user_class = nil
  ActionController::Base.send(:include,::Sorcery::Controller)

  User.activate_sorcery! do |config|
    options.each do |property,value|
      config.send(:"#{property}=", value)
    end
  end
end