diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2017-03-02 18:13:59 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2017-03-02 18:13:59 +0000 |
commit | 2b0e910cd532d28360b2ebdd74561e2c4bacf4d5 (patch) | |
tree | f262980ff56b146108a610cb8a7da5d315f30a77 /test | |
parent | 2b33756e9a038d7cf4e4138d95995717f0ea4267 (diff) | |
download | redmine-2b0e910cd532d28360b2ebdd74561e2c4bacf4d5.tar.gz redmine-2b0e910cd532d28360b2ebdd74561e2c4bacf4d5.zip |
Adds a filter on issue attachments (#2783).
git-svn-id: http://svn.redmine.org/redmine/trunk@16344 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r-- | test/unit/query_test.rb | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/test/unit/query_test.rb b/test/unit/query_test.rb index 81f62516d..aced780f1 100644 --- a/test/unit/query_test.rb +++ b/test/unit/query_test.rb @@ -29,7 +29,8 @@ class QueryTest < ActiveSupport::TestCase :queries, :projects_trackers, :custom_fields_trackers, - :workflows + :workflows, + :attachments def setup User.current = nil @@ -1194,6 +1195,38 @@ class QueryTest < ActiveSupport::TestCase assert_equal [].map(&:id).sort, find_issues_with_query(query) end + def test_filter_on_attachment_any + query = IssueQuery.new(:name => '_') + query.filters = {"attachment" => {:operator => '*', :values => ['']}} + issues = find_issues_with_query(query) + assert issues.any? + assert_nil issues.detect {|issue| issue.attachments.empty?} + end + + def test_filter_on_attachment_none + query = IssueQuery.new(:name => '_') + query.filters = {"attachment" => {:operator => '!*', :values => ['']}} + issues = find_issues_with_query(query) + assert issues.any? + assert_nil issues.detect {|issue| issue.attachments.any?} + end + + def test_filter_on_attachment_contains + query = IssueQuery.new(:name => '_') + query.filters = {"attachment" => {:operator => '~', :values => ['error281']}} + issues = find_issues_with_query(query) + assert issues.any? + assert_nil issues.detect {|issue| ! issue.attachments.any? {|attachment| attachment.filename.include?('error281')}} + end + + def test_filter_on_attachment_not_contains + query = IssueQuery.new(:name => '_') + query.filters = {"attachment" => {:operator => '!~', :values => ['error281']}} + issues = find_issues_with_query(query) + assert issues.any? + assert_nil issues.detect {|issue| issue.attachments.any? {|attachment| attachment.filename.include?('error281')}} + end + def test_statement_should_be_nil_with_no_filters q = IssueQuery.new(:name => '_') q.filters = {} |