diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2015-06-13 10:56:44 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2015-06-13 10:56:44 +0000 |
commit | 98f2b30ac5871b684a6690be6449283926f3ef2a (patch) | |
tree | 017d0b458c1c70bd21ba2dea64d8d04186ec85fc /test/unit | |
parent | 3077ed8d3a79fc613f31ecd47418fcec291cfd18 (diff) | |
download | redmine-98f2b30ac5871b684a6690be6449283926f3ef2a.tar.gz redmine-98f2b30ac5871b684a6690be6449283926f3ef2a.zip |
Adds issue filters on parent/subtasks (#6118).
git-svn-id: http://svn.redmine.org/redmine/trunk@14304 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/unit')
-rw-r--r-- | test/unit/query_test.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/test/unit/query_test.rb b/test/unit/query_test.rb index fdddba8cc..64cb8d151 100644 --- a/test/unit/query_test.rb +++ b/test/unit/query_test.rb @@ -879,6 +879,46 @@ class QueryTest < ActiveSupport::TestCase assert_equal [issue1], find_issues_with_query(query) end + def test_filter_on_parent + Issue.delete_all + parent = Issue.generate_with_descendants! + + + query = IssueQuery.new(:name => '_') + query.filters = {"parent_id" => {:operator => '=', :values => [parent.id.to_s]}} + assert_equal parent.children.map(&:id).sort, find_issues_with_query(query).map(&:id).sort + + query.filters = {"parent_id" => {:operator => '~', :values => [parent.id.to_s]}} + assert_equal parent.descendants.map(&:id).sort, find_issues_with_query(query).map(&:id).sort + + query.filters = {"parent_id" => {:operator => '*', :values => ['']}} + assert_equal parent.descendants.map(&:id).sort, find_issues_with_query(query).map(&:id).sort + + query.filters = {"parent_id" => {:operator => '!*', :values => ['']}} + assert_equal [parent.id], find_issues_with_query(query).map(&:id).sort + end + + def test_filter_on_child + Issue.delete_all + parent = Issue.generate_with_descendants! + child, leaf = parent.children.sort_by(&:id) + grandchild = child.children.first + + + query = IssueQuery.new(:name => '_') + query.filters = {"child_id" => {:operator => '=', :values => [grandchild.id.to_s]}} + assert_equal [child.id], find_issues_with_query(query).map(&:id).sort + + query.filters = {"child_id" => {:operator => '~', :values => [grandchild.id.to_s]}} + assert_equal [parent, child].map(&:id).sort, find_issues_with_query(query).map(&:id).sort + + query.filters = {"child_id" => {:operator => '*', :values => ['']}} + assert_equal [parent, child].map(&:id).sort, find_issues_with_query(query).map(&:id).sort + + query.filters = {"child_id" => {:operator => '!*', :values => ['']}} + assert_equal [grandchild, leaf].map(&:id).sort, find_issues_with_query(query).map(&:id).sort + end + def test_statement_should_be_nil_with_no_filters q = IssueQuery.new(:name => '_') q.filters = {} |