##// END OF EJS Templates
Attachments should be available to the text formatter when previewing an existing news....
Attachments should be available to the text formatter when previewing an existing news. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10400 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r9792:18f693f9f7c1
r10217:ca4f2c59b647
Show More
users_test.rb
347 lines | 10.4 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 # Redmine - project management software
Jean-Philippe Lang
Copyright update....
r9453 # Copyright (C) 2006-2012 Jean-Philippe Lang
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813 #
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813 #
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Jean-Baptiste Barth
Use absolute paths in test/**/* requires for Ruby 1.9.2 compatibility. #4050...
r4395 require File.expand_path('../../../test_helper', __FILE__)
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 require 'pp'
class ApiTest::UsersTest < ActionController::IntegrationTest
fixtures :users
def setup
Setting.rest_api_enabled = '1'
end
context "GET /users" do
should_allow_api_authentication(:get, "/users.xml")
should_allow_api_authentication(:get, "/users.json")
end
context "GET /users/2" do
context ".xml" do
should "return requested user" do
get '/users/2.xml'
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds membership ids to /users/:id API response....
r8685 assert_response :success
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 assert_tag :tag => 'user',
:child => {:tag => 'id', :content => '2'}
end
Jean-Philippe Lang
Adds membership ids to /users/:id API response....
r8685
context "with include=memberships" do
should "include memberships" do
get '/users/2.xml?include=memberships'
assert_response :success
assert_tag :tag => 'memberships',
:parent => {:tag => 'user'},
:children => {:count => 1}
end
end
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
context ".json" do
should "return requested user" do
get '/users/2.json'
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds membership ids to /users/:id API response....
r8685 assert_response :success
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 json = ActiveSupport::JSON.decode(response.body)
assert_kind_of Hash, json
assert_kind_of Hash, json['user']
assert_equal 2, json['user']['id']
end
Jean-Philippe Lang
Adds membership ids to /users/:id API response....
r8685
context "with include=memberships" do
should "include memberships" do
get '/users/2.json?include=memberships'
assert_response :success
json = ActiveSupport::JSON.decode(response.body)
assert_kind_of Array, json['user']['memberships']
assert_equal [{
"id"=>1,
"project"=>{"name"=>"eCookbook", "id"=>1},
"roles"=>[{"name"=>"Manager", "id"=>1}]
}], json['user']['memberships']
end
end
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds support for requesting information about current user using /users/current (#7141)....
r4430 context "GET /users/current" do
context ".xml" do
should "require authentication" do
get '/users/current.xml'
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds support for requesting information about current user using /users/current (#7141)....
r4430 assert_response 401
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds support for requesting information about current user using /users/current (#7141)....
r4430 should "return current user" do
Jean-Philippe Lang
Test cleanup....
r8357 get '/users/current.xml', {}, credentials('jsmith')
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds support for requesting information about current user using /users/current (#7141)....
r4430 assert_tag :tag => 'user',
:child => {:tag => 'id', :content => '2'}
end
end
end
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339
context "POST /users" do
context "with valid parameters" do
setup do
Toshi MARUYAMA
code layout clean up test/integration/api_test/users_test.rb...
r8202 @parameters = {
:user => {
:login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname',
:mail => 'foo@example.net', :password => 'secret',
:mail_notification => 'only_assigned'
}
}
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 context ".xml" do
should_allow_api_authentication(:post,
'/users.xml',
Toshi MARUYAMA
code layout clean up test/integration/api_test/users_test.rb...
r8202 {:user => {
:login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname',
:mail => 'foo@example.net', :password => 'secret'
}},
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 {:success_code => :created})
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 should "create a user with the attributes" do
assert_difference('User.count') do
Jean-Philippe Lang
Test cleanup....
r8357 post '/users.xml', @parameters, credentials('admin')
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 user = User.first(:order => 'id DESC')
assert_equal 'foo', user.login
assert_equal 'Firstname', user.firstname
assert_equal 'Lastname', user.lastname
assert_equal 'foo@example.net', user.mail
Jean-Philippe Lang
Moves mail_notification param to user hash param so that it can be set using the User API....
r4382 assert_equal 'only_assigned', user.mail_notification
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 assert !user.admin?
Jean-Philippe Lang
Moves password param to user hash param so that it can be set using the User API....
r4379 assert user.check_password?('secret')
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 assert_response :created
assert_equal 'application/xml', @response.content_type
assert_tag 'user', :child => {:tag => 'id', :content => user.id.to_s}
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 context ".json" do
should_allow_api_authentication(:post,
'/users.json',
Toshi MARUYAMA
code layout clean up test/integration/api_test/users_test.rb...
r8202 {:user => {
:login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname',
:mail => 'foo@example.net'
}},
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 {:success_code => :created})
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 should "create a user with the attributes" do
assert_difference('User.count') do
Jean-Philippe Lang
Test cleanup....
r8357 post '/users.json', @parameters, credentials('admin')
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 user = User.first(:order => 'id DESC')
assert_equal 'foo', user.login
assert_equal 'Firstname', user.firstname
assert_equal 'Lastname', user.lastname
assert_equal 'foo@example.net', user.mail
assert !user.admin?
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 assert_response :created
assert_equal 'application/json', @response.content_type
json = ActiveSupport::JSON.decode(response.body)
assert_kind_of Hash, json
assert_kind_of Hash, json['user']
assert_equal user.id, json['user']['id']
end
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 context "with invalid parameters" do
setup do
@parameters = {:user => {:login => 'foo', :lastname => 'Lastname', :mail => 'foo'}}
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 context ".xml" do
should "return errors" do
assert_no_difference('User.count') do
Jean-Philippe Lang
Test cleanup....
r8357 post '/users.xml', @parameters, credentials('admin')
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 assert_response :unprocessable_entity
assert_equal 'application/xml', @response.content_type
Toshi MARUYAMA
code layout clean up test/integration/api_test/users_test.rb...
r8202 assert_tag 'errors', :child => {
:tag => 'error',
:content => "First name can't be blank"
}
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 context ".json" do
should "return errors" do
assert_no_difference('User.count') do
Jean-Philippe Lang
Test cleanup....
r8357 post '/users.json', @parameters, credentials('admin')
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 assert_response :unprocessable_entity
assert_equal 'application/json', @response.content_type
json = ActiveSupport::JSON.decode(response.body)
assert_kind_of Hash, json
assert json.has_key?('errors')
assert_kind_of Array, json['errors']
end
end
end
end
context "PUT /users/2" do
context "with valid parameters" do
setup do
Toshi MARUYAMA
code layout clean up test/integration/api_test/users_test.rb...
r8202 @parameters = {
:user => {
:login => 'jsmith', :firstname => 'John', :lastname => 'Renamed',
:mail => 'jsmith@somenet.foo'
}
}
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 context ".xml" do
should_allow_api_authentication(:put,
'/users/2.xml',
Toshi MARUYAMA
code layout clean up test/integration/api_test/users_test.rb...
r8202 {:user => {
:login => 'jsmith', :firstname => 'John', :lastname => 'Renamed',
:mail => 'jsmith@somenet.foo'
}},
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 {:success_code => :ok})
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 should "update user with the attributes" do
assert_no_difference('User.count') do
Jean-Philippe Lang
Test cleanup....
r8357 put '/users/2.xml', @parameters, credentials('admin')
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 user = User.find(2)
assert_equal 'jsmith', user.login
assert_equal 'John', user.firstname
assert_equal 'Renamed', user.lastname
assert_equal 'jsmith@somenet.foo', user.mail
assert !user.admin?
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 assert_response :ok
Jean-Philippe Lang
Fixed that 200 API responses have a body containing one space (#11388)....
r9792 assert_equal '', @response.body
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 context ".json" do
should_allow_api_authentication(:put,
'/users/2.json',
Toshi MARUYAMA
code layout clean up test/integration/api_test/users_test.rb...
r8202 {:user => {
:login => 'jsmith', :firstname => 'John', :lastname => 'Renamed',
:mail => 'jsmith@somenet.foo'
}},
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 {:success_code => :ok})
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 should "update user with the attributes" do
assert_no_difference('User.count') do
Jean-Philippe Lang
Test cleanup....
r8357 put '/users/2.json', @parameters, credentials('admin')
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 user = User.find(2)
assert_equal 'jsmith', user.login
assert_equal 'John', user.firstname
assert_equal 'Renamed', user.lastname
assert_equal 'jsmith@somenet.foo', user.mail
assert !user.admin?
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 assert_response :ok
Jean-Philippe Lang
Fixed that 200 API responses have a body containing one space (#11388)....
r9792 assert_equal '', @response.body
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 context "with invalid parameters" do
setup do
Toshi MARUYAMA
code layout clean up test/integration/api_test/users_test.rb...
r8202 @parameters = {
:user => {
:login => 'jsmith', :firstname => '', :lastname => 'Lastname',
:mail => 'foo'
}
}
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 context ".xml" do
should "return errors" do
assert_no_difference('User.count') do
Jean-Philippe Lang
Test cleanup....
r8357 put '/users/2.xml', @parameters, credentials('admin')
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 assert_response :unprocessable_entity
assert_equal 'application/xml', @response.content_type
Toshi MARUYAMA
code layout clean up test/integration/api_test/users_test.rb...
r8202 assert_tag 'errors', :child => {
:tag => 'error',
:content => "First name can't be blank"
}
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 context ".json" do
should "return errors" do
assert_no_difference('User.count') do
Jean-Philippe Lang
Test cleanup....
r8357 put '/users/2.json', @parameters, credentials('admin')
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 assert_response :unprocessable_entity
assert_equal 'application/json', @response.content_type
json = ActiveSupport::JSON.decode(response.body)
assert_kind_of Hash, json
assert json.has_key?('errors')
assert_kind_of Array, json['errors']
end
end
end
Jean-Philippe Lang
Enable ability for administrators to delete users (#7296)....
r4609 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Enable ability for administrators to delete users (#7296)....
r4609 context "DELETE /users/2" do
context ".xml" do
should_allow_api_authentication(:delete,
'/users/2.xml',
{},
{:success_code => :ok})
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Enable ability for administrators to delete users (#7296)....
r4609 should "delete user" do
assert_difference('User.count', -1) do
Jean-Philippe Lang
Test cleanup....
r8357 delete '/users/2.xml', {}, credentials('admin')
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Enable ability for administrators to delete users (#7296)....
r4609 assert_response :ok
Jean-Philippe Lang
Fixed that 200 API responses have a body containing one space (#11388)....
r9792 assert_equal '', @response.body
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Jean-Philippe Lang
Enable ability for administrators to delete users (#7296)....
r4609 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Enable ability for administrators to delete users (#7296)....
r4609 context ".json" do
should_allow_api_authentication(:delete,
'/users/2.xml',
{},
{:success_code => :ok})
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Enable ability for administrators to delete users (#7296)....
r4609 should "delete user" do
assert_difference('User.count', -1) do
Jean-Philippe Lang
Test cleanup....
r8357 delete '/users/2.json', {}, credentials('admin')
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/users_test.rb....
r6813
Jean-Philippe Lang
Enable ability for administrators to delete users (#7296)....
r4609 assert_response :ok
Jean-Philippe Lang
Fixed that 200 API responses have a body containing one space (#11388)....
r9792 assert_equal '', @response.body
Jean-Philippe Lang
Adds xml/json REST API for Users (#6260)....
r4339 end
end
end
end