diff --git a/.travis.yml b/.travis.yml
index f94ce30a..97c4ae83 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,7 +4,9 @@ rvm:
- 1.9.2
- 1.9.3
- ree
- - rbx-18mode
+gemfile:
+ - gemfiles/Gemfile.rails-3.1.x
+ - Gemfile
notifications:
recipients:
- jose.valim@plataformatec.com.br
diff --git a/Gemfile b/Gemfile
index db1e06c0..9bf8ffca 100644
--- a/Gemfile
+++ b/Gemfile
@@ -2,7 +2,7 @@ source "http://rubygems.org"
gemspec
-gem "rails", "~> 3.1.0"
+gem "rails", ">= 3.2.0.rc", "< 4.0"
gem "omniauth", "~> 1.0.0"
gem "omniauth-oauth2", "~> 1.0.0"
gem "rdoc"
diff --git a/Gemfile.lock b/Gemfile.lock
index f21bc541..c1e70864 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -10,36 +10,35 @@ PATH
GEM
remote: http://rubygems.org/
specs:
- actionmailer (3.1.3)
- actionpack (= 3.1.3)
+ actionmailer (3.2.0.rc2)
+ actionpack (= 3.2.0.rc2)
mail (~> 2.3.0)
- actionpack (3.1.3)
- activemodel (= 3.1.3)
- activesupport (= 3.1.3)
+ actionpack (3.2.0.rc2)
+ activemodel (= 3.2.0.rc2)
+ activesupport (= 3.2.0.rc2)
builder (~> 3.0.0)
erubis (~> 2.7.0)
- i18n (~> 0.6)
- rack (~> 1.3.5)
+ journey (~> 1.0.0.rc1)
+ rack (~> 1.4.0)
rack-cache (~> 1.1)
- rack-mount (~> 0.8.2)
rack-test (~> 0.6.1)
- sprockets (~> 2.0.3)
- activemodel (3.1.3)
- activesupport (= 3.1.3)
+ sprockets (~> 2.1.2)
+ activemodel (3.2.0.rc2)
+ activesupport (= 3.2.0.rc2)
builder (~> 3.0.0)
- i18n (~> 0.6)
- activerecord (3.1.3)
- activemodel (= 3.1.3)
- activesupport (= 3.1.3)
- arel (~> 2.2.1)
+ activerecord (3.2.0.rc2)
+ activemodel (= 3.2.0.rc2)
+ activesupport (= 3.2.0.rc2)
+ arel (~> 3.0.0.rc1)
tzinfo (~> 0.3.29)
- activeresource (3.1.3)
- activemodel (= 3.1.3)
- activesupport (= 3.1.3)
- activesupport (3.1.3)
+ activeresource (3.2.0.rc2)
+ activemodel (= 3.2.0.rc2)
+ activesupport (= 3.2.0.rc2)
+ activesupport (3.2.0.rc2)
+ i18n (~> 0.6)
multi_json (~> 1.0)
addressable (2.2.6)
- arel (2.2.1)
+ arel (3.0.0.rc1)
bcrypt-ruby (3.0.1)
bson (1.5.1)
bson_ext (1.3.1)
@@ -53,7 +52,8 @@ GEM
hashie (1.2.0)
hike (1.2.1)
i18n (0.6.0)
- json (1.6.3)
+ journey (1.0.0.rc4)
+ json (1.6.4)
linecache (0.46)
rbx-require-relative (> 0.0.4)
mail (2.3.0)
@@ -89,11 +89,9 @@ GEM
rack-openid (~> 1.3.1)
orm_adapter (0.0.5)
polyglot (0.3.3)
- rack (1.3.5)
+ rack (1.4.0)
rack-cache (1.1)
rack (>= 0.4)
- rack-mount (0.8.3)
- rack (>= 1.0.0)
rack-openid (1.3.1)
rack (>= 1.1.0)
ruby-openid (>= 2.1.8)
@@ -101,24 +99,24 @@ GEM
rack
rack-test (0.6.1)
rack (>= 1.0)
- rails (3.1.3)
- actionmailer (= 3.1.3)
- actionpack (= 3.1.3)
- activerecord (= 3.1.3)
- activeresource (= 3.1.3)
- activesupport (= 3.1.3)
+ rails (3.2.0.rc2)
+ actionmailer (= 3.2.0.rc2)
+ actionpack (= 3.2.0.rc2)
+ activerecord (= 3.2.0.rc2)
+ activeresource (= 3.2.0.rc2)
+ activesupport (= 3.2.0.rc2)
bundler (~> 1.0)
- railties (= 3.1.3)
- railties (3.1.3)
- actionpack (= 3.1.3)
- activesupport (= 3.1.3)
+ railties (= 3.2.0.rc2)
+ railties (3.2.0.rc2)
+ actionpack (= 3.2.0.rc2)
+ activesupport (= 3.2.0.rc2)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (~> 0.14.6)
rake (0.9.2.2)
rbx-require-relative (0.0.5)
- rdoc (3.11)
+ rdoc (3.12)
json (~> 1.4)
ruby-debug (0.10.4)
columnize (>= 0.1)
@@ -126,7 +124,7 @@ GEM
ruby-debug-base (0.10.4)
linecache (>= 0.3)
ruby-openid (2.1.8)
- sprockets (2.0.3)
+ sprockets (2.1.2)
hike (~> 1.2)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
@@ -162,7 +160,7 @@ DEPENDENCIES
omniauth-facebook
omniauth-oauth2 (~> 1.0.0)
omniauth-openid (~> 1.0.1)
- rails (~> 3.1.0)
+ rails (>= 3.2.0.rc, < 4.0)
rdoc
ruby-debug (>= 0.10.3)
sqlite3-ruby
diff --git a/devise.gemspec b/devise.gemspec
index beb2a929..74b38906 100644
--- a/devise.gemspec
+++ b/devise.gemspec
@@ -14,13 +14,12 @@ Gem::Specification.new do |s|
s.rubyforge_project = "devise"
- s.files = `git ls-files`.split("\n")
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
+ s.files = Dir["CHANGELOG.rdoc", "MIT-LICENSE", "README.rdoc", "app/**/*", "config/**/*", "lib/**/*"]
+ s.test_files = Dir["test/**/*"]
s.require_paths = ["lib"]
s.add_dependency("warden", "~> 1.1")
s.add_dependency("orm_adapter", "~> 0.0.3")
s.add_dependency("bcrypt-ruby", "~> 3.0")
s.add_dependency("railties", "~> 3.1")
-end
\ No newline at end of file
+end
diff --git a/gemfiles/Gemfile.rails-3.1.x b/gemfiles/Gemfile.rails-3.1.x
new file mode 100644
index 00000000..b88f6884
--- /dev/null
+++ b/gemfiles/Gemfile.rails-3.1.x
@@ -0,0 +1,35 @@
+source "http://rubygems.org"
+
+gem "devise", :path => ".."
+
+gem "rails", "~> 3.1.0"
+gem "omniauth", "~> 1.0.0"
+gem "omniauth-oauth2", "~> 1.0.0"
+gem "rdoc"
+
+group :test do
+ gem "omniauth-facebook"
+ gem "omniauth-openid", "~> 1.0.1"
+ gem "webrat", "0.7.2", :require => false
+ gem "mocha", :require => false
+
+ platforms :mri_18 do
+ gem "ruby-debug", ">= 0.10.3"
+ end
+end
+
+platforms :jruby do
+ gem "activerecord-jdbc-adapter"
+ gem "activerecord-jdbcsqlite3-adapter"
+ gem "jruby-openssl"
+end
+
+platforms :ruby do
+ gem "sqlite3-ruby"
+
+ group :mongoid do
+ gem "mongo", "~> 1.3.0"
+ gem "mongoid", "~> 2.0"
+ gem "bson_ext", "~> 1.3.0"
+ end
+end
diff --git a/lib/devise/strategies/authenticatable.rb b/lib/devise/strategies/authenticatable.rb
index b1062e3a..e23bf0eb 100644
--- a/lib/devise/strategies/authenticatable.rb
+++ b/lib/devise/strategies/authenticatable.rb
@@ -105,7 +105,7 @@ module Devise
# Helper to decode credentials from HTTP.
def decode_credentials
return [] unless request.authorization && request.authorization =~ /^Basic (.*)/m
- ActiveSupport::Base64.decode64($1).split(/:/, 2)
+ Base64.decode64($1).split(/:/, 2)
end
# Sets the authentication hash and the password from params_auth_hash or http_auth_hash.
@@ -156,4 +156,4 @@ module Devise
end
end
end
-end
\ No newline at end of file
+end
diff --git a/test/integration/authenticatable_test.rb b/test/integration/authenticatable_test.rb
index b471674f..8e4fee02 100644
--- a/test/integration/authenticatable_test.rb
+++ b/test/integration/authenticatable_test.rb
@@ -407,7 +407,10 @@ class AuthenticationOthersTest < ActionController::IntegrationTest
test 'sign in stub in xml format' do
get new_user_session_path(:format => 'xml')
- assert_equal "\n\n \n \n\n", response.body
+ assert_match '', response.body
+ assert_match /.*<\/user>/m, response.body
+ assert_match '', response.body
+ assert_match '', response.body
end
test 'sign in stub in json format' do
diff --git a/test/integration/http_authenticatable_test.rb b/test/integration/http_authenticatable_test.rb
index c42abb93..408483d2 100644
--- a/test/integration/http_authenticatable_test.rb
+++ b/test/integration/http_authenticatable_test.rb
@@ -4,7 +4,7 @@ class HttpAuthenticationTest < ActionController::IntegrationTest
test 'handles unverified requests gets rid of caches but continues signed in' do
swap UsersController, :allow_forgery_protection => true do
create_user
- post exhibit_user_url(1), {}, "HTTP_AUTHORIZATION" => "Basic #{ActiveSupport::Base64.encode64("user@test.com:123456")}"
+ post exhibit_user_url(1), {}, "HTTP_AUTHORIZATION" => "Basic #{Base64.encode64("user@test.com:123456")}"
assert warden.authenticated?(:user)
assert_equal "User is authenticated", response.body
end
@@ -74,7 +74,7 @@ class HttpAuthenticationTest < ActionController::IntegrationTest
token = "token_containing_so_many_characters_that_the_base64_encoding_will_wrap"
user = create_user
user.update_attribute :authentication_token, token
- get users_path(:format => :xml), {}, "HTTP_AUTHORIZATION" => "Basic #{ActiveSupport::Base64.encode64("#{token}:x")}"
+ get users_path(:format => :xml), {}, "HTTP_AUTHORIZATION" => "Basic #{Base64.encode64("#{token}:x")}"
assert_response :success
assert_match "user@test.com", response.body
assert warden.authenticated?(:user)
@@ -84,14 +84,14 @@ class HttpAuthenticationTest < ActionController::IntegrationTest
def sign_in_as_new_user_with_http(username="user@test.com", password="123456")
user = create_user
- get users_path(:format => :xml), {}, "HTTP_AUTHORIZATION" => "Basic #{ActiveSupport::Base64.encode64("#{username}:#{password}")}"
+ get users_path(:format => :xml), {}, "HTTP_AUTHORIZATION" => "Basic #{Base64.encode64("#{username}:#{password}")}"
user
end
# Sign in with oauth2 token. This is just to test that it isn't misinterpreted as basic authentication
def add_oauth2_header
user = create_user
- get users_path(:format => :xml), {}, "HTTP_AUTHORIZATION" => "OAuth #{ActiveSupport::Base64.encode64("#{user.email}:123456")}"
+ get users_path(:format => :xml), {}, "HTTP_AUTHORIZATION" => "OAuth #{Base64.encode64("#{user.email}:123456")}"
end
end
diff --git a/test/integration/token_authenticatable_test.rb b/test/integration/token_authenticatable_test.rb
index a6e54f4c..084cfc7a 100644
--- a/test/integration/token_authenticatable_test.rb
+++ b/test/integration/token_authenticatable_test.rb
@@ -112,7 +112,7 @@ class TokenAuthenticationTest < ActionController::IntegrationTest
assert_not_equal user1, user2
visit users_path(Devise.token_authentication_key.to_s + '[$ne]' => user1.authentication_token)
- assert_nil warden.user(:user)
+ assert_nil warden.user(:user)
end
end
@@ -125,7 +125,7 @@ class TokenAuthenticationTest < ActionController::IntegrationTest
options[:auth_token] ||= user.authentication_token
if options[:http_auth]
- header = "Basic #{ActiveSupport::Base64.encode64("#{VALID_AUTHENTICATION_TOKEN}:X")}"
+ header = "Basic #{Base64.encode64("#{VALID_AUTHENTICATION_TOKEN}:X")}"
get users_path(:format => :xml), {}, "HTTP_AUTHORIZATION" => header
else
visit users_path(options[:auth_token_key].to_sym => options[:auth_token])
@@ -145,4 +145,4 @@ class TokenAuthenticationTest < ActionController::IntegrationTest
sign_in_as_new_user_with_token(:user => user)
end
-end
\ No newline at end of file
+end
diff --git a/test/integration/trackable_test.rb b/test/integration/trackable_test.rb
index d3aef96b..df492784 100644
--- a/test/integration/trackable_test.rb
+++ b/test/integration/trackable_test.rb
@@ -36,11 +36,11 @@ class TrackableHooksTest < ActionController::IntegrationTest
assert_equal "127.0.0.1", user.current_sign_in_ip
assert_equal "127.0.0.1", user.last_sign_in_ip
end
-
+
test "current remote ip returns original ip behind a non transparent proxy" do
user = create_user
-
- arbitrary_ip = '192.168.1.69'
+
+ arbitrary_ip = '200.121.1.69'
sign_in_as_user do
header 'HTTP_X_FORWARDED_FOR', arbitrary_ip
end
@@ -72,7 +72,7 @@ class TrackableHooksTest < ActionController::IntegrationTest
assert_nil user.last_sign_in_at
end
end
-
+
test "do not track if devise.skip_trackable is set" do
user = create_user
sign_in_as_user do
@@ -81,7 +81,7 @@ class TrackableHooksTest < ActionController::IntegrationTest
user.reload
assert_equal 0, user.sign_in_count
visit destroy_user_session_path
-
+
sign_in_as_user do
header 'devise.skip_trackable', false
end