get "/my/account"
assert_response :success
- assert_template "my/account"
end
def test_login_should_set_session_token
cookies[:autologin] = token.value
get '/my/page'
assert_response :success
- assert_template 'my/page'
assert_equal user.id, session[:user_id]
assert_not_nil user.reload.last_login_on
end
get "/account/lost_password"
assert_response :success
- assert_template "account/lost_password"
assert_select 'input[name=mail]'
post "/account/lost_password", :mail => 'jSmith@somenet.foo'
get "/account/lost_password", :token => token.value
assert_response :success
- assert_template "account/password_recovery"
assert_select 'input[type=hidden][name=token][value=?]', token.value
assert_select 'input[name=new_password]'
assert_select 'input[name=new_password_confirmation]'
get '/account/register'
assert_response :success
- assert_template 'account/register'
post '/account/register',
:user => {:login => "newuser", :language => "en",
assert_redirected_to '/my/account'
follow_redirect!
assert_response :success
- assert_template 'my/account'
user = User.find_by_login('newuser')
assert_not_nil user
post '/login', :username => 'foo', :password => 'bar'
assert_response :success
- assert_template 'account/register'
assert_select 'input[name=?][value=""]', 'user[firstname]'
assert_select 'input[name=?][value=Smith]', 'user[lastname]'
assert_select 'input[name=?]', 'user[login]', 0
log_user("admin", "admin")
get "/users/new"
assert_response :success
- assert_template "users/new"
+
post "/users",
:user => { :login => "psmith", :firstname => "Paul",
:lastname => "Smith", :mail => "psmith@somenet.foo",
get '/users/current', {}, {'X-Redmine-API-Key' => user.api_key, 'X-Redmine-Switch-User' => su.login}
assert_response :success
- assert_equal su, assigns(:user)
+ assert_select 'h2', :text => su.name
assert_equal su, User.current
end
get '/users/current', {}, {'X-Redmine-API-Key' => user.api_key, 'X-Redmine-Switch-User' => su.login}
assert_response :success
- assert_equal user, assigns(:user)
+ assert_select 'h2', :text => user.name
assert_equal user, User.current
end
end
test "GET /issues.xml should contain metadata" do
get '/issues.xml'
- assert_select 'issues[type=array][total_count=?][limit="25"][offset="0"]',
- assigns(:issue_count).to_s
+ assert_select 'issues[type=array][total_count][limit="25"][offset="0"]'
end
test "GET /issues.xml with nometa param should not contain metadata" do
test "GET /issues.xml with offset and limit" do
get '/issues.xml?offset=2&limit=3'
-
- assert_equal 3, assigns(:limit)
- assert_equal 2, assigns(:offset)
+ assert_select 'issues[type=array][total_count][limit="3"][offset="2"]'
assert_select 'issues issue', 3
end
assert_response :success
assert_equal 'application/xml', @response.content_type
- assert_equal 3, assigns(:roles).size
+ assert_select 'roles role', 3
assert_select 'roles[type=array] role id', :text => '2' do
assert_select '~ name', :text => 'Developer'
end
assert_response :success
assert_equal 'application/json', @response.content_type
- assert_equal 3, assigns(:roles).size
json = ActiveSupport::JSON.decode(response.body)
assert_kind_of Hash, json
assert_kind_of Array, json['roles']
+ assert_equal 3, json['roles'].size
assert_include({'id' => 2, 'name' => 'Developer'}, json['roles'])
end
get '/search.xml', :q => '', :all_words => ''
assert_response :success
- assert_equal 0, assigns(:results).size
+ assert_select 'result', 0
end
test "GET /search.xml with query strings should return results" do
- get '/search.xml', :q => 'recipe subproject commit', :all_words => ''
+ issue = Issue.generate!(:subject => 'searchapi')
+
+ get '/search.xml', :q => 'searchapi', :all_words => ''
assert_response :success
- assert_not_empty(assigns(:results))
assert_select 'results[type=array]' do
- assert_select 'result', :count => assigns(:results).count
- assigns(:results).size.times.each do |i|
- assert_select 'result' do
- assert_select 'id', :text => assigns(:results)[i].id.to_s
- assert_select 'title', :text => assigns(:results)[i].event_title
- assert_select 'type', :text => assigns(:results)[i].event_type
- assert_select 'url', :text => url_for(assigns(:results)[i].event_url(:only_path => false))
- assert_select 'description', :text => assigns(:results)[i].event_description
- assert_select 'datetime'
- end
+ assert_select 'result', 1
+
+ assert_select 'result' do
+ assert_select 'id', :text => issue.id.to_s
+ assert_select 'title', :text => "Bug ##{issue.id} (New): searchapi"
+ assert_select 'type', :text => 'issue'
+ assert_select 'url', :text => "http://www.example.com/issues/#{issue.id}"
+ assert_select 'description', :text => ''
+ assert_select 'datetime'
end
end
end
assert_response :success
assert_equal 'application/xml', response.content_type
assert_select 'users' do
- assert_select 'user', assigns(:users).size
+ assert_select 'user', User.active.count
end
end
assert_equal 'application/json', response.content_type
json = ActiveSupport::JSON.decode(response.body)
assert json.key?('users')
- assert_equal assigns(:users).size, json['users'].size
+ assert_equal User.active.count, json['users'].size
end
test "GET /users/:id.xml should return the user" do
get '/projects/ecookbook/issues/new'
assert_response :success
- assert_template 'issues/new'
issue = new_record(Issue) do
post '/projects/ecookbook/issues',
# check redirection
assert_redirected_to :controller => 'issues', :action => 'show', :id => issue
follow_redirect!
- assert_equal issue, assigns(:issue)
# check issue attributes
assert_equal 'jsmith', issue.author.login
log_user("admin", "admin")
get "/admin/projects"
assert_response :success
- assert_template "admin/projects"
+
post "/projects/1/archive"
assert_redirected_to "/admin/projects"
assert !Project.find(1).active?
assert_response :success
assert_select 'h2', 'Confirm your password to continue'
assert_select 'form[action="/roles"]'
- assert assigns(:sudo_form).errors.blank?
+ assert_select '#flash_error', 0
post '/roles', role: { name: 'new role', issues_visibility: 'all' }
assert_response :success
assert_select 'h2', 'Confirm your password to continue'
assert_select 'form[action="/roles"]'
- assert_match /"new role"/, response.body
- assert assigns(:sudo_form).errors.blank?
+ assert_select 'input[type=hidden][name=?][value=?]', 'role[name]', 'new role'
+ assert_select '#flash_error', 0
post '/roles', role: { name: 'new role', issues_visibility: 'all' }, sudo_password: 'wrong'
assert_response :success
assert_select 'h2', 'Confirm your password to continue'
assert_select 'form[action="/roles"]'
- assert_match /"new role"/, response.body
- assert assigns(:sudo_form).errors[:password].present?
+ assert_select 'input[type=hidden][name=?][value=?]', 'role[name]', 'new role'
+ assert_select '#flash_error'
assert_difference 'Role.count' do
post '/roles', role: { name: 'new role', issues_visibility: 'all', assignable: '1', permissions: %w(view_calendar) }, sudo_password: 'admin'
assert_response :success
assert_select 'h2', 'Confirm your password to continue'
assert_select 'form[action="/my/account"]'
- assert_match /"newmail@test\.com"/, response.body
- assert assigns(:sudo_form).errors.blank?
+ assert_select 'input[type=hidden][name=?][value=?]', 'user[mail]', 'newmail@test.com'
+ assert_select '#flash_error', 0
# wrong password
post '/my/account', user: { mail: 'newmail@test.com' }, sudo_password: 'wrong'
assert_response :success
assert_select 'h2', 'Confirm your password to continue'
assert_select 'form[action="/my/account"]'
- assert_match /"newmail@test\.com"/, response.body
- assert assigns(:sudo_form).errors[:password].present?
+ assert_select 'input[type=hidden][name=?][value=?]', 'user[mail]', 'newmail@test.com'
+ assert_select '#flash_error'
# correct password
post '/my/account', user: { mail: 'newmail@test.com' }, sudo_password: 'jsmith'
get "/login"
assert_equal nil, session[:user_id]
assert_response :success
- assert_template "account/login"
+
post "/login", :username => login, :password => password
assert_equal login, User.find(session[:user_id]).login
end