git-svn-id: http://svn.redmine.org/redmine/trunk@13695 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/3.0.0
@@ -1741,6 +1741,12 @@ class IssuesControllerTest < ActionController::TestCase | |||
assert_select_error /No tracker/ | |||
end | |||
def test_new_with_invalid_project_id | |||
@request.session[:user_id] = 1 | |||
get :new, :project_id => 'invalid' | |||
assert_response 404 | |||
end | |||
def test_update_form_for_new_issue | |||
@request.session[:user_id] = 2 | |||
xhr :post, :update_form, :project_id => 1, | |||
@@ -4032,6 +4038,19 @@ class IssuesControllerTest < ActionController::TestCase | |||
assert_equal 2, TimeEntry.find(2).issue_id | |||
end | |||
def test_destroy_issues_and_reassign_time_entries_to_an_invalid_issue_should_fail | |||
@request.session[:user_id] = 2 | |||
assert_no_difference 'Issue.count' do | |||
assert_no_difference 'TimeEntry.count' do | |||
# try to reassign time to an issue of another project | |||
delete :destroy, :ids => [1, 3], :todo => 'reassign', :reassign_to_id => 4 | |||
end | |||
end | |||
assert_response :success | |||
assert_template 'destroy' | |||
end | |||
def test_destroy_issues_from_different_projects | |||
@request.session[:user_id] = 2 | |||
@@ -75,6 +75,14 @@ class ProjectsControllerTest < ActionController::TestCase | |||
assert_select 'a[href=?]', '/time_entries', 0 | |||
end | |||
test "#index by non-admin user with permission should show add project link" do | |||
Role.find(1).add_permission! :add_project | |||
@request.session[:user_id] = 2 | |||
get :index | |||
assert_template 'index' | |||
assert_select 'a[href=?]', '/projects/new' | |||
end | |||
test "#new by admin user should accept get" do | |||
@request.session[:user_id] = 1 | |||
@@ -239,6 +239,17 @@ class UsersControllerTest < ActionController::TestCase | |||
assert user.check_password?(password) | |||
end | |||
def test_create_and_continue | |||
post :create, :user => { | |||
:login => 'randompass', | |||
:firstname => 'Random', | |||
:lastname => 'Pass', | |||
:mail => 'randompass@example.net', | |||
:generate_password => '1' | |||
}, :continue => '1' | |||
assert_redirected_to '/users/new?user%5Bgenerate_password%5D=1' | |||
end | |||
def test_create_with_failure | |||
assert_no_difference 'User.count' do | |||
post :create, :user => {} |
@@ -320,12 +320,14 @@ class WikiControllerTest < ActionController::TestCase | |||
:id => 'Another_page', | |||
:content => { | |||
:comments => 'a' * 300, # failure here, comment is too long | |||
:text => 'edited', | |||
:version => 1 | |||
:text => 'edited' | |||
}, | |||
:wiki_page => { | |||
:parent_id => "" | |||
} | |||
end | |||
end | |||
end | |||
end | |||
assert_response :success | |||
assert_template 'edit' | |||
@@ -61,6 +61,13 @@ class WorkflowsControllerTest < ActionController::TestCase | |||
assert_select 'input[type=checkbox][name=?]', 'transitions[1][1][always]', 0 | |||
end | |||
def test_get_edit_with_all_roles_and_all_trackers | |||
get :edit, :role_id => 'all', :tracker_id => 'all' | |||
assert_response :success | |||
assert_equal Role.sorted.to_a, assigns(:roles) | |||
assert_equal Tracker.sorted.to_a, assigns(:trackers) | |||
end | |||
def test_get_edit_with_role_and_tracker_and_all_statuses | |||
WorkflowTransition.delete_all | |||
@@ -20,6 +20,26 @@ require File.expand_path('../../../test_helper', __FILE__) | |||
class Redmine::ApiTest::UsersTest < Redmine::ApiTest::Base | |||
fixtures :users, :members, :member_roles, :roles, :projects | |||
test "GET /users.xml should return users" do | |||
get '/users.xml', {}, credentials('admin') | |||
assert_response :success | |||
assert_equal 'application/xml', response.content_type | |||
assert_select 'users' do | |||
assert_select 'user', assigns(:users).size | |||
end | |||
end | |||
test "GET /users.json should return users" do | |||
get '/users.json', {}, credentials('admin') | |||
assert_response :success | |||
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 | |||
end | |||
test "GET /users/:id.xml should return the user" do | |||
get '/users/2.xml' | |||
@@ -132,4 +132,30 @@ class GroupTest < ActiveSupport::TestCase | |||
assert_equal nil, Issue.find(1).assigned_to_id | |||
end | |||
def test_builtin_groups_should_be_created_if_missing | |||
Group.delete_all | |||
assert_difference 'Group.count', 2 do | |||
group = Group.anonymous | |||
assert_equal GroupAnonymous, group.class | |||
group = Group.non_member | |||
assert_equal GroupNonMember, group.class | |||
end | |||
end | |||
def test_builtin_in_group_should_be_uniq | |||
group = GroupAnonymous.new | |||
group.name = 'Foo' | |||
assert !group.save | |||
end | |||
def test_builtin_in_group_should_not_accept_users | |||
group = Group.anonymous | |||
assert_raise RuntimeError do | |||
group.users << User.find(1) | |||
end | |||
assert_equal 0, group.reload.users.count | |||
end | |||
end |
@@ -647,6 +647,12 @@ class ProjectTest < ActiveSupport::TestCase | |||
end | |||
end | |||
def test_enabled_modules_names_with_nil_should_clear_modules | |||
p = Project.find(1) | |||
p.enabled_module_names = nil | |||
assert_equal [], p.enabled_modules | |||
end | |||
test "enabled_modules should define module by names and preserve ids" do | |||
@project = Project.find(1) | |||
# Remove one module | |||
@@ -947,4 +953,23 @@ class ProjectTest < ActiveSupport::TestCase | |||
assert_equal [Role.anonymous], project.override_roles(Role.anonymous) | |||
assert_equal [Role.non_member], project.override_roles(Role.non_member) | |||
end | |||
def test_css_classes | |||
p = Project.new | |||
assert_kind_of String, p.css_classes | |||
assert_not_include 'archived', p.css_classes.split | |||
assert_not_include 'closed', p.css_classes.split | |||
end | |||
def test_css_classes_for_archived_project | |||
p = Project.new | |||
p.status = Project::STATUS_ARCHIVED | |||
assert_include 'archived', p.css_classes.split | |||
end | |||
def test_css_classes_for_closed_project | |||
p = Project.new | |||
p.status = Project::STATUS_CLOSED | |||
assert_include 'closed', p.css_classes.split | |||
end | |||
end |
@@ -127,6 +127,12 @@ class VersionTest < ActiveSupport::TestCase | |||
assert_equal [v5, v3, v1, v2, v4], Version.sorted.to_a | |||
end | |||
def test_should_sort_versions_with_same_date_by_name | |||
v1 = Version.new(:effective_date => '2014-12-03', :name => 'v2') | |||
v2 = Version.new(:effective_date => '2014-12-03', :name => 'v1') | |||
assert_equal [v2, v1], [v1, v2].sort | |||
end | |||
def test_completed_should_be_false_when_due_today | |||
version = Version.create!(:project_id => 1, :effective_date => Date.today, :name => 'Due today') | |||
assert_equal false, version.completed? |