Permalink
Browse files

Check for the request before checking for the mapping, closes #1859

  • Loading branch information...
1 parent d4e5424 commit 2b7328535d899d1bb0aecc3849880720cac56118 @josevalim josevalim committed May 25, 2012
Showing with 64 additions and 54 deletions.
  1. +1 −1 Gemfile
  2. +37 −37 Gemfile.lock
  3. +4 −1 app/controllers/devise_controller.rb
  4. +22 −15 test/controllers/sessions_controller_test.rb
View
@@ -2,7 +2,7 @@ source "http://rubygems.org"
gemspec
-gem "rails", "~> 3.2.0"
+gem "rails", "~> 3.2.3"
gem "omniauth", "~> 1.0.0"
gem "omniauth-oauth2", "~> 1.0.0"
gem "rdoc"
View
@@ -10,35 +10,35 @@ PATH
GEM
remote: http://rubygems.org/
specs:
- actionmailer (3.2.0)
- actionpack (= 3.2.0)
- mail (~> 2.4.0)
- actionpack (3.2.0)
- activemodel (= 3.2.0)
- activesupport (= 3.2.0)
+ actionmailer (3.2.3)
+ actionpack (= 3.2.3)
+ mail (~> 2.4.4)
+ actionpack (3.2.3)
+ activemodel (= 3.2.3)
+ activesupport (= 3.2.3)
builder (~> 3.0.0)
erubis (~> 2.7.0)
- journey (~> 1.0.0)
+ journey (~> 1.0.1)
rack (~> 1.4.0)
- rack-cache (~> 1.1)
+ rack-cache (~> 1.2)
rack-test (~> 0.6.1)
sprockets (~> 2.1.2)
- activemodel (3.2.0)
- activesupport (= 3.2.0)
+ activemodel (3.2.3)
+ activesupport (= 3.2.3)
builder (~> 3.0.0)
- activerecord (3.2.0)
- activemodel (= 3.2.0)
- activesupport (= 3.2.0)
- arel (~> 3.0.0)
+ activerecord (3.2.3)
+ activemodel (= 3.2.3)
+ activesupport (= 3.2.3)
+ arel (~> 3.0.2)
tzinfo (~> 0.3.29)
- activeresource (3.2.0)
- activemodel (= 3.2.0)
- activesupport (= 3.2.0)
- activesupport (3.2.0)
+ activeresource (3.2.3)
+ activemodel (= 3.2.3)
+ activesupport (= 3.2.3)
+ activesupport (3.2.3)
i18n (~> 0.6)
multi_json (~> 1.0)
addressable (2.2.6)
- arel (3.0.0)
+ arel (3.0.2)
bcrypt-ruby (3.0.1)
bson (1.5.1)
bson_ext (1.3.1)
@@ -52,16 +52,16 @@ GEM
hashie (1.2.0)
hike (1.2.1)
i18n (0.6.0)
- journey (1.0.0)
- json (1.6.5)
+ journey (1.0.3)
+ json (1.7.3)
linecache (0.46)
rbx-require-relative (> 0.0.4)
- mail (2.4.1)
+ mail (2.4.4)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
metaclass (0.0.1)
- mime-types (1.17.2)
+ mime-types (1.18)
mocha (0.10.0)
metaclass (~> 0.0.1)
mongo (1.3.1)
@@ -90,7 +90,7 @@ GEM
orm_adapter (0.0.7)
polyglot (0.3.3)
rack (1.4.1)
- rack-cache (1.1)
+ rack-cache (1.2)
rack (>= 0.4)
rack-openid (1.3.1)
rack (>= 1.1.0)
@@ -99,17 +99,17 @@ GEM
rack
rack-test (0.6.1)
rack (>= 1.0)
- rails (3.2.0)
- actionmailer (= 3.2.0)
- actionpack (= 3.2.0)
- activerecord (= 3.2.0)
- activeresource (= 3.2.0)
- activesupport (= 3.2.0)
+ rails (3.2.3)
+ actionmailer (= 3.2.3)
+ actionpack (= 3.2.3)
+ activerecord (= 3.2.3)
+ activeresource (= 3.2.3)
+ activesupport (= 3.2.3)
bundler (~> 1.0)
- railties (= 3.2.0)
- railties (3.2.0)
- actionpack (= 3.2.0)
- activesupport (= 3.2.0)
+ railties (= 3.2.3)
+ railties (3.2.3)
+ actionpack (= 3.2.3)
+ activesupport (= 3.2.3)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
@@ -124,7 +124,7 @@ GEM
ruby-debug-base (0.10.4)
linecache (>= 0.3)
ruby-openid (2.1.8)
- sprockets (2.1.2)
+ sprockets (2.1.3)
hike (~> 1.2)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
@@ -134,7 +134,7 @@ GEM
treetop (1.4.10)
polyglot
polyglot (>= 0.3.1)
- tzinfo (0.3.31)
+ tzinfo (0.3.33)
warden (1.1.1)
rack (>= 1.0)
webrat (0.7.2)
@@ -158,7 +158,7 @@ DEPENDENCIES
omniauth-facebook
omniauth-oauth2 (~> 1.0.0)
omniauth-openid (~> 1.0.1)
- rails (~> 3.2.0)
+ rails (~> 3.2.3)
rdoc
ruby-debug (>= 0.10.3)
sqlite3
@@ -43,8 +43,11 @@ def devise_mapping
end
# Override prefixes to consider the scoped view.
+ # Notice we need to check for the request due to a bug in
+ # Action Controller tests that forces _prefixes to be
+ # loaded before even having a request object.
def _prefixes #:nodoc:
- @_prefixes ||= if self.class.scoped_views? && devise_mapping
+ @_prefixes ||= if self.class.scoped_views? && request && devise_mapping
super.unshift("#{devise_mapping.scoped_path}/#{controller_name}")
else
super
@@ -4,6 +4,15 @@ class SessionsControllerTest < ActionController::TestCase
tests Devise::SessionsController
include Devise::TestHelpers
+ test "#create works even with scoped views" do
+ swap Devise, :scoped_views => true do
+ request.env["devise.mapping"] = Devise.mappings[:user]
+ post :create
+ assert_equal 200, @response.status
+ assert_template "users/sessions/new"
+ end
+ end
+
test "#create doesn't raise exception after Warden authentication fails when TestHelpers included" do
request.env["devise.mapping"] = Devise.mappings[:user]
post :create, :user => {
@@ -13,23 +22,21 @@ class SessionsControllerTest < ActionController::TestCase
assert_equal 200, @response.status
assert_template "devise/sessions/new"
end
-
- if defined?(ActiveRecord)
- if ActiveRecord::Base.respond_to?(:mass_assignment_sanitizer)
- test "#new doesn't raise mass-assignment exception even if sign-in key is attr_protected" do
- request.env["devise.mapping"] = Devise.mappings[:user]
- ActiveRecord::Base.mass_assignment_sanitizer = :strict
- User.class_eval { attr_protected :email }
-
- begin
- assert_nothing_raised ActiveModel::MassAssignmentSecurity::Error do
- get :new, :user => { :email => "allez viens!" }
- end
- ensure
- ActiveRecord::Base.mass_assignment_sanitizer = :logger
- User.class_eval { attr_accessible :email }
+ if defined?(ActiveRecord) && ActiveRecord::Base.respond_to?(:mass_assignment_sanitizer)
+ test "#new doesn't raise mass-assignment exception even if sign-in key is attr_protected" do
+ request.env["devise.mapping"] = Devise.mappings[:user]
+
+ ActiveRecord::Base.mass_assignment_sanitizer = :strict
+ User.class_eval { attr_protected :email }
+
+ begin
+ assert_nothing_raised ActiveModel::MassAssignmentSecurity::Error do
+ get :new, :user => { :email => "allez viens!" }
end
+ ensure
+ ActiveRecord::Base.mass_assignment_sanitizer = :logger
+ User.class_eval { attr_accessible :email }
end
end
end

0 comments on commit 2b73285

Please sign in to comment.