Feature #31879 » 31879_add_filter_operators_attachment.patch
app/models/issue_query.rb | ||
---|---|---|
526 | 526 |
c = sql_contains("a.filename", value.first) |
527 | 527 |
e = (operator == "~" ? "EXISTS" : "NOT EXISTS") |
528 | 528 |
"#{e} (SELECT 1 FROM #{Attachment.table_name} a WHERE a.container_type = 'Issue' AND a.container_id = #{Issue.table_name}.id AND #{c})" |
529 |
when "^", "$" |
|
530 |
c = sql_contains("a.filename", value.first, (operator == "^" ? :starts_with : :ends_with) => true) |
|
531 |
"EXISTS (SELECT 1 FROM #{Attachment.table_name} a WHERE a.container_type = 'Issue' AND a.container_id = #{Issue.table_name}.id AND #{c})" |
|
529 | 532 |
end |
530 | 533 |
end |
531 | 534 |
test/unit/query_test.rb | ||
---|---|---|
1353 | 1353 |
assert_nil issues.detect {|issue| issue.attachments.any? {|attachment| attachment.filename.include?('error281')}} |
1354 | 1354 |
end |
1355 | 1355 | |
1356 |
def test_filter_on_attachment_when_starts_with |
|
1357 |
query = IssueQuery.new(:name => '_') |
|
1358 |
query.filters = {"attachment" => {:operator => '^', :values => ['testfile']}} |
|
1359 |
issues = find_issues_with_query(query) |
|
1360 |
assert_equal [14], issues.collect(&:id).sort |
|
1361 |
end |
|
1362 | ||
1363 |
def test_filter_on_attachment_when_ends_with |
|
1364 |
query = IssueQuery.new(:name => '_') |
|
1365 |
query.filters = {"attachment" => {:operator => '$', :values => ['zip']}} |
|
1366 |
issues = find_issues_with_query(query) |
|
1367 |
assert_equal [3, 4], issues.collect(&:id).sort |
|
1368 |
end |
|
1369 | ||
1356 | 1370 |
def test_filter_on_subject_when_starts_with |
1357 | 1371 |
query = IssueQuery.new(:name => '_') |
1358 | 1372 |
query.filters = {'subject' => {:operator => '^', :values => ['issue']}} |
- « Previous
- 1
- 2
- 3
- Next »