Commit e2b528dddae3476fb783b22b1cd34dc88281540f

Authored by Evandro Junior
2 parents eea77aea 64557f2e

Merge branch 'api' of https://gitlab.com/participa/noosfero into api

lib/noosfero/api/api.rb
... ... @@ -11,9 +11,9 @@ module Noosfero
11 11 logger.formatter = GrapeLogging::Formatters::Default.new
12 12 use GrapeLogging::Middleware::RequestLogger, { logger: logger }
13 13  
14   - rescue_from :all do |e|
15   - logger.error e
16   - end
  14 + #rescue_from :all do |e|
  15 + # logger.error e
  16 + #end
17 17  
18 18 @@NOOSFERO_CONF = nil
19 19 def self.NOOSFERO_CONF
... ... @@ -25,6 +25,7 @@ module Noosfero
25 25 end
26 26 end
27 27  
  28 + before { set_locale }
28 29 before { setup_multitenancy }
29 30 before { detect_stuff_by_domain }
30 31 before { filter_disabled_plugins_endpoints }
... ...
lib/noosfero/api/helpers.rb
... ... @@ -7,6 +7,10 @@
7 7  
8 8 include SanitizeParams
9 9  
  10 + def set_locale
  11 + I18n.locale = (params[:lang] || request.env['HTTP_ACCEPT_LANGUAGE'] || 'en')
  12 + end
  13 +
10 14 def current_user
11 15 private_token = (params[PRIVATE_TOKEN_PARAM] || headers['Private-Token']).to_s
12 16 @current_user ||= User.find_by_private_token(private_token)
... ...
test/unit/api/users_test.rb
  1 +# encoding: UTF-8
1 2 require File.dirname(__FILE__) + '/test_helper'
2 3  
3 4 class UsersTest < ActiveSupport::TestCase
... ... @@ -19,6 +20,18 @@ class UsersTest &lt; ActiveSupport::TestCase
19 20 assert_equal 'some', json['user']['login']
20 21 end
21 22  
  23 + should 'not create duplicate user' do
  24 + params[:lang] = :"pt-BR"
  25 + params[:user] = {:login => 'some', :password => '123456', :password_confirmation => '123456', :email => 'some@some.com'}
  26 + post "/api/v1/users?#{params.to_query}"
  27 + json = JSON.parse(last_response.body)
  28 + assert_equal 'some', json['user']['login']
  29 + params[:user] = {:login => 'some', :password => '123456', :password_confirmation => '123456', :email => 'some@some.com'}
  30 + post "/api/v1/users?#{params.to_query}"
  31 + json = JSON.parse(last_response.body)
  32 + assert_equal 'Username / Email já está em uso,e-Mail já está em uso', json['message']
  33 + end
  34 +
22 35 should 'return 400 status for invalid user creation' do
23 36 params[:user] = {:login => 'some'}
24 37 post "/api/v1/users?#{params.to_query}"
... ...
test/unit/user_test.rb
... ... @@ -21,6 +21,14 @@ class UserTest &lt; ActiveSupport::TestCase
21 21 end
22 22 end
23 23  
  24 + def test_should_not_allow_duplicate_login
  25 + user1 = create_user('new_user', :email => 'new_user1@example.com', :password => 'test', :password_confirmation => 'test')
  26 + assert !user1.errors[:login].present?
  27 + user1.save!
  28 + user2 = new_user(:login => 'new_user')
  29 + assert user2.errors[:login].present?
  30 + end
  31 +
24 32 def test_should_require_password
25 33 assert_no_difference 'User.count' do
26 34 u = new_user(:password => nil)
... ... @@ -42,6 +50,13 @@ class UserTest &lt; ActiveSupport::TestCase
42 50 end
43 51 end
44 52  
  53 + def test_email_format
  54 + assert_no_difference 'User.count' do
  55 + u = new_user(:email => 'test.email')
  56 + assert u.errors[:email].present?
  57 + end
  58 + end
  59 +
45 60 def test_should_reset_password
46 61 users(:johndoe).update_attributes(:password => 'new password', :password_confirmation => 'new password')
47 62 assert_equal users(:johndoe), User.authenticate('johndoe', 'new password')
... ... @@ -715,25 +730,6 @@ class UserTest &lt; ActiveSupport::TestCase
715 730 assert_equal 'quire', user.person.name
716 731 end
717 732  
718   - should 'generate private token' do
719   - user = User.new
720   - SecureRandom.stubs(:hex).returns('token')
721   - user.generate_private_token!
722   -
723   - assert user.private_token, 'token'
724   - end
725   -
726   - should 'check for private token validity' do
727   - user = User.new
728   - assert user.private_token_expired?
729   -
730   - user.generate_private_token!
731   - assert !user.private_token_expired?
732   -
733   - user.private_token_generated_at = DateTime.now - (User::TOKEN_VALIDITY + 1.minute)
734   - assert user.private_token_expired?
735   - end
736   -
737 733 protected
738 734 def new_user(options = {})
739 735 user = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options))
... ...