summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2011-07-10 08:00:25 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2011-07-10 08:00:25 +0000
commit932d4cdfead379e24934df6530f4d98abcfab18e (patch)
tree05e4cdb1ff572d8c35df61260f2892d0b40c94ed /test
parent4a4a71349a45bdc8a55071e535bc0a8b9c02a5ee (diff)
downloadredmine-932d4cdfead379e24934df6530f4d98abcfab18e.tar.gz
redmine-932d4cdfead379e24934df6530f4d98abcfab18e.zip
Adds "between" operator for numeric filters (#6180).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@6217 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r--test/test_helper.rb4
-rw-r--r--test/unit/query_test.rb15
2 files changed, 19 insertions, 0 deletions
diff --git a/test/test_helper.rb b/test/test_helper.rb
index 0c082034b..3603befe7 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -127,6 +127,10 @@ class ActiveSupport::TestCase
def assert_error_tag(options={})
assert_tag({:attributes => { :id => 'errorExplanation' }}.merge(options))
end
+
+ def assert_include(expected, s)
+ assert s.include?(expected), "\"#{expected}\" not found in \"#{s}\""
+ end
# Shoulda macros
def self.should_render_404
diff --git a/test/unit/query_test.rb b/test/unit/query_test.rb
index 55a67f26a..633edebb1 100644
--- a/test/unit/query_test.rb
+++ b/test/unit/query_test.rb
@@ -130,6 +130,21 @@ class QueryTest < ActiveSupport::TestCase
assert query.statement.include?("CAST(custom_values.value AS decimal(60,3)) <= 30")
find_issues_with_query(query)
end
+
+ def test_operator_between
+ query = Query.new(:project => Project.find(1), :name => '_')
+ query.add_filter('done_ratio', '><', ['30', '40'])
+ assert_include "#{Issue.table_name}.done_ratio BETWEEN 30 AND 40", query.statement
+ find_issues_with_query(query)
+ end
+
+ def test_operator_between_on_custom_field
+ f = IssueCustomField.create!(:name => 'filter', :field_format => 'int', :is_filter => true, :is_for_all => true)
+ query = Query.new(:project => Project.find(1), :name => '_')
+ query.add_filter("cf_#{f.id}", '><', ['30', '40'])
+ assert_include "CAST(custom_values.value AS decimal(60,3)) BETWEEN 30 AND 40", query.statement
+ find_issues_with_query(query)
+ end
def test_operator_in_more_than
Issue.find(7).update_attribute(:due_date, (Date.today + 15))