summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2017-03-02 18:13:59 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2017-03-02 18:13:59 +0000
commit2b0e910cd532d28360b2ebdd74561e2c4bacf4d5 (patch)
treef262980ff56b146108a610cb8a7da5d315f30a77 /test
parent2b33756e9a038d7cf4e4138d95995717f0ea4267 (diff)
downloadredmine-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.rb35
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 = {}