summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMarius Balteanu <marius.balteanu@zitec.com>2021-11-15 21:58:39 +0000
committerMarius Balteanu <marius.balteanu@zitec.com>2021-11-15 21:58:39 +0000
commit70f8ca64dd9337e40b551e0ab876273a742a7551 (patch)
tree3a2c84965bcdf63d8c75aadd39612fb743e012a2 /test
parent9def0fa3d06cebf49e306d9eadfcc97745087a9e (diff)
downloadredmine-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.yml33
-rw-r--r--test/functional/projects_controller_test.rb25
-rw-r--r--test/integration/api_test/projects_test.rb15
-rw-r--r--test/unit/project_query_test.rb37
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