diff --git a/lib/noosfero/api/api.rb b/lib/noosfero/api/api.rb index 6489f4d..2d5fd60 100644 --- a/lib/noosfero/api/api.rb +++ b/lib/noosfero/api/api.rb @@ -11,9 +11,9 @@ module Noosfero logger.formatter = GrapeLogging::Formatters::Default.new use GrapeLogging::Middleware::RequestLogger, { logger: logger } - rescue_from :all do |e| - logger.error e - end + #rescue_from :all do |e| + # logger.error e + #end @@NOOSFERO_CONF = nil def self.NOOSFERO_CONF @@ -25,6 +25,7 @@ module Noosfero end end + before { set_locale } before { setup_multitenancy } before { detect_stuff_by_domain } before { filter_disabled_plugins_endpoints } diff --git a/lib/noosfero/api/helpers.rb b/lib/noosfero/api/helpers.rb index f97d879..e1fe3c0 100644 --- a/lib/noosfero/api/helpers.rb +++ b/lib/noosfero/api/helpers.rb @@ -7,6 +7,10 @@ include SanitizeParams + def set_locale + I18n.locale = (params[:lang] || request.env['HTTP_ACCEPT_LANGUAGE'] || 'en') + end + def current_user private_token = (params[PRIVATE_TOKEN_PARAM] || headers['Private-Token']).to_s @current_user ||= User.find_by_private_token(private_token) diff --git a/test/unit/api/users_test.rb b/test/unit/api/users_test.rb index 5fd9ebe..e0c5980 100644 --- a/test/unit/api/users_test.rb +++ b/test/unit/api/users_test.rb @@ -1,3 +1,4 @@ +# encoding: UTF-8 require File.dirname(__FILE__) + '/test_helper' class UsersTest < ActiveSupport::TestCase @@ -19,6 +20,18 @@ class UsersTest < ActiveSupport::TestCase assert_equal 'some', json['user']['login'] end + should 'not create duplicate user' do + params[:lang] = :"pt-BR" + params[:user] = {:login => 'some', :password => '123456', :password_confirmation => '123456', :email => 'some@some.com'} + post "/api/v1/users?#{params.to_query}" + json = JSON.parse(last_response.body) + assert_equal 'some', json['user']['login'] + params[:user] = {:login => 'some', :password => '123456', :password_confirmation => '123456', :email => 'some@some.com'} + post "/api/v1/users?#{params.to_query}" + json = JSON.parse(last_response.body) + assert_equal 'Username / Email já está em uso,e-Mail já está em uso', json['message'] + end + should 'return 400 status for invalid user creation' do params[:user] = {:login => 'some'} post "/api/v1/users?#{params.to_query}" diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index 769496b..a34502f 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -730,25 +730,6 @@ class UserTest < ActiveSupport::TestCase assert_equal 'quire', user.person.name end - should 'generate private token' do - user = User.new - SecureRandom.stubs(:hex).returns('token') - user.generate_private_token! - - assert user.private_token, 'token' - end - - should 'check for private token validity' do - user = User.new - assert user.private_token_expired? - - user.generate_private_token! - assert !user.private_token_expired? - - user.private_token_generated_at = DateTime.now - (User::TOKEN_VALIDITY + 1.minute) - assert user.private_token_expired? - end - protected def new_user(options = {}) user = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options)) -- libgit2 0.21.2