Mercurial > hg > soundsoftware-site
diff test/functional/issues_controller_test.rb @ 507:0c939c159af4 redmine-1.2
Update to Redmine 1.2.1 on 1.2-stable branch (Redmine SVN rev 6270)
author | Chris Cannam |
---|---|
date | Thu, 14 Jul 2011 10:32:19 +0100 |
parents | cbce1fd3b1b7 |
children | cbb26bc654de |
line wrap: on
line diff
--- a/test/functional/issues_controller_test.rb Mon Jun 06 14:24:13 2011 +0100 +++ b/test/functional/issues_controller_test.rb Thu Jul 14 10:32:19 2011 +0100 @@ -18,9 +18,6 @@ require File.expand_path('../../test_helper', __FILE__) require 'issues_controller' -# Re-raise errors caught by the controller. -class IssuesController; def rescue_action(e) raise e end; end - class IssuesControllerTest < ActionController::TestCase fixtures :projects, :users, @@ -193,6 +190,30 @@ assert_not_nil assigns(:issues) assert_not_nil assigns(:issue_count_by_group) end + + def test_private_query_should_not_be_available_to_other_users + q = Query.create!(:name => "private", :user => User.find(2), :is_public => false, :project => nil) + @request.session[:user_id] = 3 + + get :index, :query_id => q.id + assert_response 403 + end + + def test_private_query_should_be_available_to_its_user + q = Query.create!(:name => "private", :user => User.find(2), :is_public => false, :project => nil) + @request.session[:user_id] = 2 + + get :index, :query_id => q.id + assert_response :success + end + + def test_public_query_should_be_available_to_other_users + q = Query.create!(:name => "private", :user => User.find(2), :is_public => true, :project => nil) + @request.session[:user_id] = 3 + + get :index, :query_id => q.id + assert_response :success + end def test_index_sort_by_field_not_included_in_columns Setting.issue_list_default_columns = %w(subject author) @@ -267,6 +288,12 @@ assert_kind_of Hash, session[:query] assert_kind_of Array, session[:query][:column_names] assert_equal columns, session[:query][:column_names].map(&:to_s) + + # ensure only these columns are kept in the selected columns list + assert_tag :tag => 'select', :attributes => { :id => 'selected_columns' }, + :children => { :count => 3 } + assert_no_tag :tag => 'option', :attributes => { :value => 'project' }, + :parent => { :tag => 'select', :attributes => { :id => "selected_columns" } } end def test_index_with_custom_field_column @@ -606,6 +633,36 @@ assert_not_nil issue assert_nil issue.parent end + + def test_post_create_private + @request.session[:user_id] = 2 + + assert_difference 'Issue.count' do + post :create, :project_id => 1, + :issue => {:tracker_id => 1, + :subject => 'This is a private issue', + :is_private => '1'} + end + issue = Issue.first(:order => 'id DESC') + assert issue.is_private? + end + + def test_post_create_private_with_set_own_issues_private_permission + role = Role.find(1) + role.remove_permission! :set_issues_private + role.add_permission! :set_own_issues_private + + @request.session[:user_id] = 2 + + assert_difference 'Issue.count' do + post :create, :project_id => 1, + :issue => {:tracker_id => 1, + :subject => 'This is a private issue', + :is_private => '1'} + end + issue = Issue.first(:order => 'id DESC') + assert issue.is_private? + end def test_post_create_should_send_a_notification ActionMailer::Base.deliveries.clear