diff options
author | Marius Balteanu <marius.balteanu@zitec.com> | 2021-11-15 21:58:39 +0000 |
---|---|---|
committer | Marius Balteanu <marius.balteanu@zitec.com> | 2021-11-15 21:58:39 +0000 |
commit | 70f8ca64dd9337e40b551e0ab876273a742a7551 (patch) | |
tree | 3a2c84965bcdf63d8c75aadd39612fb743e012a2 /test | |
parent | 9def0fa3d06cebf49e306d9eadfcc97745087a9e (diff) | |
download | redmine-70f8ca64dd9337e40b551e0ab876273a742a7551.tar.gz redmine-70f8ca64dd9337e40b551e0ab876273a742a7551.zip |
You can configure default project queries in the following places (#35795):
* App-level: Administration > Projects > Default query (Projects list defaults section)
* User-level: My account > Default project query
git-svn-id: http://svn.redmine.org/redmine/trunk@21281 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r-- | test/fixtures/queries.yml | 33 | ||||
-rw-r--r-- | test/functional/projects_controller_test.rb | 25 | ||||
-rw-r--r-- | test/integration/api_test/projects_test.rb | 15 | ||||
-rw-r--r-- | test/unit/project_query_test.rb | 37 |
4 files changed, 107 insertions, 3 deletions
diff --git a/test/fixtures/queries.yml b/test/fixtures/queries.yml index 4e58dc6eb..6b3bb0193 100644 --- a/test/fixtures/queries.yml +++ b/test/fixtures/queries.yml @@ -182,4 +182,37 @@ queries_010: --- - - spent_on - desc +queries_011: + id: 11 + type: ProjectQuery + visibility: 2 + name: Projects as list + filters: | + --- + id: + :values: + - "mine" + :operator: = + column_names: + group_by: + sort_criteria: + options: | + --- + :display_type: list +queries_012: + id: 12 + type: ProjectQuery + visibility: 1 + name: My bookmarks + filters: | + --- + id: + :values: + - "bookmarks" + :operator: = + + user_id: 1 + options: | + --- + :display_type: board diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb index f7d2dee26..a26793a20 100644 --- a/test/functional/projects_controller_test.rb +++ b/test/functional/projects_controller_test.rb @@ -25,7 +25,8 @@ class ProjectsControllerTest < Redmine::ControllerTest :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages, :attachments, :custom_fields, :custom_values, :time_entries, - :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions + :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions, + :roles, :queries include Redmine::I18n @@ -248,6 +249,28 @@ class ProjectsControllerTest < Redmine::ControllerTest assert_select ".total-for-cf-#{field.id} span.value", :text => '9' end + def test_index_should_retrieve_default_query + query = ProjectQuery.find(11) + ProjectQuery.stubs(:default).returns query + + [nil, 1].each do |user_id| + @request.session[:user_id] = user_id + get :index + assert_select 'h2', text: query.name + end + end + + def test_index_should_ignore_default_query_with_without_default + query = ProjectQuery.find(11) + ProjectQuery.stubs(:default).returns query + + [nil, 1].each do |user_id| + @request.session[:user_id] = user_id + get :index, params: { set_filter: '1', without_default: '1' } + assert_select 'h2', text: I18n.t(:label_project_plural) + end + end + def test_autocomplete_js get( :autocomplete, diff --git a/test/integration/api_test/projects_test.rb b/test/integration/api_test/projects_test.rb index 0785aecb5..789847db7 100644 --- a/test/integration/api_test/projects_test.rb +++ b/test/integration/api_test/projects_test.rb @@ -22,7 +22,8 @@ require File.expand_path('../../../test_helper', __FILE__) class Redmine::ApiTest::ProjectsTest < Redmine::ApiTest::Base fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details, :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages, - :attachments, :custom_fields, :custom_values, :custom_fields_projects, :time_entries, :issue_categories + :attachments, :custom_fields, :custom_values, :custom_fields_projects, :time_entries, :issue_categories, + :queries def setup super @@ -212,6 +213,18 @@ class Redmine::ApiTest::ProjectsTest < Redmine::ApiTest::Base assert_equal version.name, json['project']['default_version']['name'] end + def test_get_project_should_not_load_default_query + query = ProjectQuery.find(11) + ProjectQuery.stubs(:default).returns query + + get '/projects.json' + + assert results = JSON.parse(@response.body)['projects'] + + assert_equal 4, results.count + assert results.detect{ |i| i['name'] == "eCookbook"} + end + test "POST /projects.xml with valid parameters should create the project" do with_settings :default_projects_modules => ['issue_tracking', 'repository'] do assert_difference('Project.count') do diff --git a/test/unit/project_query_test.rb b/test/unit/project_query_test.rb index fa914ce4e..8267057a3 100644 --- a/test/unit/project_query_test.rb +++ b/test/unit/project_query_test.rb @@ -25,7 +25,8 @@ class ProjectQueryTest < ActiveSupport::TestCase :issue_categories, :enumerations, :groups_users, :enabled_modules, - :custom_fields, :custom_values + :custom_fields, :custom_values, + :queries include Redmine::I18n @@ -69,4 +70,38 @@ class ProjectQueryTest < ActiveSupport::TestCase end end end + + def test_should_determine_default_project_query + user = User.find(1) + query = ProjectQuery.find(11) + user_query = ProjectQuery.find(12) + + [nil, user, User.anonymous].each do |u| + assert_nil IssueQuery.default(user: u) + end + + # only global default is set + with_settings :default_project_query => query.id do + [nil, user, User.anonymous].each do |u| + assert_equal query, ProjectQuery.default(user: u) + end + end + + # user default, overrides global default + user.pref.default_project_query = user_query.id + user.pref.save + + with_settings :default_project_query => query.id do + assert_equal user_query, ProjectQuery.default(user: user) + end + end + + def test_project_query_default_should_return_nil_if_default_query_destroyed + query = ProjectQuery.find(11) + + Setting.default_project_query = query.id + query.destroy + + assert_nil ProjectQuery.default + end end |